2026-08-21 · 故障排查 · 约 8 分钟

Shadowrocket 订阅解析失败或列表为空:逐项自查清单

导入订阅后提示解析失败,或服务器列表为空,通常有三类原因:链接格式不对或没复制完整,服务商侧订阅过期或格式有变,更新时机或网络环境不合适。本文给出按顺序排查的步骤。

本文速览

本文适用于已经持有自己服务商订阅的 Shadowrocket 用户。先区分请求失败、内容不能解析和有效条目为空,再核对完整链接、订阅有效性与更新网络;最后检查 Home 的显示状态并保留排查记录。全程先保留原有配置,不以删除全部服务器或重装应用作为第一步。

一、先分清:没有取到内容,还是内容里没有服务器

Shadowrocket(小火箭)的订阅更新包含多个环节。应用先请求订阅地址,再读取返回内容,最后把可识别的服务器条目显示在 Home。出现“解析失败”并不必然代表协议设置错误,出现空列表也不必然代表连接网络中断。先确定停在哪个环节,才能避免反复改动无关设置。

核对链接 请求订阅 读取响应 解析条目 显示列表

更新失败后,原来保存的服务器仍可能留在列表里。因此“还有旧条目”不等于更新成功,“旧条目还能连接”也不能证明当前订阅地址仍有效。应把本次更新结果与旧条目的连接结果分开记录。

二、核对完整链接:不要把账户页面当作订阅地址

从自己的服务商账户页面重新复制用于 Shadowrocket 的订阅地址,再与 Home 中对应订阅的地址核对。不要直接复制浏览器地址栏里的账户首页,也不要把单条服务器分享内容当成整个订阅地址。订阅地址通常带有访问凭据,检查时只在自己的设备上操作。

  1. 检查开头:确认复制的是完整地址,包含服务商指定的协议部分,例如 https://,而不是仅有域名和路径。
  2. 检查结尾:确认查询参数没有被聊天软件截断。特别留意 ?、&、= 后面的内容,不要凭印象补写。
  3. 检查附带字符:去掉复制时混入的外层引号、中文标点、空格或换行;不要随意改动地址内部的大小写与编码字符。
  4. 检查入口用途:使用服务商标明适用于 Shadowrocket 的订阅入口,而不是登录地址、账单页面或配置说明页面。
  5. 保存后只更新一次:返回 Home,执行对应订阅的更新操作,等待这次请求结束,再判断结果。
https://example.com/sub?token=xxxx

上面仅用于说明地址结构,不能用于导入。示例中的 token=xxxx 表示访问凭据;实际地址中的凭据不能被示例替换。也不要把原地址整段重复编码,或为了让它“看起来正确”而删除查询参数。

三、根据返回结果检查有效性与内容格式

完整地址也可能返回错误内容。服务到期、访问凭据被重置、服务端维护或格式调整,都可能让原来能用的地址不再返回预期订阅。浏览器能打开一个页面,只能说明获得了响应,不能证明响应内容能被 Shadowrocket 解析。

下列是 HTTP 标准状态说明,用于识别服务端响应;并非保证 Shadowrocket 会逐字显示这些报错。以应用实际提示以及服务商可确认的响应为准,不要为了寻找状态码把含凭据的链接提交给第三方检测网站。

HTTP 401 Unauthorized

原因与解法:服务端要求有效身份凭据,原有凭据可能已失效——在自己的服务商账户中确认订阅状态,重新复制有效地址后再更新。

HTTP 403 Forbidden

原因与解法:服务端拒绝当前请求,可能涉及账户权限或访问限制——请服务商核对限制原因,不要仅靠更换服务器反复尝试。

HTTP 404 Not Found

原因与解法:请求路径不存在,可能是链接截断或入口已变更——从服务商当前账户页面重新复制订阅地址,核对路径与参数。

HTTP 429 Too Many Requests

原因与解法:短时间请求过多触发限制——停止连续刷新,按服务端提示或服务商说明等待后再试。

即使响应是 HTTP 200,正文也可能是登录页或提示文字。若服务商确认已返回内容,应进一步确认它提供的是可被 Shadowrocket 识别的订阅,而不只是供浏览器阅读的页面。不要仅凭扩展名、文件大小或“请求成功”四个字判断格式兼容。

结论:拿到响应后,再确认响应是什么

地址完整且请求能完成,但依然无法产生服务器条目时,把排查重点转向订阅正文和账户状态;此时修改 Config 中的分流规则通常不能修复内容格式。

