2026-09-15 · 故障排查 · 约 9 分钟

Shadowrocket 订阅导入后为空或解析失败:链接格式、服务商侧与更新时机自查

订阅显示为空或提示解析失败时,按链接完整性、返回内容格式、服务商侧状态、更新时机四个方向逐项排查,并附自查顺序。

本文速览

先保留现有订阅与可用条目,再区分“请求没有完成”“取回内容无法解析”和“返回内容没有有效条目”。本文面向已经持有自己服务商订阅的用户,按 Home 中的 Subscribe 录入、地址核对、HTTP 响应、更新网络与重试时机给出检查顺序;不需要先重置 Config,也不需要反复删除后重建订阅。

先区分:订阅为空、解析失败与连接失败

Shadowrocket 的订阅更新,是从已有订阅地址取得内容并生成条目的过程;连接测试则使用某个条目建立连接。前者成功不代表后者一定成功,后者失败也不能证明订阅地址无效。排查时先确认问题发生在哪一步,不要把所有现象都归为“节点不能用”。

Home 主要用于管理条目与连接,Config 用于配置文件,Settings 用于相关设置。修改 Config 中的 DOMAIN-SUFFIX 或 FINAL,不会把一个登录网页转换成订阅内容。先保留现有配置,仅围绕订阅本身做最小范围检查,便于判断每次操作是否有效。

链接格式:从 Subscribe 入口核对完整地址

从自己服务商的订阅管理页面重新复制地址,比手工修补一条残缺链接更可靠。确认复制的是订阅地址,不是账户首页、登录地址或账单页面。订阅 URL 中的查询参数经常承担认证作用,少一个字符也可能改变服务器返回结果。

  1. 保留原记录

    在 Home 记录当前订阅名称、已有条目数量和本次失败提示。暂不删除仍有可用条目的订阅,也不覆盖已有 Config。

  2. 复制完整地址

    在自己的服务商页面复制完整订阅 URL,检查开头的协议、域名、路径,以及问号后面的全部参数。移除复制时混入的首尾空格,不随意改写参数。

  3. 核对录入类型

    需要新建时,在 Home 右上角“+”进入 Add Server,将 Type 设为 Subscribe,再把地址粘贴到 URL。已有订阅则进入对应编辑页核对 URL,避免重复建立多个相同分组。

  4. 保存后更新

    保存并返回 Home,下拉执行更新。等本次请求结束后,再检查分组内条目数量与提示,不要在请求尚未完成时连续触发刷新。

  5. 记录一次结果

    记下此次更新的时间、所用网络和提示原文。下一次只改变一个条件,例如切换网络,才能判断差异来自哪里。

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

上面的地址仅用于说明 URL 结构,不是可用订阅。? 后的参数、参数之间的 &、百分号编码都可能属于原地址的一部分。不要把聊天工具显示的省略号当作链接内容,也不要自行解码后重新拼接。若从网页源码中复制到了字面形式的 &,应回到页面的复制入口重新取得地址,而不是凭猜测修改令牌。

[Check]

ss://、vmess://、vless://、trojan:// 通常表示单条目分享内容,不等同于可定期拉取的 HTTPS 订阅地址。单条目应按对应导入方式处理;不能只把前缀改为 HTTPS,就获得订阅更新能力。

返回内容:HTTP 成功不等于解析成功

请求到达服务器后,还要检查服务器实际返回了什么。HTTP 状态码描述请求处理结果,订阅解析还取决于响应正文是否是可识别的条目内容。因此,浏览器能够打开某个地址,只能说明它产生了响应,不能单凭页面可见就判断订阅有效。

200
HTTP 请求成功,仍需检查正文是否为订阅内容
401
HTTP 认证未通过,先核对令牌与授权状态
429
HTTP 请求过多,按服务端要求等待后重试

结论:先确认正文,再判断解析器

如果返回的是登录页、验证页或维护说明,先向自己的服务商确认订阅接口状态与适用格式;不要通过反复修改本地规则来处理服务端页面。

部分订阅把条目列表编码后返回,部分返回可直接读取的文本;不能仅凭“看起来像一长串字符”判断损坏。反过来,一个排版完整的 HTML 页面也可能以 HTTP 200 返回,却不包含任何可导入条目。需要由自己的服务商确认该接口提供的是 Shadowrocket 可识别的订阅内容,而不是仅供网页阅读的说明。

服务商侧:按响应原文处理,不猜测故障原因

