本文速览

适用于已经持有自己的服务商订阅、需要刷新 Home 服务器列表的用户。先用一次手动更新确认链接可用,再开启打开应用时自动更新;失败时按链接、响应内容、网络和设备时间逐项核对,最后分别验证“订阅已更新”和“服务器可连接”,避免把两种结果混为一谈。

1. 先区分订阅更新、配置更新与连接

Shadowrocket(小火箭)是 Apple 平台的付费客户端,唯一获取入口是 App Store,开发者为 Shadow Launch Technology Limited。应用以 iPhone、iPad 使用为主,其他 Apple 设备兼容性、系统要求及购买适用性以 App Store 页面标注为准。本文说明的是客户端如何读取用户已有的订阅,不涉及服务选择。

Home 中的 Subscribe 保存的是远端订阅地址。更新时,应用请求该地址、解析返回内容,并刷新对应服务器分组。Config 中的配置文件则负责规则、策略等内容;刷新 Home 的订阅,不等于重新下载 Config 文件,也不等于更改 Global Routing。

Home
检查 Subscribe 与服务器分组
Config
检查配置文件与规则内容
Settings
管理订阅更新偏好

判断:先确定需要更新哪一种内容

服务器地址或数量变化,检查 Home 的订阅;网站分流结果需要调整,检查 Config 与 Global Routing。不要为了修复订阅请求失败而先改 DOMAIN-SUFFIX 或 FINAL 规则。

2. 手动更新:从 Home 刷新已有订阅

排查自动更新之前,先执行一次可观察结果的手动更新。若订阅还未添加,可以从 Home 右上角“+”进入 Add Server,将 Type 设为 Subscribe,填写自己的订阅 URL 并保存。已有订阅不需要每次重新添加,重复添加容易形成名称相近的多个分组,反而难以确认实际使用的是哪一份。

  1. 核对订阅

    进入 Home,找到对应订阅分组。需要检查地址时打开该 Subscribe 条目的编辑信息,核对 URL 与自己的服务管理页面提供的地址一致,而不是账户登录页或说明页面。

  2. 下拉刷新

    在 Home 的服务器列表下拉,触发订阅刷新。若有多个订阅,留意本次结果属于哪个分组;出现错误时记录完整提示,不要仅凭刷新动画结束判断成功。

  3. 核对结果

    等待请求完成后查看对应分组的服务器名称与数量。服务端内容未改变时,成功更新也可能没有可见增减;若预期有变化却仍未出现,再核对订阅地址和服务端内容。

  4. 验证连接

    确认列表可正常读取后,再选择自己有权使用的服务器并测试连接。更新成功只证明订阅内容能够获取和解析,不证明每个服务器都能完成连接。

刷新可能替换分组内的条目。若原先选中的条目被移除、改名或更换参数,应重新确认当前选择。不要把手动修改的订阅条目当作长期备份:下次更新时,远端返回内容可能覆盖本地修改。

3. 打开时自动更新:设置位置与触发边界

进入 Settings → Subscribe,找到 Update On Open 并开启,用于在打开应用时自动更新订阅。界面语言或应用迭代可能影响文字大小写与排列;应在 Subscribe 设置内核对表示“打开时更新”的开关,而不是到 On Demand 中寻找。

Update On Open 不表示应用关闭后会按固定间隔持续拉取,也不保证设备离线时完成更新。网络请求仍需经过域名解析、建立连接、TLS 验证和内容解析,其中任一步失败,都可能保留旧列表或显示更新错误。

4. 链接失效与格式不符:先检查返回了什么

订阅 URL 通常包含用于识别访问权限的参数。复制时漏掉查询字符串、末尾多出空格、把换行一起粘贴进去,或继续使用已经被重置的地址,都可能导致更新失败。下面仅是结构示例,不可用于获取内容。

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

URL 中 ? 后面的参数也是地址的一部分,不能只保留域名和路径。订阅地址包含凭据,不应发到公开留言、截图或在线解析页面;需要他人协助时,只提供隐藏 token 后的地址结构、错误文本和发生条件。

