适用于用户已有自己的服务商与订阅,但 Shadowrocket 无法导入、更新后列表为空或仍显示旧条目的情况。先保留现有记录,再依次区分链接错误、请求失败、响应内容不兼容与列表显示问题;每次只改一个条件,结合原始提示判断下一步,避免把连接测试失败误当成订阅解析失败。
一、先区分订阅请求、解析与连接测试
Shadowrocket(小火箭)是 Apple 平台的闭源商业应用,以 iPhone / iPad 为主要使用设备,仅通过 App Store 获取,客户端采用一次性买断方式。客户端买断 ≠ 线路套餐。本文以用户已经持有订阅为前提;本站不提供、不销售、不推荐节点、订阅或服务商。价格、系统要求与通用购买适用性以 App Store 页面标注为准。
“订阅更新成功”和“节点可以连接”不是同一件事。更新首先请求订阅地址,再解析响应中的条目;只有得到可识别的条目后,才涉及节点连接、认证与流量转发。列表为空时直接更改节点端口或切换协议,通常没有对准发生故障的环节。
- 请求未完成:表现为超时、域名无法解析或证书错误,先查访问路径。
- 响应不能解析:请求返回了内容,但内容可能是登录页面、验证页面或不兼容的订阅格式。
- 没有可用条目:可能确实返回了空内容,也可能是分组折叠、搜索条件或原有条目被更新结果替换。
- 条目存在但测试失败:订阅导入阶段已经产生条目,接下来应检查对应节点的连接条件,而不是继续重复导入。
二、核对完整订阅地址,不修改凭据
回到自己服务商的账户页面,重新复制为 Shadowrocket 提供的订阅地址。不要从聊天记录里的截断预览、截图文字识别结果或浏览器地址栏中的账户页面反推链接。订阅地址通常包含认证参数,少一个字符也可能变成另一个请求。
https://example.com/sub?token=xxxx
上面是不可用于实际订阅的假值,只用于说明结构:协议是 https,主机名是 example.com,路径是 /sub,查询参数包含 token。真实地址的路径和参数由用户自己的服务商决定,不要求与这个示例相同。
- 检查首尾:去掉误复制的空格、换行、引号或中文句号;不要删除地址内部原本存在的符号。
- 检查参数:确认
?、&、=后面的值没有遗漏。不要自行解码再重新拼接含%的字符串。 - 检查入口用途:账户登录页、购买记录页和订阅地址不同;单个节点分享内容也不等于可持续更新的订阅地址。
- 检查是否被重置:如果曾在账户页面重置订阅凭据,旧地址可能立即失效;应以重新复制的地址为准。
- 保留来源:在 Home 找到对应订阅的编辑入口,核对保存的 URL。先记录所属分组与原有条目数量,再保存修改,避免同时新增多个同名订阅。
三、区分网络失败与服务端拒绝
发起一次更新后,先记录完整提示,再决定检查网络还是检查账户状态。下列是可能出现在响应、日志或诊断结果中的标准 HTTP 状态行,不代表 Shadowrocket 的每个界面都会逐字显示它们;实际判断以本次请求记录为准。
报错:401 Unauthorized
原因:服务器没有接受当前请求的认证信息,可能是凭据已失效。解法:在自己的账户页面确认订阅权限并重新复制地址,不要靠反复改动 token 猜测有效值。
报错:403 Forbidden
原因:服务器拒绝访问,可能涉及权限、访问策略或请求来源限制。解法:记录发生时间及网络类型,向自己的服务商确认限制原因;仅凭 403 不能断言账户已经到期。
报错:404 Not Found
原因:请求路径不存在,可能是链接截断、入口变更或服务器使用此状态隐藏无效资源。解法:从账户页面重新取得完整订阅地址,再核对保存的 URL,不手工补猜路径。
报错:429 Too Many Requests
原因:服务端认为请求过于频繁。解法:停止连续刷新;若响应提供 Retry-After,按其指定时间等待,否则遵循服务商说明后再试。
如果是请求超时或域名解析错误,服务器未必已经收到请求。先确认当前 Wi-Fi 是否需要网页认证,再在允许的情况下改用蜂窝网络做一次对照。证书错误则应先核对设备日期与时间、网络认证状态以及服务端证书,不要通过关闭证书验证来掩盖问题。
结论:收到拒绝响应时先查权限
已有 401 或 403 等响应时,先核对订阅授权与服务端访问要求;没有收到响应时,先查网络路径。不要把这两种情况统一处理为更换节点协议。
四、请求完成后,检查返回内容是否能解析
HTTP 请求成功只说明传输层面取得了响应,不保证响应就是有效订阅。服务器即使返回 200,也可能给出登录页面、交互验证页面、维护通知或空文本。浏览器能打开某个地址,同样不等于 Shadowrocket 能从该地址读取到节点条目;浏览器可能已有登录状态,而应用发出的订阅请求没有对应状态。
| 观察到的结果 | 说明什么 | 下一步 |
|---|---|---|
| 返回登录或验证页面 | 拿到的是网页内容,不是可直接解析的订阅内容 | 确认使用专用订阅入口,让自己的服务商核对接口响应 |
| 返回空内容 | 本次响应没有可供解析的正文 | 核对账户订阅状态、可见条目及服务端生成结果 |
| 正文存在,但全部解析失败 | 可能是格式不兼容、内容被截断或数据字段不完整 | 使用明确适用于 Shadowrocket 的订阅格式,并保存脱敏后的错误信息 |
| 只出现部分条目 | 可能部分记录无效,或当前视图没有展示全部结果 | 先清除搜索条件、展开分组,再比较服务端应返回的条目 |
Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuard 是协议名,不是判断整个订阅文本有效性的充分条件。内容中出现这些名称,并不能证明每条记录的认证字段、地址、端口与传输参数完整。不要为了让导入“看起来成功”而批量改协议名、随意填端口或把网页源码当作节点文本粘贴。
- 如果账户页面提供不同格式,选其明确标注适用于 Shadowrocket 的格式;不要仅凭文件后缀判断。
- 如果只有部分条目导入,向自己的服务商报告具体缺失范围,而不是公开完整订阅正文。
- 如果服务端返回内容异常,客户端本地重复刷新不会修复服务端生成的数据。
五、回到 Home,排除显示与更新时机问题
在 Home 先退出搜索,展开订阅分组,确认看到的是目标订阅而不是另一个同名分组。记录更新前的条目数量以及是否存在仍可使用的旧条目。更新失败后旧列表仍在,不表示已经获取最新内容;列表突然变空,也不能单凭这一现象认定是应用删除了有效数据。
- 保留现场:记录分组名称、更新前条目数量、错误提示与本次操作时间。不要先删除整个分组或重装应用。
- 单独更新:在 Home 找到目标订阅的更新操作,执行一次手动更新;若操作菜单随界面布局不同,以当前订阅条目提供的更新入口为准。
- 等待结果:等本次请求结束再观察,不连续触发,也不要把多个分组同时更新造成的结果混在一起。
- 控制路径:如果存在订阅经代理更新的设置,先确认当前连接本身可用。依赖空列表中的节点去获取这份订阅,会形成无法完成的依赖链。
- 恢复日常设置:排查期间若暂停了自动更新或更改访问路径,确认修复后再恢复;记录最终成功的条件,避免下一次自动更新重复失败。
Global Routing 的 Config、Proxy、Direct、Scene 属于流量处理姿态,不是订阅格式转换器。订阅请求是否通过代理还要看应用相关更新设置与当前网络路径,不能仅凭切到 Proxy 就认定订阅一定会经代理更新。Settings → On Demand 用于按条件触发连接,也不负责修复失效链接或解析不兼容的响应。
结论:旧条目可用时,先保留再验证
先修复订阅请求或响应内容,再检查条目是否恢复;不要通过删除现有可用条目来验证更新能力,否则可能同时失去对照信息与可用连接路径。
六、常见追问与提交排查材料
如果按以上顺序仍未定位,整理一次完整失败记录比连续尝试更有价值。把问题限定到“链接、请求、响应、解析、显示”中的一个环节,可以减少重复核对,也能避免将账户权限问题误交给客户端连接设置处理。
网页能打开订阅,为什么应用还是解析失败?
先确认浏览器显示的是订阅内容,而不是登录页或验证页。浏览器可能携带已登录状态;请从账户页面重新复制专用订阅地址,并让自己的服务商核对未登录请求得到的响应内容。
列表有条目,但全部超时,还要重新导入吗?
先保留订阅,在 Home 对现有条目做连接测试,并核对服务端状态与节点认证信息。条目已显示说明至少有内容被解析,连接超时不能直接证明订阅地址错误。
刚更新就变成空列表,能直接连续刷新吗?
先停止重复请求,清除搜索条件并展开分组,再核对账户页面是否应有条目。若服务端确实返回空内容或出现 429,应先处理内容或等待限制解除,而不是持续刷新。
换了网络就成功,是否需要修改所有节点?
不需要先批量修改。记录成功与失败时使用的网络、是否经过代理及错误提示,重点核对订阅域名解析、网络认证和请求访问限制;节点参数与订阅请求是不同检查对象。
向自己的服务商反馈前,准备这些信息
- 发生时间:写明实际日期、时间与时区,便于对照服务端请求记录。
- 操作位置:注明是首次导入还是 Home 中更新已有订阅,以及故障前后条目数量。
- 原始提示:保留完整错误文字或状态码,不只描述“不能用”;截图遮住凭据、二维码与个人信息。
- 对照结果:注明 Wi-Fi 与蜂窝网络是否有差别,是否仅某一份已有订阅失败,以及是否更改过更新路径。
- 客户端环境:提供设备、系统及应用中实际显示的版本信息,不推测版本,也不要为了排查先清空本地配置。
完成排查的标准是:目标订阅能完成请求,响应可解析,Home 显示预期条目,再单独确认节点连接结果。不要只以错误提示消失作为恢复依据,也不要把一次更新成功理解为后续所有线路都一定可用。