本文速览

Shadowrocket(小火箭)更新订阅后没有节点,先保留原有记录,再区分“请求失败”“响应内容不对”和“列表未显示”三类问题。本文以用户已有自己的服务商与订阅为前提,按链接、响应、网络与更新时机逐项核对,最后用一次受控更新验证结果。

一、先确认是列表为空,还是更新没有完成

订阅更新包含多个环节:应用读取保存的 URL,向订阅地址发起请求,接收内容,再把可识别的节点记录展示在 Home。任一环节异常,都可能表现为“没有新节点”,但处理方法不同。不要先删除整个订阅,也不要把连接开关的状态当作更新成功的证据。

读取链接 请求订阅 接收响应 解析记录 显示列表
  1. 回到 Home,结束搜索并展开对应订阅分组,确认不是搜索条件或分组折叠造成的空白。
  2. 记录本次更新是否出现错误、旧节点是否仍在,以及只有一个分组为空还是所有分组都为空。
  3. 核对当前操作对象。Config 管理配置与规则,Home 中的订阅节点列表才是本文检查的对象;更新配置文件不等于更新节点订阅。
  4. 保留订阅名称与原 URL 的私人备份。已有可用连接时,先保留它,避免删除后失去唯一可用的测试路径。

“旧列表还在,但没有新增”更接近更新未完成或远端内容未变化;“更新后某组变空”需要重点核对响应内容及账户状态;“所有列表都看不到”则先检查 Home 的显示范围。这些现象用于决定下一步,不单独构成故障结论。

二、核对完整 URL,不要把账户页面当作订阅地址

订阅地址是供应用获取配置内容的入口,不是账户首页、订单页或浏览器登录页。请从自己的服务商账户中重新复制适用于 Shadowrocket 的订阅地址,再与应用保存值逐字核对。链接看起来很长并不代表完整,查询参数中的一小段缺失也可能使认证失败。

https://example.com/sub?token=xxxx

上面是不可用于连接的格式示意。https:// 表示访问方式,example.com 是示例域名,/sub 是示例路径,token=xxxx 是假认证值。真实服务的路径、参数名和认证方式可能不同,不应按这个示例手工改写已有链接。

三、看响应结果:网页能打开,不等于能解析出节点

浏览器成功打开一个页面,只能说明浏览器完成了对应访问。浏览器可能已有登录 Cookie,也可能显示了人机验证页;Shadowrocket 获取订阅时,并不一定具备这些浏览器会话条件。即使 HTTP 状态为 200 OK,返回的内容也可能是登录页、错误说明或空正文。

200
HTTP 请求成功,仍须核对正文是否包含可解析记录
401 / 403
分别检查认证凭据与服务端访问限制
429
请求频率受限,按服务端说明等待后重试

结论:先确认响应内容,再调整解析相关设置

如果拿到的是登录网页或空正文,切换节点协议不能补出缺失的记录;先让自己的服务商确认该订阅端点确实返回适用于 Shadowrocket 的有效内容。

下列是可能在请求详情、服务端记录或错误提示中出现的标准 HTTP 状态文本,不代表每次都会以同样形式显示在应用内。应以实际看到的状态为准,不要仅凭“列表为空”反推某个状态码。

HTTP 401 Unauthorized

原因与解法:请求缺少有效认证凭据——从自己的账户重新复制当前有效的完整订阅地址,核对 token 是否已重置。

HTTP 403 Forbidden

原因与解法:服务端拒绝当前请求——确认账户权限及端点访问要求,并请自己的服务商核查访问限制,不要靠反复刷新处理。

HTTP 404 Not Found

原因与解法:目标路径不存在或已变更——核对是否复制了旧地址、漏掉路径片段,使用账户当前提供的订阅地址。

HTTP 429 Too Many Requests

原因与解法:请求触发频率限制——停止连续更新;若响应带有 Retry-After,按其指定时间等待,否则向自己的服务商确认重试间隔。

如果服务商确认响应包含记录,但应用仍无法解析,应进一步核对所选输出格式。订阅不是任意文本文件:节点列表、完整配置和网页内容的结构不同。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuard 的参数结构也不同,不能通过改一个名称让不匹配的内容变成有效订阅。

四、检查更新路径:直连与 Update via Proxy 分开验证

连接节点使用的出站路径,与拉取订阅地址的路径需要分别判断。节点能够连接,不代表订阅域名可访问;订阅能刷新,也不代表其中所有节点都能连接。先使用当前网络完成一次更新,记录结果,再改变一个条件重试,避免同时切换网络、重置链接和修改设置后无法判断原因。

  1. 确认网络已可用:如果 Wi-Fi 需要网页认证,先完成认证。系统日期与时间也应正确,错误时间可能影响 HTTPS 证书校验。
  2. 核对更新方式:进入 Settings → Subscribe,查看 Update via Proxy。相关选项的呈现以应用内实际界面为准。
  3. 测试代理更新:只有已有可用节点并已建立连接时,才适合开启 Update via Proxy 后测试;空列表本身不会凭空提供可用代理。
  4. 测试另一网络:在条件允许时改用蜂窝网络或另一可信 Wi-Fi,只更新同一份订阅一次,比较是否仍出现相同错误。
  5. 恢复非必要改动:测试结束后保留能解释结果的设置,不为刷新订阅长期保留无关的路由修改。

Global Routing 下的 Proxy、Direct、Config、Scene 处理连接与路由选择,不能修复失效 token 或空响应。On Demand 用于按条件触发连接,也不是订阅内容的生成开关。不要把调整 Global Routing 或 Settings → On Demand 当作所有订阅错误的通用解法。

五、确认账户状态与更新时机,再做一次受控更新

刚重置 token、刚调整账户权限或服务端正在维护时,订阅内容可能尚未就绪。客户端无法决定服务端何时生成新列表,也不能从“更新动作结束”推断账户中一定有可用记录。请以自己的账户状态与服务商确认的信息为准,不设定通用的等待分钟数。

如需再次求助,整理“发生时间、网络类型、是否启用 Update via Proxy、实际错误、原列表是否保留、账户是否近期变更”即可形成可复查记录。不要提交 PrivateKey、密码或完整 token。排查需要的是现象与条件,不是公开认证信息。

六、订阅为空的常见追问

更新后全空,要先删掉订阅再添加吗?

不作为第一步。先退出搜索、展开分组,核对保存 URL 与更新错误。只有已备份原地址,并确认远端提供了有效内容后,才考虑重新添加来排除本地记录问题;删除并不能修复服务端空响应。

同一链接在浏览器能打开,为什么应用里还是没有节点?

检查浏览器看到的是节点内容还是账户网页,并确认是否依赖登录会话。让自己的服务商核对应用请求得到的实际正文与输出格式,不能只以浏览器页面加载完成作为有效性判断。

已经连上旧节点,订阅还是更新超时怎么办?

到 Settings → Subscribe 核对 Update via Proxy,再确认当前连接本身可用。一次只改变更新方式或网络中的一个条件;如果不同路径都超时,记录时间并核查订阅端点状态。

节点恢复了,但 Connectivity Test 仍失败,是解析失败吗?

列表已显示记录,说明至少已有内容被解析。接下来应检查节点地址、端口、认证参数与网络可达性,不要继续把连通性错误归因于订阅为空,也不要随意把端口统一改成 443。

购买 Shadowrocket 后,为什么没有自动出现节点?

客户端买断 ≠ 线路套餐。Shadowrocket 是闭源商业应用,App Store 购买获得客户端使用权;本文的订阅导入与排查以用户已有自己的服务商与订阅为前提。