观察结果含义与下一步
HTTP 401 或 403请求未获授权或被拒绝。核对服务账户状态、链接是否重置及访问限制;状态码本身不能确定唯一原因。
HTTP 404 或 410资源未找到或已移除。回到自己的服务管理页面核对当前订阅入口,不要猜测新的路径。
HTTP 200,但内容是 HTML请求成功不等于订阅有效。返回的可能是登录页、验证页或错误说明页,不能按服务器列表解析。
返回空内容或无法识别的数据核对所选订阅输出格式是否适用于 Shadowrocket,并向自己的服务提供方确认实际返回内容。

若应用提示无法解析,先确认取得的是服务器订阅,而非完整的其他格式配置文件。不要仅凭扩展名判断格式,也不要随意将内容改成另一种后缀。不同协议条目需要不同参数,缺失认证信息或传输设置时,即使能显示名称,也可能无法连接。

5. 网络超时与设备时间:按错误文本排查

错误提示可能来自应用,也可能来自 Apple 网络框架。以下为常见系统错误原文,实际显示语言与包装文字可能不同。记录原文或错误码后逐项处理,不要将所有失败都归结为订阅过期。

报错:The request timed out.

原因:请求在允许时间内未完成,可能涉及当前网络、连接路径或远端响应延迟。

解法:确认普通网络访问正常,再分别在可信的 Wi-Fi 与蜂窝网络下手动刷新一次;若仅某个网络失败,优先检查该网络的限制。

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

原因:订阅域名未能解析,常见于域名拼写错误、域名失效或当前 DNS 解析异常。

解法:核对 URL 中的主机名是否完整,再切换可用网络重试;不要直接用猜测的 IP 地址替换 HTTPS 域名。

报错:The Internet connection appears to be offline.

原因:系统判断当前没有可用的互联网连接,或应用请求未能使用当前网络。

解法:检查 Wi-Fi 是否需要完成网络登录,并在系统设置中确认 Shadowrocket 的蜂窝数据权限,再回到 Home 刷新。

报错:The certificate for this server is invalid.

原因:TLS 证书验证失败,可能涉及设备时间错误、证书过期、主机名不匹配或网络拦截。

解法:先检查系统日期与时区;时间正确仍报错时向自己的服务提供方反馈,不通过关闭证书验证绕过问题。

在 iPhone 或 iPad 的系统 Settings → General → Date & Time 中检查 Set Automatically,并确认日期、时间和时区合理。证书有生效与到期时间,设备时钟偏差过大可能让正常证书被判为尚未生效或已过期;修正时间后再执行一次手动更新。

6. 更新成功后仍不能连接:分开验证

订阅更新成功后,数据请求与实际连接仍是两条不同的检查线。订阅地址可能可达,但列表中的某个服务器不可达;服务器可能可连接,但当前路由方式没有按预期使用它。应先确认当前服务器,再检查 Global Routing 和 Config,不要立刻删除全部订阅。

例如,配置中存在 DOMAIN-SUFFIX,example.com,PROXY 与末尾的 FINAL,DIRECT 时,是否匹配指定域名会影响请求的出口。订阅刷新不会自行改写这些规则。连接测试时也应核对访问目标是否确实命中了预期策略,而不只是查看 Home 是否出现新名称。

结论:保留错误证据,再决定是否重建

先记录更新提示、失败时间、所用网络和受影响分组,再核对链接与响应。只有确认原条目保存错误或需要替换地址时才重建订阅;重装应用通常不能解决远端拒绝访问、链接失效或证书异常。

7. 交付排查信息与日常维护

需要向自己的服务提供方反馈时,应描述能够复现的现象,而不是只写“更新不了”。有效信息应能区分请求阶段与连接阶段,同时保护订阅凭据。保留旧分组的必要信息,避免在问题未确认前同时清空列表、重置设置和删除配置文件。

日常使用可保持 Update On Open 开启,并在服务方通知地址或服务器信息变化后做一次手动刷新。自动更新是减少重复操作的功能,不是可用性保证;最终仍应以对应分组的更新结果、当前选择和实际连接测试为准。