本文讲清三件事:手动更新的两个入口(Home 下拉刷新、订阅详情页 Update),Settings → Subscribe 里 Update on Open 与 Update via Proxy 两个开关的作用边界,以及更新失败时按「网络 → 链接 → 内容」顺序逐项验证的方法。适合已经从自己的服务商处拿到订阅链接、但更新时好时坏的用户。
订阅的存放位置:Subscribe 条目与 Config 的区别
订阅链接由你的服务商提供,通常是一条带 token 的地址,形如 https://example.com/sub?token=xxxx(域名与 token 都是示例值,请替换成你自己服务商给出的地址)。在 Shadowrocket 里,它被添加成一条 Subscribe 类型的条目:切到底部标签栏的 Home,点右上角「+」,把 Type 选为 Subscribe,粘贴链接后保存。
保存完成后,Home 列表里会出现这条订阅,展开可以看到服务商下发的节点。所谓「更新订阅」,就是重新向这个地址发起一次请求,把返回的节点列表整体替换到本地——链接本身不变,内容以服务商当前下发的为准。
| 对比项 | Subscribe(订阅) | Config(配置) |
|---|---|---|
| 承载内容 | 服务商下发的节点列表 | 规则与分流配置(DOMAIN-SUFFIX / GEOIP / IP-CIDR / FINAL) |
| 添加入口 | Home 右上角「+」→ Type 选 Subscribe | Config 标签 → 右上角「+」填入链接或粘贴文本 |
| 更新方式 | Home 下拉刷新,或订阅详情页点 Update | Config 列表下拉刷新 |
| 更新后的变化 | 节点名称、数量与参数按服务商当前下发覆盖 | 整份规则集合被替换 |
Config 与 Subscribe 是两条独立链路:Config 是规则配置文件,DOMAIN-SUFFIX、GEOIP、IP-CIDR、FINAL 这些关键字写在里面;Subscribe 只承载节点。更新订阅不会顺带更新规则文件,反过来也一样。遇到「节点换了但分流没变」的情况,先确认是不是只更新了一半。
订阅链接、节点与流量都来自你的服务商;Shadowrocket 是 App Store 上一次性买断的客户端,买断的是客户端本身,不含任何线路或订阅。
手动更新:Home 下拉刷新与详情页 Update
手动更新有两个入口,效果相同,都是向订阅地址重新发起一次请求:整表刷新用 Home 下拉,单条刷新用订阅详情页的 Update。下面按实际操作顺序列出。
切到 Home 列表
底部标签栏切到 Home,确认列表里已有 Subscribe 条目;没有就先点右上角「+」,把 Type 选为 Subscribe 并粘贴订阅链接。
下拉刷新订阅
把列表滚到顶部再向下拉,松手后开始更新,条目右侧会显示刷新状态,完成后消失。
详情页点 Update
点进 Subscribe 条目,在详情页点 Update,只更新这一条订阅,不影响列表里的其他条目。
核对节点数量
展开条目,把节点数量与服务商告知的数量对一遍;数量对不上,说明这次拉取到的内容不完整。
选中节点并连接
点选一个节点,打开顶部连接开关;首次连接会弹出 VPN 配置授权,允许后回到 Home 确认状态为 Connected。
更新是整体替换,不是增量合并。服务商删掉的节点会从列表里消失;你在这条订阅下改过的备注、端口(例如 443)、加密方式,下一次更新会被下发值覆盖。需要长期保留的自定义参数,建议复制成一条手动添加的节点,不要直接改订阅里的条目。另外,更新时如果正连着这条订阅里的节点,过程可能打断当前连接,稳妥做法是先关掉连接开关再更新。
结论:先分清「取不到」和「取到了但内容不对」
列表完全没变化、弹出报错,属于取不到,查网络与链接;节点数量变少、名称变成一串无意义字符或提示文字,属于取到了但内容不对,找服务商核对订阅状态。两条路的动作完全不同,混在一起试只会浪费时间。
打开时自动更新:Settings → Subscribe 里的两个开关
不想每次手动下拉,可以交给自动更新。入口在底部标签栏最后一个 Settings,展开 Subscribe 分组,与更新直接相关的有两个开关(以下用英文条目名,不同版本的文案可能略有差异,以你设备上实际显示的为准)。
- Update on Open(打开时更新):打开后,每次启动 Shadowrocket、或从后台切回前台时,会自动向所有订阅地址发起一次更新请求。
- Update via Proxy(通过代理更新):打开后,订阅请求走当前已连接的代理链路,适合订阅域名在当前网络下不可达、但手上已有可用节点的场景。
怎么选:订阅域名在当前网络下能直连的,只开 Update on Open 就够,更新请求不经过节点、不占用线路流量;订阅域名被当前网络拦掉的,再叠加 Update via Proxy。需要说明的是,Update on Open 的触发点是「你打开 App」,iOS 不会让 App 在后台按小时定时联网,所以订阅的新鲜度取决于你多久打开一次 Shadowrocket。更新失败时,列表里保留的仍是上一次成功拉取的内容,不会变空。
结论:Update via Proxy 是应急开关
打开它之后,订阅更新依赖当前这条代理链路:节点可用时更新顺畅,节点本身出问题时更新会连带失败,而报错看起来和普通网络故障一模一样。平时保持关闭,只在确认订阅域名不可达时临时打开,更新完成后再关掉,排查时能少一个变量。
更新失败的排查顺序:从网络到内容
排错不要从反复点重试开始,按固定顺序走一遍:网络是否可达 → 链接是否有效 → 返回内容是否是订阅。报错原文本身就是分类依据,英文文案多半来自系统网络层,把它当标签用比猜原因快。
- 换网络:Wi-Fi 与蜂窝互换一次,排除当前网络对订阅域名的拦截。
- 验链接:把订阅链接原样粘到浏览器地址栏打开,看返回的是节点列表文本,还是网页、登录页或错误提示。
- 借道更新:手上有可用节点时,先连上节点,再打开 Settings → Subscribe 的 Update via Proxy 更新一次。
- 找服务商:以上都正常仍失败,把报错原文和订阅链接的域名一起发给服务商,确认订阅是否到期、域名是否变更。
报错:The Internet connection appears to be offline.
原因与解法:设备当前没有可用的系统网络——飞行模式未关、Wi-Fi 未连上或蜂窝数据被关闭。先恢复系统网络再更新;如果只是订阅域名不可达而节点可用,可在 Settings → Subscribe 打开 Update via Proxy 后重试。
报错:A server with the specified hostname could not be found.
原因与解法:订阅地址的域名解析失败,常见于链接里的域名拼写错误、域名已停用或本地 DNS 解析异常。逐字核对链接域名,再把 Wi-Fi 与蜂窝互换一次;仍失败就找服务商确认域名是否已经变更。
报错:The request timed out.
原因与解法:请求发出但没有在超时时间内收到响应,通常是订阅域名在当前网络下被限速或阻断。先连上一个可用节点,打开 Update via Proxy 再更新;换一个网络环境重试同样有效。
报错:The certificate for this server is invalid.
原因与解法:订阅地址的 HTTPS 证书不被系统信任,可能已过期、为自签证书,或请求被中途替换。不要忽略证书告警继续使用,先找服务商确认证书状态,或索取一个证书有效的订阅地址。
报错:Failed to load subscription
原因与解法:请求成功但返回内容不是合法的订阅格式——常见是返回了网页、登录页或到期提示。把链接粘到浏览器里看一眼返回内容;确认链接带完整 token,并向服务商确认订阅是否仍在有效期。
如果没有任何报错、列表却始终不变,先确认下拉动作是否真的触发(列表要滚到顶部再下拉),再确认是不是在更新另一条订阅——Home 里可以同时存在多条 Subscribe 条目,下拉刷新会一起更新,而详情页的 Update 只作用于当前这一条。
常见疑问
下面几条是订阅更新场景里最常被问到的操作问题,答案都对应到具体入口。
同一条订阅链接,在另一台设备上能更新,这台一直失败?
先排除这台设备自己的网络:Wi-Fi 与蜂窝互换一次;再连上一个可用节点,打开 Settings → Subscribe 的 Update via Proxy 重试。仍然失败,就看这条链接是否带完整 token——部分服务商对同一 token 的并发请求有限制,多台设备同时刷新会被拒,间隔几分钟再试。
更新后节点名变了,Config 里的规则还生效吗?
规则按 DOMAIN-SUFFIX、GEOIP、IP-CIDR 这类条件匹配目标地址,不认节点名,所以绝大多数规则不受影响。但如果你在配置里按旧节点名做过引用,名字变化后会失配,需要打开配置重新指定一次。
Update on Open 开着,每次启动都会联网拉一次吗?
会。触发点就是启动 App 或从后台切回前台,每次触发都会向订阅地址发一次请求。订阅内容不常变的话,把它关掉、改用 Home 下拉手动更新,请求节奏更好控制。
订阅更新会覆盖我手动改过的节点参数吗?
会。更新是整体替换,这条订阅下的条目以下发的为准,你改过的备注、端口、加密方式在下次更新后都会回到服务商的值。要长期保留就把改好的参数复制成一条手动添加的节点。
订阅链接可以直接复制到另一台 iPhone 上用吗?
技术上可以,但链接里的 token 等同于账号凭证,谁拿到都能拉取你服务商下发的节点列表。转发、截图、贴到公开场合都可能造成泄露;要在新设备上使用,优先问服务商有没有对应的多设备方案。