Shadowrocket 订阅更新方法:手动刷新、打开时自动更新与更新失败排查

讲清订阅手动刷新与打开应用时自动更新的设置位置,并按链接失效、网络不可达、格式不识别三类原因排查更新失败。

本文速览

已有自己的订阅时,先在 Home 手动刷新并确认列表有效,再到 Settings → Subscribe 开启 Update on Open。更新失败应先判断请求有没有到达订阅地址,再检查返回内容能否解析;不要把订阅刷新、连接测试和 Config 更新当成同一件事。本文按操作、验证、排错的顺序说明。

订阅更新的范围:刷新列表,不是更新应用

Shadowrocket(小火箭)的订阅更新,是重新读取自己已有的订阅地址,并据此更新 Home 中对应分组的连接条目。远端调整名称、地址、端口或其他连接参数后,本地通常需要重新获取,才能反映这些变化。本文以用户已经持有自己的服务商与订阅为前提。

读取订阅地址 请求远端内容 解析连接条目 更新本地列表

这条流程中,能请求到内容和能解析出条目是两个独立条件。订阅服务器返回登录页面,即使网络请求成功,也不等于获得了有效订阅;列表已经更新,也不等于其中每条连接都能正常使用。连接是否可用还取决于远端服务状态、认证参数与当前网络。

手动刷新:先核对地址,再检查分组

第一次导入或更新出现异常时,先使用手动刷新。这样可以观察本次操作的结果,而不是等待自动触发。操作前记下目标分组的名称、当前条目数量,以及一条你准备核对的连接名称;这些信息用于前后比较,不需要记录或公开订阅凭据。

  1. 确认订阅类型

    进入 Home,找到已有订阅分组。首次添加时使用 Home 右上角“+”→ Type → Subscribe,填写自己的订阅地址并保存。单条分享链接不是可持续刷新的订阅列表。

  2. 核对完整地址

    打开对应订阅的编辑项,核对 URL。确认查询参数完整,没有复制到前后空格、换行或说明文字;只检查自己的地址,不把完整内容发到公共讨论区。

  3. 下拉刷新列表

    回到 Home,在列表区域向下拉动并松开,触发订阅刷新。等待本次操作结束,留意失败提示;多个订阅同时存在时,分别确认目标分组的结果。

  4. 检查更新结果

    对比目标分组的名称、数量和已知变更的条目。如果远端已明确修改某条连接,进入该条目的编辑信息核对地址或端口,再进行连接测试。

下面仅展示地址的结构,不能用于连接。示例中的 token 是查询参数;实际地址可能使用其他参数名,也可能通过路径承载凭据。不要根据示例替换自己地址里的字段。

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

打开时自动更新:在 Subscribe 中设置

手动刷新成功后,再进入 Settings → Subscribe → Update on Open,开启打开应用时更新。该设置用于在打开应用时触发订阅获取,不是固定间隔的后台定时任务。只让连接保持运行、没有打开应用,并不能据此推断订阅已经刷新。

Update on Open 与 On Demand 的用途不同。前者控制订阅获取的触发时机,后者用于连接的按需触发。修改 Settings → On Demand 不会修复订阅地址,也不能替代列表更新;排查订阅时无需同时调整这两组设置。

操作或设置触发方式核对重点
Home 下拉刷新用户手动操作本次提示、目标分组和已知条目变化
Update on Open打开应用时触发实际获取结果,而不只是开关是否开启
On Demand按连接条件触发连接状态,不作为订阅更新证据

结论:手动成功后再启用自动

先建立一次可复现的成功刷新,再开启 Update on Open;后续出现问题时,就能区分地址失效与自动触发未完成,而不必同时修改多项设置。

更新失败排查:链接、网络、格式分开检查

先记录屏幕上出现的完整提示,再按下面三类原因排查。不同系统语言或请求阶段可能显示不同文字;报错只能提供线索,不能单凭一句通用提示断言订阅已经过期。

报错:Failed to load subscription

原因与解法:这是订阅加载失败的概括性提示,可能涉及地址授权、请求失败或返回格式异常。先向自己的服务商确认地址有效,再分开检查网络可达性与返回内容。

报错:The request timed out.

原因与解法:请求未能在等待时间内完成,可能涉及当前网络、请求路径或订阅服务器响应。分别在 Wi-Fi 与蜂窝网络下手动刷新,对比是否只有某一种网络失败。

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

原因与解法:订阅地址的主机名未能解析。先检查域名是否复制完整,再更换网络复测;若域名已变更,应从自己的服务商处确认当前地址。

第一类:链接失效或授权变化

服务商重置凭据后,旧地址可能继续保存在 Home 中,却已经不能取得内容。若请求返回 HTTP 401 或 403,优先检查授权状态与访问限制;若返回 404,检查路径是否变更。这些状态并不自动等同于某一种具体账户问题,需要结合自己的服务信息判断。

第二类:网络不可达或请求路径异常

如果 Wi-Fi 失败而蜂窝网络成功,说明值得优先检查两种接入环境的差异,而不是立即重建订阅。先完成网络切换对照,再检查当前连接是否影响请求。Global Routing 下的 Proxy、Direct、Config、Scene 是路由姿态;更改它们可能影响网络访问,但不会改变订阅凭据的有效性。

第三类:返回内容无法识别

HTTP 200 仅表示请求获得了成功响应,不保证内容就是有效的连接列表。服务器可能返回登录页、维护通知或其他文本。浏览器能显示页面,也不能证明 Shadowrocket 能将该内容作为订阅解析。

刷新后没有变化:用条目字段验证

订阅可以成功刷新但看起来完全不变:远端没有修改内容时,名称与数量自然保持原样。反过来,数量相同也不能证明没有更新,因为服务器地址、端口或认证参数可能已经变化。验证时应选择一条已知发生变化的条目,而不是只看列表长度。

看到的现象需要核对下一步
名称和数量都未变化远端是否实际修改内容,是否查看了正确分组核对一条已知变更的连接字段
列表已变,连接失败远端可用性、认证参数与当前网络转入连接排查,不再反复刷新列表
仅部分条目缺失远端返回数量、条目格式与参数完整性向自己的服务商确认缺失条目是否仍在订阅内
打开应用后仍是旧内容Update on Open 状态及本次请求是否完成手动刷新一次,并记录提示

例如,远端明确告知某条连接的端口从 443 改为 8443,刷新后就核对该条目的端口,而不是只看名称。这里的数字仅用于说明验证方法,并不代表任何现有连接的推荐端口;实际参数必须与用户已有配置一致。

提交问题前:保留现象,隐藏凭据

完成上述对照后,仍然失败时应整理最小排错记录。记录应让对方能够区分“取不到内容”和“取到但不能解析”,同时避免泄露可访问订阅的完整地址。订阅凭据可能位于查询参数,也可能位于路径,不能只遮住名为 token 的字段。

App Store 正版核验