Shadowrocket 订阅更新教程:手动更新、打开时自动更新与更新失败排查

讲清订阅手动更新的入口、打开应用时自动更新的开关含义,以及链接失效、超时、格式不符等更新失败原因的逐项检查方法。

本文速览

已有自己的服务商与订阅时,先在 Home 手动更新并核对返回结果,再按需要启用 Settings → Subscribe → Update on Open。更新失败应依次区分链接授权、网络请求与内容解析问题,不要先删除已有分组。本文说明更新入口、自动更新边界,以及保留现有配置完成排查的方法。

订阅更新与连接测试分别检查什么

Shadowrocket(小火箭)的订阅更新,是重新请求用户保存的订阅地址,将返回的服务器条目读入应用。它不是更新 Shadowrocket 本身,也不等于连接测试。服务器能否建立连接,还取决于条目参数、网络环境及自己的服务状态。

订阅地址是请求入口,Home 中展开的服务器条目是读取结果,Config 中选用的配置则涉及规则等设置。更新服务器订阅,不应被理解为同步所有 Config 内容;同样,改变 Global Routing 也不是重新获取订阅。先区分操作对象,才能判断故障发生在哪一步。

读取订阅地址 发起网络请求 接收响应内容 解析服务器条目 核对列表结果

只有请求与解析都完成,才能据此检查列表变化。更新成功但名称和数量不变,可能只是远端内容没有改变;旧条目还在,也不能单独证明刚才的请求成功。应结合应用显示的更新结果,以及自己服务商提供的当前条目进行核对。

在 Home 手动更新已有订阅

首次排查建议使用手动更新:停留在 Home,观察一次完整操作的结果,避免在切换网络、修改规则和更新订阅之间来回操作。本文按英文界面词说明;按钮位置与具体提示以当前应用显示为准。

  1. 确认分组

    打开 Home,找到自己的订阅分组。先核对分组名称与已有条目,避免把手动添加的单个服务器误当作订阅。

  2. 检查地址

    进入该订阅的编辑界面,核对 URL。不要随意改写域名、路径或查询参数;检查完可返回 Home,无需为测试先删除分组。

  3. 发起更新

    在 Home 的列表顶部向下拉动并释放,触发订阅刷新。存在多个订阅时,注意分别核对各分组的结果,不把其中一个的成功当成全部成功。

  4. 核对结果

    等待刷新结束,记录提示,再展开目标分组检查名称与数量。如果出现错误,先保留原条目和原始提示,按后文分类排查。

  5. 单独测连接

    确认更新完成后,再选择自己的有效服务器进行连接测试。若列表已更新但连接失败,应转向服务器参数、服务状态或网络路径检查。

尚未添加订阅时,可从 Home 右上角“+”进入,Type 选择 Subscribe,在 URL 中粘贴自己已有的订阅地址并保存。新增订阅与刷新已有订阅是两种操作;排查现有问题时,不必反复新增相同地址,否则容易得到多个同名分组。

Update on Open 的含义与使用边界

进入 Settings → Subscribe,找到 Update on Open。启用后,应用会在打开时尝试更新订阅,减少每次手动刷新的操作。它不代表固定间隔的后台轮询,也不表示远端内容一变化,本地列表就立即变化。

从后台返回是否立即触发请求,不应仅凭列表画面判断;还需要考虑应用当时的运行状态,并核对实际更新结果。若要确认某个地址此刻能否获取,直接在 Home 手动刷新比反复切换前后台更便于观察。

Home
手动下拉刷新,便于观察单次请求结果
Update on Open
Settings → Subscribe 中的打开时更新选项
On Demand
按需连接设置,不是订阅更新开关

Settings → On Demand 管理的是按需连接行为,与获取订阅列表属于不同环节。开启 On Demand 不会替代 Update on Open,启用 Update on Open 也不等于自动建立连接。排查自动更新时,先确认手动更新能够完成,再检查开关状态。

链接失效:先查 URL 与授权状态

订阅地址往往包含用于识别用户的参数。复制不完整、使用旧地址、服务端重置凭据,都会导致获取失败。下面只是结构示例,不是真实服务地址,也不可用于连接。

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

检查时应比较完整地址,而不是只看域名。示例中的 ?token=xxxx 表示查询参数的位置;真实地址可能使用不同的路径和参数名,不应照此修改。尤其要检查复制过程中是否带入空格、换行、引号或聊天文本中的标点。