以下卡片列出的是标准 HTTP 响应状态短语,不表示 Shadowrocket 必定逐字显示相同提示。只有在应用提示、请求诊断结果或自己的服务商记录中看到了对应状态码,才按该分支处理;仅有“解析失败”时,不能直接推断为认证失效或访问受限。

HTTP 401 Unauthorized

原因与解法:请求未通过认证;从自己的服务商页面重新取得当前有效订阅地址,核对完整令牌,并确认授权状态后再更新。

HTTP 403 Forbidden

原因与解法:服务器拒绝了该请求,具体限制需由服务端确认;提交状态码与发生时间,请服务商检查访问策略,不凭状态码单独认定账户到期。

HTTP 404 Not Found

原因与解法:请求资源未找到;核对域名与路径是否完整,并确认服务商是否更换了订阅入口,不自行猜测新的路径。

HTTP 429 Too Many Requests

原因与解法:触发请求频率限制;停止连续刷新,若响应提供 Retry-After 则按其要求等待,否则向服务商确认允许的重试间隔。

HTTP 503 Service Unavailable

原因与解法:服务器当前无法处理请求;保留已有条目,向服务商确认恢复情况,待服务恢复后再执行一次更新。

如果服务商报告接口已恢复,而客户端仍为空,应进一步区分“更新没有取回新内容”和“取回的新内容仍为空”。提交更新发生时间、状态码、条目数量变化与提示原文即可帮助对方定位;截图和日志中的订阅 token、密码、UUID 等认证信息应先遮盖,不在公开讨论区贴出完整 URL。

更新时机:网络路径、代理更新与自动连接

更新订阅需要能够访问订阅域名,连接条目需要能够访问条目的服务器,两者的域名和网络路径可能不同。某个条目能连接,不等于订阅域名当前可直连;订阅域名可以访问,也不等于每个条目的服务端都正常。

当直连请求超时,而已有条目仍可正常使用时,可以先建立可用连接,再到 Settings → Subscribe 核对 Update via Proxy,按需要启用后回到 Home 更新。这个设置改变订阅请求的访问方式,不会修复错误令牌、空响应或服务端格式问题。没有可用连接时,单独开启它不能自动建立可用的更新通道。

不要为订阅更新错误关闭证书校验。出现 TLS 相关提示时,先核对设备日期与时间、订阅域名是否正确,再让服务商检查证书与证书链。若只有某个网络失败,保留该网络下的提示作为诊断材料,比跳过安全检查更有助于定位。

常见追问:保留数据后完成最后一轮自查

浏览器能打开链接,为什么 Home 还是空的?

先确认浏览器显示的是条目内容,而不是账户网页或验证页面。浏览器的登录状态不等同于订阅请求的认证条件;从自己的服务商页面重新复制客户端订阅地址,在 Home 的 Subscribe 编辑页核对 URL 后再更新。

刷新失败后,要不要删掉整个订阅?

先不要删除。记录原有条目数量、提示和更新时间,保留仍可用的条目;重新导入不是修复接口错误的必要步骤。确需重建时,先确认地址有效,并妥善保存必要的原始资料。

Update via Proxy 打开了,还是超时怎么办?

先确认已有条目确实能够建立连接,再确认当前连接能访问订阅域名。若连接本身不可用,回到可访问该域名的网络测试;若只有该接口失败,把发生时间和提示交给自己的服务商核查。

订阅更新成功,为什么选中的条目还是不能用?

更新成功只说明取得并处理了订阅内容。进入对应条目的编辑页核对协议、地址、端口和认证参数,再检查服务端状态;例如 Trojan 的 TLS 参数应与自己的服务商资料一致,不能用再次刷新替代参数检查。

最后按“完整 URL → Subscribe 类型 → 返回正文 → 服务端状态 → 更新网络 → 重试时机”依次复核。每次只改一个变量,完成一次请求再记录结果。若需要提交问题,下面这份清单足以描述现象,又能避免暴露完整认证资料。

  1. 说明问题是首次导入为空、原有订阅更新失败,还是更新后部分条目缺失。
  2. 提供发生时间、Wi-Fi 或蜂窝网络等接入条件,以及是否使用 Update via Proxy。
  3. 保留提示原文与可核对的 HTTP 状态码;没有状态码时明确写“未取得”,不要推测。
  4. 说明更新前后条目数量,以及服务商是否确认当前应有有效条目。
  5. 仅向自己的服务商通过私密支持渠道提供必要资料,公开截图先遮盖 token 与其他认证字段。
App Store 正版核对