四、只改变一个网络条件,再测试更新

订阅更新是访问订阅服务器的请求,与访问某个网页的结果不完全相同。某个网页可以打开,不代表订阅域名也能访问;当前代理可以连接,也不代表通过它请求订阅一定成功。先保持地址不变,再分别验证更新路径,才能确定是哪一个条件产生影响。

  1. 记录基线:记下当前使用 Wi-Fi 还是蜂窝网络、连接开关状态,以及本次更新提示。先不要同时改规则、DNS 和订阅地址。
  2. 切换接入网络:在条件允许时,从 Wi-Fi 切到蜂窝网络,或反向切换,然后只更新同一份订阅一次。公共网络若需要网页登录,应先完成网络认证。
  3. 检查更新路径:进入 Settings → Subscribe,核对 Update via Proxy。若当前界面提供该选项,启用前先确认已有代理连接可用;需要对照时记录原值,测试后恢复。
  4. 避免循环依赖:若仅有的服务器已经不可用,不要指望通过它更新出新的服务器。先验证直接访问订阅是否可行,或向自己的服务商确认可访问的订阅入口。
  5. 处理时间与证书问题:遇到 TLS 或证书提示时,检查设备日期和时间是否正确,并请服务商检查证书。不要把关闭证书验证作为通用修复步骤。

Global Routing 中的 Config、Proxy、Direct 是流量处理方式,不是订阅格式选项。Scene 涉及场景设置,也不负责把错误订阅正文转换成服务器列表。排查时不要把切换这些入口当成解析修复;对订阅更新走哪条路径,应单独核对相应设置。

五、更新后仍为空:检查 Home 显示与实际条目

回到 Home,先清除正在使用的搜索条件,并展开目标订阅分组。确认查看的是刚才更新的订阅,而不是同名的另一组或手动添加的条目。分组名称存在,只能证明订阅记录仍被保存,不能证明它下面已有有效服务器。

443
HTTPS 未显式指定端口时的默认端口,不等于服务器连接端口
2 项
分开核对:订阅更新结果、服务器连接结果
1 项
每轮仅改变一个条件,便于定位原因

Shadowsocks、VMess、VLESS、Trojan 等协议名称描述服务器连接方式,并不说明外层订阅采用什么格式。同一协议的参数表达也可能不同,应让服务商提供适配的内容,而不是手动批量修改字段名称。也不要把订阅地址中的 HTTPS 端口直接填入服务器的 Port。

六、保留脱敏记录,按结果继续处理

经过以上检查仍无法恢复时,向自己的服务商提供可复现记录,比“全部试过了”更有用。记录应包含失败发生在哪一步、网络环境是否变化,以及更新前后是否存在条目。不要发送完整 token、密码、私钥或未遮挡的二维码。

  1. 记录失败发生的本地时间、Wi-Fi 或蜂窝网络,以及应用显示的原始提示。
  2. 说明是首次导入失败,还是原先正常的订阅突然无法更新;注明旧条目是否仍在。
  3. 提供订阅域名与脱敏后的路径特征,说明是否重新复制过当前有效地址。
  4. 说明是否测试过 Update via Proxy,当时代理连接是否可用,以及切换网络后结果是否改变。
  5. 请服务商确认账户有效性、访问限制、订阅正文是否为空,以及返回格式是否适用于 Shadowrocket。

浏览器能打开链接,为什么还是解析失败?

先看打开的是订阅正文还是登录页面、提示页面。若只有网页界面,请回到自己的服务商账户重新复制适用于 Shadowrocket 的订阅地址;不要把网页登录成功等同于订阅格式有效。

需要先删掉整个订阅再导入吗?

先保留原有条目,核对链接并执行一次更新。只有确认了新地址有效、原有信息已妥善保存且确实需要重建时,再处理旧订阅,避免删掉仍能使用的连接信息。

更新成功后有列表,但所有服务器都连不上怎么办?

这已转为连接排查。先选定一个条目核对连接状态,再向服务商确认端口、认证信息及服务有效性;不要反复导入同一订阅,也不要把列表存在视为线路可用的保证。

买了 Shadowrocket,为什么还需要自己的订阅?

客户端买断 ≠ 线路套餐。Shadowrocket 的购买用于获取客户端;服务器与订阅由用户自己的服务商提供。本站不提供、不销售、不推荐节点或订阅。

App Store 正版核验