检查对象可核对现象处理方法
完整 URL只有域名正确,路径或参数缺失从自己的订阅管理页面重新复制完整地址。
访问凭据旧地址失败,服务端已生成新地址核对后在原订阅中替换 URL,再手动刷新。
HTTP 401响应要求身份验证或拒绝现有凭据确认地址授权仍有效,不通过修改规则来修复凭据。
HTTP 403服务器拒绝访问向自己的服务商核对访问权限及限制条件。
HTTP 404请求路径对应的资源未找到核对路径与地址是否已变更,不直接断定是网络中断。

HTTP 状态码只有在提示或诊断信息实际提供时才用于判断,不能把所有“更新失败”都归为地址过期。浏览器能打开某个网站首页,也不证明订阅 URL 有效;首页与订阅接口是不同资源,可能有不同的访问要求。

超时与连接失败:按请求阶段排查

网络错误应尽量保留原文。以下是可能出现在系统网络错误中的英文描述,具体语言与显示形式以应用实际提示为准;不是每次失败都会显示同样的文字。按错误所处阶段排查,比一次修改多个设置更容易定位。

报错:The request timed out.

原因与解法:请求在等待期限内没有完成,可能涉及当前网络或远端响应;先确认当前网络可用,再换用另一个可用网络手动更新一次,并比较结果。

报错:A server with the specified hostname could not be found.

原因与解法:订阅域名未能解析;先核对 URL 中的域名拼写,再检查当前网络的域名解析是否正常,不要把目标域名直接替换成猜测的 IP。

报错:Could not connect to the server.

原因与解法:到目标服务器的连接未能建立;核对地址中的端口及目标服务状态,在保留原始地址的前提下向自己的服务商确认接口是否可访问。

例如,HTTPS 地址没有显式端口时通常使用 443;若 URL 明确带有端口,则请求会使用该端口。这里的端口属于订阅接口,不一定等于服务器条目里的连接端口。不要为了修复订阅更新,把所有服务器端口统一改成 443。

Global Routing 下的 Proxy、Direct、Config、Scene 涉及路由姿态,不是“修复订阅”的按钮。若测试确实需要切换路由,应记录原状态、一次只改一项,并在测试后恢复;仅凭订阅错误就改写整个 Config,会引入更多变量。

格式不符与空列表:请求成功后继续查内容

收到响应不等于获得可解析的订阅。接口可能返回登录页面、错误说明、空内容,或不适用于当前导入方式的数据。因此,网络已通但列表没有有效条目时,下一步应核对响应内容类型,而不是继续扩大网络修改范围。

现象需要区分下一步
返回网页内容复制了管理页面地址,或请求被转到登录页从自己的管理页面取得订阅入口,不使用页面地址代替。
响应为空接口没有提供条目,或当前授权下没有可用内容向自己的服务商核对该地址此时应返回哪些条目。
提示解析失败返回格式、条目参数或协议内容不适配确认该订阅适用于 Shadowrocket,并保留去除敏感信息后的错误原文。
更新后数量减少远端调整了条目,不一定是本地丢失比较自己的服务商当前列表,先确认预期数量。
条目更新但无法连接订阅获取成功与服务器可用性是两回事转查所选条目的参数、服务状态及连接日志。

不要仅凭返回内容“看起来像编码文本”就手动截取、拼接或重新编码;这样可能破坏原始数据,也会让后续排查失去依据。需要联系自己的服务商时,提供发生时间、网络类型、错误文字及是否能手动复现即可,完整订阅凭据只应通过其指定的私密渠道核对。

恢复后核对:先更新,再连接

修复后按同一顺序验证:在 Home 手动刷新,核对分组条目,再选择自己的服务器测试连接,最后按需要恢复 Update on Open。保留这一顺序,可以把订阅接口问题与连接问题分开,也能避免误把旧列表当成新结果。

  1. 确认更新结果:本次刷新结束,没有新的失败提示,目标分组内容符合预期。
  2. 确认所选条目:远端可能调整名称或移除条目,应重新核对当前选择,不能只看之前的选择记录。
  3. 确认规则配置:订阅更新不代替 Config 检查;连接后的访问行为仍需结合当前配置判断。
  4. 确认自动更新:手动更新稳定后,再启用或保留 Settings → Subscribe → Update on Open。
  5. 确认隐私记录:分享排查截图前,遮盖 URL 中的访问参数及其他身份凭据。

Shadowrocket 是 Apple 平台的闭源商业应用,主要用于 iPhone、iPad,唯一获取入口是 App Store。购买客户端与用户自己的订阅服务分别管理;重新购买应用不能修复已失效的订阅地址。系统要求与购买适用范围以 App Store 页面标注为准。

获取 ShadowrocketApp Store 正版核对