适用于已经持有自己的服务商订阅、需要刷新 Home 服务器列表的用户。先用一次手动更新确认链接可用,再开启打开应用时自动更新;失败时按链接、响应内容、网络和设备时间逐项核对,最后分别验证“订阅已更新”和“服务器可连接”,避免把两种结果混为一谈。
1. 先区分订阅更新、配置更新与连接
Shadowrocket(小火箭)是 Apple 平台的付费客户端,唯一获取入口是 App Store,开发者为 Shadow Launch Technology Limited。应用以 iPhone、iPad 使用为主,其他 Apple 设备兼容性、系统要求及购买适用性以 App Store 页面标注为准。本文说明的是客户端如何读取用户已有的订阅,不涉及服务选择。
Home 中的 Subscribe 保存的是远端订阅地址。更新时,应用请求该地址、解析返回内容,并刷新对应服务器分组。Config 中的配置文件则负责规则、策略等内容;刷新 Home 的订阅,不等于重新下载 Config 文件,也不等于更改 Global Routing。
判断:先确定需要更新哪一种内容
服务器地址或数量变化,检查 Home 的订阅;网站分流结果需要调整,检查 Config 与 Global Routing。不要为了修复订阅请求失败而先改 DOMAIN-SUFFIX 或 FINAL 规则。
2. 手动更新:从 Home 刷新已有订阅
排查自动更新之前,先执行一次可观察结果的手动更新。若订阅还未添加,可以从 Home 右上角“+”进入 Add Server,将 Type 设为 Subscribe,填写自己的订阅 URL 并保存。已有订阅不需要每次重新添加,重复添加容易形成名称相近的多个分组,反而难以确认实际使用的是哪一份。
-
核对订阅
进入 Home,找到对应订阅分组。需要检查地址时打开该 Subscribe 条目的编辑信息,核对 URL 与自己的服务管理页面提供的地址一致,而不是账户登录页或说明页面。
-
下拉刷新
在 Home 的服务器列表下拉,触发订阅刷新。若有多个订阅,留意本次结果属于哪个分组;出现错误时记录完整提示,不要仅凭刷新动画结束判断成功。
-
核对结果
等待请求完成后查看对应分组的服务器名称与数量。服务端内容未改变时,成功更新也可能没有可见增减;若预期有变化却仍未出现,再核对订阅地址和服务端内容。
-
验证连接
确认列表可正常读取后,再选择自己有权使用的服务器并测试连接。更新成功只证明订阅内容能够获取和解析,不证明每个服务器都能完成连接。
刷新可能替换分组内的条目。若原先选中的条目被移除、改名或更换参数,应重新确认当前选择。不要把手动修改的订阅条目当作长期备份:下次更新时,远端返回内容可能覆盖本地修改。
3. 打开时自动更新:设置位置与触发边界
进入 Settings → Subscribe,找到 Update On Open 并开启,用于在打开应用时自动更新订阅。界面语言或应用迭代可能影响文字大小写与排列;应在 Subscribe 设置内核对表示“打开时更新”的开关,而不是到 On Demand 中寻找。
- 开启前:先在 Home 手动更新成功,确认 URL、访问权限和内容格式都可用。
- 开启后:下次打开应用时留意刷新结果;仅从其他页面切回 Home,不应当作已经发生一次新的启动更新。
- 多个订阅:分别核对各分组。一个分组刷新成功,不能证明其他订阅也已成功。
- 遇到错误:回到 Home 手动重试并观察提示,比反复切换自动更新开关更便于定位问题。
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,并确认日期、时间和时区合理。证书有生效与到期时间,设备时钟偏差过大可能让正常证书被判为尚未生效或已过期;修正时间后再执行一次手动更新。
- 域名解析错误常对应
NSURLErrorDomain -1003,超时常对应-1001,离线常对应-1009;错误码用于分类,不直接证明根因。 - 若订阅 URL 使用默认 HTTPS,通常连接端口为
443;这不等于订阅中每个服务器也使用该端口,不应统一修改服务器端口。 - 每次只改变一个条件,例如网络或系统时间,然后复测。一次同时更改多个设置,会失去判断哪个改动有效的依据。
6. 更新成功后仍不能连接:分开验证
订阅更新成功后,数据请求与实际连接仍是两条不同的检查线。订阅地址可能可达,但列表中的某个服务器不可达;服务器可能可连接,但当前路由方式没有按预期使用它。应先确认当前服务器,再检查 Global Routing 和 Config,不要立刻删除全部订阅。
- Global Routing → Config:流量按当前启用的配置规则处理。确认 Config 中选中的是预期文件,并核对规则顺序。
- Global Routing → Proxy:用于代理路由姿态;它不会自动补全失效的订阅凭据或修复服务器参数。
- Global Routing → Direct:用于直连路由姿态;此时网站可访问不代表订阅中的服务器已通过验证。
- Global Routing → Scene:应按已有 Scene 的实际设置检查,不能把它视为订阅更新开关。
例如,配置中存在 DOMAIN-SUFFIX,example.com,PROXY 与末尾的 FINAL,DIRECT 时,是否匹配指定域名会影响请求的出口。订阅刷新不会自行改写这些规则。连接测试时也应核对访问目标是否确实命中了预期策略,而不只是查看 Home 是否出现新名称。
结论:保留错误证据,再决定是否重建
先记录更新提示、失败时间、所用网络和受影响分组,再核对链接与响应。只有确认原条目保存错误或需要替换地址时才重建订阅;重装应用通常不能解决远端拒绝访问、链接失效或证书异常。
7. 交付排查信息与日常维护
需要向自己的服务提供方反馈时,应描述能够复现的现象,而不是只写“更新不了”。有效信息应能区分请求阶段与连接阶段,同时保护订阅凭据。保留旧分组的必要信息,避免在问题未确认前同时清空列表、重置设置和删除配置文件。
- 请求结果:完整错误文本、错误码或 HTTP 状态码;不要只截取弹窗标题。
- 操作位置:是在 Home 下拉刷新失败,还是打开应用时自动更新失败。
- 影响范围:一个订阅失败还是所有订阅失败,旧服务器是否仍能连接。
- 环境差异:Wi-Fi 与蜂窝网络是否表现一致,设备时间是否正确。
- 隐私处理:遮挡订阅 token、账户信息和认证参数,不公开完整 URL。
日常使用可保持 Update On Open 开启,并在服务方通知地址或服务器信息变化后做一次手动刷新。自动更新是减少重复操作的功能,不是可用性保证;最终仍应以对应分组的更新结果、当前选择和实际连接测试为准。