Shadowrocket(小火箭)更新订阅后没有节点,先保留原有记录,再区分“请求失败”“响应内容不对”和“列表未显示”三类问题。本文以用户已有自己的服务商与订阅为前提,按链接、响应、网络与更新时机逐项核对,最后用一次受控更新验证结果。
一、先确认是列表为空,还是更新没有完成
订阅更新包含多个环节:应用读取保存的 URL,向订阅地址发起请求,接收内容,再把可识别的节点记录展示在 Home。任一环节异常,都可能表现为“没有新节点”,但处理方法不同。不要先删除整个订阅,也不要把连接开关的状态当作更新成功的证据。
- 回到 Home,结束搜索并展开对应订阅分组,确认不是搜索条件或分组折叠造成的空白。
- 记录本次更新是否出现错误、旧节点是否仍在,以及只有一个分组为空还是所有分组都为空。
- 核对当前操作对象。Config 管理配置与规则,Home 中的订阅节点列表才是本文检查的对象;更新配置文件不等于更新节点订阅。
- 保留订阅名称与原 URL 的私人备份。已有可用连接时,先保留它,避免删除后失去唯一可用的测试路径。
“旧列表还在,但没有新增”更接近更新未完成或远端内容未变化;“更新后某组变空”需要重点核对响应内容及账户状态;“所有列表都看不到”则先检查 Home 的显示范围。这些现象用于决定下一步,不单独构成故障结论。
二、核对完整 URL,不要把账户页面当作订阅地址
订阅地址是供应用获取配置内容的入口,不是账户首页、订单页或浏览器登录页。请从自己的服务商账户中重新复制适用于 Shadowrocket 的订阅地址,再与应用保存值逐字核对。链接看起来很长并不代表完整,查询参数中的一小段缺失也可能使认证失败。
https://example.com/sub?token=xxxx
上面是不可用于连接的格式示意。https:// 表示访问方式,example.com 是示例域名,/sub 是示例路径,token=xxxx 是假认证值。真实服务的路径、参数名和认证方式可能不同,不应按这个示例手工改写已有链接。
- 检查首尾:去除复制时混入的说明文字、引号和换行,不要把句末中文句号一起粘贴进去。
- 检查参数:保留
?之后的完整内容;多个参数之间的&不能遗漏,也不要把网页源码中的&当作实际分隔符粘贴。 - 检查编码:不要随意解码
%2F、%2B或修改大小写;认证字符串通常需要原样保留。 - 检查链接用途:需要浏览器登录后才能看到内容的页面,不一定是应用可直接请求的订阅端点。
- 检查凭据变更:如果曾在账户中重置订阅凭据,应用里保存的旧 URL 也需要替换。
三、看响应结果:网页能打开,不等于能解析出节点
浏览器成功打开一个页面,只能说明浏览器完成了对应访问。浏览器可能已有登录 Cookie,也可能显示了人机验证页;Shadowrocket 获取订阅时,并不一定具备这些浏览器会话条件。即使 HTTP 状态为 200 OK,返回的内容也可能是登录页、错误说明或空正文。
结论:先确认响应内容,再调整解析相关设置
如果拿到的是登录网页或空正文,切换节点协议不能补出缺失的记录;先让自己的服务商确认该订阅端点确实返回适用于 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 分开验证
连接节点使用的出站路径,与拉取订阅地址的路径需要分别判断。节点能够连接,不代表订阅域名可访问;订阅能刷新,也不代表其中所有节点都能连接。先使用当前网络完成一次更新,记录结果,再改变一个条件重试,避免同时切换网络、重置链接和修改设置后无法判断原因。
- 确认网络已可用:如果 Wi-Fi 需要网页认证,先完成认证。系统日期与时间也应正确,错误时间可能影响 HTTPS 证书校验。
- 核对更新方式:进入 Settings → Subscribe,查看 Update via Proxy。相关选项的呈现以应用内实际界面为准。
- 测试代理更新:只有已有可用节点并已建立连接时,才适合开启 Update via Proxy 后测试;空列表本身不会凭空提供可用代理。
- 测试另一网络:在条件允许时改用蜂窝网络或另一可信 Wi-Fi,只更新同一份订阅一次,比较是否仍出现相同错误。
- 恢复非必要改动:测试结束后保留能解释结果的设置,不为刷新订阅长期保留无关的路由修改。
Global Routing 下的 Proxy、Direct、Config、Scene 处理连接与路由选择,不能修复失效 token 或空响应。On Demand 用于按条件触发连接,也不是订阅内容的生成开关。不要把调整 Global Routing 或 Settings → On Demand 当作所有订阅错误的通用解法。
五、确认账户状态与更新时机,再做一次受控更新
刚重置 token、刚调整账户权限或服务端正在维护时,订阅内容可能尚未就绪。客户端无法决定服务端何时生成新列表,也不能从“更新动作结束”推断账户中一定有可用记录。请以自己的账户状态与服务商确认的信息为准,不设定通用的等待分钟数。
- 核对账户范围:确认当前订阅对应的账户仍有效、授权范围正确,是否因到期、额度状态或分组调整而不再返回原来的记录。
- 核对变更时间:记录重置链接、调整账户和首次出现空列表的时间,判断是否发生在同一次变更之后。
- 核对维护与限制:若服务端正在维护或明确要求等待,按其说明重试,不连续下拉刷新。
- 执行单次更新:在 Home 对目标订阅执行更新;使用下拉刷新时,注意实际提示对应哪个分组,避免混淆多个订阅的结果。
- 验证结果:展开目标分组,确认出现节点记录;再对需要使用的节点做 Connectivity Test。列表恢复与连通性正常是两个独立验收项。
如需再次求助,整理“发生时间、网络类型、是否启用 Update via Proxy、实际错误、原列表是否保留、账户是否近期变更”即可形成可复查记录。不要提交 PrivateKey、密码或完整 token。排查需要的是现象与条件,不是公开认证信息。
六、订阅为空的常见追问
更新后全空,要先删掉订阅再添加吗?
不作为第一步。先退出搜索、展开分组,核对保存 URL 与更新错误。只有已备份原地址,并确认远端提供了有效内容后,才考虑重新添加来排除本地记录问题;删除并不能修复服务端空响应。
同一链接在浏览器能打开,为什么应用里还是没有节点?
检查浏览器看到的是节点内容还是账户网页,并确认是否依赖登录会话。让自己的服务商核对应用请求得到的实际正文与输出格式,不能只以浏览器页面加载完成作为有效性判断。
已经连上旧节点,订阅还是更新超时怎么办?
到 Settings → Subscribe 核对 Update via Proxy,再确认当前连接本身可用。一次只改变更新方式或网络中的一个条件;如果不同路径都超时,记录时间并核查订阅端点状态。
节点恢复了,但 Connectivity Test 仍失败,是解析失败吗?
列表已显示记录,说明至少已有内容被解析。接下来应检查节点地址、端口、认证参数与网络可达性,不要继续把连通性错误归因于订阅为空,也不要随意把端口统一改成 443。
购买 Shadowrocket 后,为什么没有自动出现节点?
客户端买断 ≠ 线路套餐。Shadowrocket 是闭源商业应用,App Store 购买获得客户端使用权;本文的订阅导入与排查以用户已有自己的服务商与订阅为前提。