Shadowrocket(小火箭)保存了订阅地址,不等于已经取得并解析出节点。本文面向已有自己的服务商与订阅的用户,按“显示状态、地址、响应内容、手动更新、自动更新”逐层检查;先保留原配置和错误记录,再通过一次可观察的更新判断问题所在,避免反复删除、重复导入。
先区分:列表为空、分组收起与连接失败
先在 Home 查看刚添加的订阅分组。分组名称已经出现,只能说明本地保存了一个条目;它不能证明订阅请求成功,也不能证明响应内容中存在可识别的节点。如果分组处于收起状态,先展开,并清除当前搜索条件,再确认是否真的没有条目。
“节点为空”和“节点不能连接”属于不同阶段。前者应检查地址、获取响应和解析;后者已经有节点可选,才进入服务器地址、端口、凭据与连接路径的排查。不要在尚未获得列表时,先去改协议参数或反复切换 Global Routing。
- 分组存在但没有节点:记录本次更新的结果,继续检查订阅请求与返回内容。
- 展开后有节点:先确认是否只是显示状态变化,不要重新创建同名订阅。
- 有节点但测试失败:保留现有列表,另行检查连接;延迟测试不能代替订阅更新。
- 旧节点仍在、新节点未出现:检查最近一次更新是否真正完成;旧列表本身不是本次请求成功的证据。
核对链接:复制的是订阅地址,不是账户页面
回到自己的服务商账户页面,使用其明确标注的订阅复制入口。不要复制浏览器当前地址栏中的账户首页,也不要把分享说明整段粘贴进去。一个可以在浏览器打开的页面,可能只是登录页、说明页或错误页,并不一定是 Shadowrocket 能解析的订阅内容。
下方是假值,仅用于说明 URL 结构,不是可用订阅。地址中的查询参数可能承担身份验证作用;参数名未必叫 token,不要按示例替换自己的真实字段。
https://example.com/sub?token=xxxx
- 检查开头与结尾:确认复制完整,前后没有空格、换行、引号或中文标点。
- 保留原始字符:不要擅自改动
?、&、=、%后的内容,也不要自行解码再拼接。 - 检查复制来源:聊天记录、邮件预览或截图识别可能截断长地址;优先回到原页面重新复制。
- 确认地址用途:订阅地址用于取得节点集合,单个节点的分享内容与 Config 配置文件不是同一种输入。
- 确认凭据状态:若曾重置订阅凭据,旧链接即使格式正确也可能已失效,应重新取得自己的当前链接。
按路径重查:Home 中进行一次手动更新
先保留原条目,再核对类型和 URL。Home 管理节点与订阅,Config 管理规则配置;把订阅地址当作 Config 文件导入,不是排查节点为空的正确起点。以下步骤以 Home 的订阅添加流程为准,保存操作的按钮文字以当前界面为准。
-
记录现状
在 Home 展开目标分组,记录当前节点数量、更新提示及错误原文。如果已有能使用的配置,先保留,不要删除全部条目。
-
核对类型
检查原订阅的编辑页面;确需重新添加时,进入 Home → 右上角“+”→ Type → Subscribe,避免把订阅地址作为单个服务器参数填写。
-
核对 URL
将自己的完整订阅链接粘贴到 URL 栏,使用清楚且不含凭据的备注,确认内容没有被截断后保存。
-
手动更新
返回 Home,下拉刷新以触发更新,等待本轮操作结束。存在多个订阅时,要核对目标分组的结果,不能把其他分组成功当作本组成功。
-
核对结果
再次展开目标分组,检查是否出现节点以及条目是否变化。若仍为空,保存错误原文和发生时间,再进入响应内容排查。
操作期间先固定当前网络和配置,不要同时重置链接、切换网络、修改路由并重复导入。一次只改变一个条件,才能分清是地址修正生效,还是访问路径变化带来的结果。
服务端检查:HTTP 成功不等于解析成功
订阅获取与节点连接是两次不同的网络操作。即使订阅地址使用 HTTPS,返回的内容也可能是登录表单、访问验证页面或空正文。HTTP 状态码反映请求处理情况,节点是否出现还取决于正文内容与格式。不要仅凭“地址能打开”判断订阅正常。
下面列出标准 HTTP 响应状态原文,用于对照应用中可见的错误详情或自己的服务商提供的响应记录,并非保证 Shadowrocket 会逐字显示这些文字。若只能看到笼统失败提示,应把提示原样记录,不要自行推定状态码。
401 Unauthorized
原因与解法:请求缺少有效认证信息或认证被拒绝;向自己的服务商确认订阅凭据是否有效,重新复制当前链接后再更新。
403 Forbidden
原因与解法:服务端拒绝该请求,具体可能涉及账户权限或访问限制;提供脱敏记录,由自己的服务商核对拒绝原因,不要仅靠切换路由猜测。
404 Not Found
原因与解法:请求路径对应的资源未找到;先核对 URL 是否截断、旧入口是否停用,再确认当前订阅入口。
429 Too Many Requests
原因与解法:请求次数触发服务端限制;停止连续刷新,按服务端说明等待;若提供 Retry-After,则按其指示重试。
结论:200 后仍为空,先核对正文
让自己的服务商确认该地址返回的是适用于 Shadowrocket 的非空订阅内容,而非网页或其他格式;只有取得正确内容后,继续研究解析问题才有意义。
网络与解析:分清请求超时和内容不兼容
请求超时、域名解析失败、TLS 验证失败都发生在获得可解析内容之前,不能直接归因于某个节点协议。先检查设备时间、当前网络是否需要网页认证,再在另一个自己可用的网络上进行一次对照更新。遇到证书错误,不要通过关闭验证或安装来历不明的证书来规避。
| 可观察现象 | 优先判断 | 下一步 |
|---|---|---|
| 等待较久后超时 | 请求路径或服务端响应未完成 | 固定 URL,换一个可用网络对照一次,并记录时间 |
| 返回登录页或验证页 | 取得的是网页,不是节点数据 | 确认订阅入口是否允许客户端直接获取 |
| 请求完成但正文为空 | 当前账户可能没有可返回的条目 | 让自己的服务商核对账户状态、授权范围及返回记录 |
| 正文非空但列表为空 | 内容格式或条目字段需要核对 | 确认导出格式适用于 Shadowrocket,并使用脱敏样本排查 |
| 部分条目出现 | 不能简单认定整份订阅不可访问 | 对照缺失条目的类型与必要参数,不要只检查总数 |
Global Routing 中的 Proxy、Direct、Config、Scene 是路由选择,并不是订阅格式转换选项。若更新所用的实际路径依赖一个已经不可用的代理,可能影响请求;但不能据此认定所有订阅都必须在某一种姿态下更新。先记录当前选择,再依据错误和可用网络做单变量对照。
也不要把订阅文本“看起来像编码”当成损坏证据。不同订阅可以采用不同的封装方式,不能随意进行 Base64 解码、删行或改协议名称后覆盖原内容。需要确认的是来源是否返回了正确格式,以及条目参数是否完整,而不是手动拼出一份看似正常的列表。
更新时机:先验证手动更新,再检查自动更新
首次导入、手动刷新与后续自动更新是不同事件。已经保存 URL,不等于后台立刻完成了一次获取;自动更新设置已启用,也不能用来证明某一时刻请求必然成功。先在前台完成一次可观察的手动更新,再核对当前应用提供的订阅自动更新设置及间隔,具体入口和选项以应用内显示为准。
- 应用长时间未打开:重新进入 Home 后主动更新一次,不要仅依据预设间隔判断列表应该已经变化。
- 账户刚恢复有效:先向自己的服务商确认状态已经生效,再触发一次更新;本地显示不会自动证明服务端已完成变更。
- 订阅凭据刚重置:先替换本地 URL,再更新。对着旧地址增加刷新次数不能恢复已撤销的凭据。
- 手动成功、自动未见变化:记录应用是否在前台、设备网络及当前更新设置,区分没有新内容、没有触发和触发失败。
- 自动与手动都失败:回到链接和响应层检查,不要只缩短更新间隔,以免触发请求限制。
提交排查信息与恢复后的验证
完成以上检查后仍为空,向自己的服务商提交可复现记录,比只说“导入不了”更容易定位。不要附上完整订阅凭据;服务商需要核对账户时,应通过其已有的私密支持渠道处理。本站不提供、不销售、不推荐节点或订阅,本文仅说明用户已有资料的检查方法。
- 现象:说明是分组为空、部分条目缺失,还是有节点但连接失败。
- 发生时间:记录日期、时间和时区,便于对应服务端请求记录。
- 操作:说明在 Home 手动更新后的结果,以及是否更换过网络。
- 错误:保留实际错误原文;未显示状态码时不要补写猜测值。
- 环境:记录设备、系统及应用内可核对的版本信息,不公开 URL、密码、token 或完整二维码。
列表恢复后,先确认目标分组确实出现条目,再选择自己的节点进行连接验证。若只有某个节点不能连接,停止重复导入订阅,转而检查该节点的参数和服务状态。手动更新成功后,再观察下一次自动更新,确认问题是否只出现在特定时机。
客户端买断 ≠ 线路套餐。Shadowrocket 是 Apple 平台的付费客户端,唯一获取入口为 App Store,购买应用不包含连接服务。iPhone、iPad 及其他兼容 Apple 设备的系统要求,以 App Store 页面标注为准。