On Demand 管理系统何时尝试建立或断开 VPN 连接,不决定每个请求走哪条出站。本文适合已能手动连接、已有自己的服务商与订阅资料的用户:先区分网络条件与域名评估,再按 Wi-Fi、蜂窝网络、域名的顺序逐项验证,最后检查自动重连与规则分流是否符合预期。
On Demand 与 Global Routing 的职责
Shadowrocket(小火箭)的 On Demand 是按需连接设置,入口为 Settings → On Demand。系统依据已保存的 VPN 按需规则处理连接请求,因此关闭应用界面不等于停用按需连接;手动断开后,如果触发条件仍然成立,系统也可能再次建立连接。
Global Routing 管理连接建立后的路由姿态。Proxy、Direct、Config、Scene 与 On Demand 不是同一层设置:其中 Config 依照当前配置规则分流,Proxy 与 Direct 分别采用相应的全局路由方式;Scene 涉及场景选择,应另行核对其关联设置。排查自动连接时,不要同时更换路由姿态。
例如,VPN 已经自动连接,但网页仍从 Direct 出站,并不必然意味着 On Demand 失效。应先查看 Home 的连接状态,再检查 Global Routing 和 Config 的匹配结果。反过来,配置中存在 DOMAIN-SUFFIX 规则,也不代表系统会为了该域名自动建立隧道。
启用前:先保留一条可手动连接的基线
On Demand 不能修复错误的连接参数。先在 Home 使用已有连接资料完成一次手动连接,确认目标网站可访问,再配置自动触发。用户已有订阅时,订阅导入与更新负责连接资料的获取和变更;On Demand 不负责更新订阅,也不会自动纠正过期的服务器地址、密码或端口。
- 在 Home 核对当前选中的连接条目,执行 Connectivity Test。测试有响应只能说明该测试条件下可达,仍需用实际请求验证。
- 固定 Global Routing。若要验证已有分流配置,选择 Config,并在 Config 中确认当前启用的配置文件。
- 手动连接,完成系统 VPN 配置授权;若系统仍在等待确认,先处理授权,再继续自动连接测试。
- 记录当前网络名称、连接开关状态和测试网站。不要在同一轮测试中更新订阅、更换连接条目并修改 DNS。
- 进入 Settings → On Demand,检查已有条件。先保留单一网络条件,确认结果后再增加例外。
Wi-Fi 条件:区分网络类型与指定 SSID
“处于 Wi-Fi”与“连接某个 Wi-Fi 名称”是两种范围。前者覆盖所有 Wi-Fi 网络,后者按 SSID 限定。SSID 是无线网络名称,不是路由器管理地址,也不是设备当前获得的 IP 地址。输入指定名称时,应按系统显示核对空格、大小写和符号,避免凭记忆填写简称。
在 Settings → On Demand 中检查 Wi-Fi 条件及其动作;当前界面提供指定 SSID 条件时,再添加需要区分的网络。Connect 表示匹配时请求建立连接,Disconnect 表示匹配时断开连接。它们描述的是 VPN 状态,不是“该 Wi-Fi 的所有网站都走 Proxy”或“都走 Direct”。
- 所有 Wi-Fi 都需要连接:先用覆盖 Wi-Fi 的 Connect 条件测试,不必逐个录入 SSID。
- 某个 Wi-Fi 不需要隧道:对该 SSID 设置 Disconnect,并检查它是否会被范围更大的 Connect 条件提前匹配。
- 同名网络:SSID 相同不代表同一台接入设备。不要把名称匹配视为网络身份认证。
- 访客登录网络:先完成系统要求的网页认证。连接了 Wi-Fi 但尚未获得互联网访问能力时,自动连接可能持续失败。
系统按需规则按顺序评估,具体条件应置于宽泛条件之前;若当前界面不提供排序,应检查生成条件的覆盖关系,避免同时保留含义相反的重复项。完成设置后,离开该 Wi-Fi 再重新加入,比只在设置页反复切换开关更能验证网络变化是否触发了预期动作。
蜂窝网络条件:与 Wi-Fi 分别验证
蜂窝网络条件匹配的是设备实际使用的网络接口,不是状态栏是否显示信号,也不是某张 SIM 卡是否开启。在 Wi-Fi 仍承载流量时,仅打开蜂窝数据并不能证明蜂窝条件已经生效。测试时应从系统设置断开 Wi-Fi,确认实际使用蜂窝网络,再观察连接状态。
方案一:两类网络都连接
- 入口
- Settings → On Demand
- Wi-Fi
- Connect
- 蜂窝网络
- Connect
- 适用前提
- 两类网络均需要维持 VPN 连接
这是动作组合说明;切换接口仍可能短暂重建隧道,不代表连接始终无中断。
方案二:指定 Wi-Fi 例外
- 指定 SSID
- Disconnect
- 其他 Wi-Fi
- Connect
- 蜂窝网络
- Connect
- 检查重点
- 指定 SSID 条件优先于宽泛 Wi-Fi 条件
按实际界面填写条件与动作;是否在某个网络保持连接,由用户的使用需求决定。
这两种方案不是耗电结论。蜂窝网络信号、重试频率、应用后台请求和实际流量都会影响耗电。若蜂窝条件设为 Connect,但所选连接在该网络不可达,系统可能反复尝试建立隧道。应先在相同蜂窝网络下关闭自动触发、手动测试连接,再判断是否需要保留该条件。
- 在 Wi-Fi 下记录预期动作与实际状态。
- 从系统设置断开 Wi-Fi,等待蜂窝数据可用,再记录同样两项。
- 重新加入原 Wi-Fi,核对指定 SSID 例外是否恢复。
- 若只在切换瞬间断开、随后恢复,优先判断为接口切换过程;若长期停在错误状态,再检查条件覆盖与连接可达性。
域名条件:不是把分流规则搬进 On Demand
域名按需评估与 Wi-Fi、蜂窝接口匹配不完全相同。系统的 Evaluate Connection 机制可以结合域名及 DNS 解析条件判断是否需要连接,常见行为涉及解析失败时尝试建立 VPN。它不等于“任何应用访问此域名,立即无条件连接”,也不是逐条读取 HTTPS 页面地址。
只有当前 On Demand 界面明确提供域名评估项时,才按该项的说明填写;不要把 Config 的规则行粘贴到域名输入栏。以 example.com 为例,域名字段通常需要的是名称本身,而不是 https://example.com/path。子域匹配范围则应以该字段说明为准,不能默认与 DOMAIN-SUFFIX 完全一致。
| 项目 | 所在层次 | 判断结果 |
|---|---|---|
| Wi-Fi / 蜂窝条件 | On Demand 网络匹配 | 根据接口、SSID 等条件执行对应连接动作 |
| Evaluate Connection | 系统按需连接评估 | 按配置的域名与解析条件判断是否需要连接 |
DOMAIN-SUFFIX,example.com,PROXY | Config 分流规则 | 相关域名请求匹配后使用 PROXY 策略 |
FINAL,DIRECT | Config 末尾规则 | 前面规则未命中时采用 DIRECT,不负责断开隧道 |
验证域名评估前,应先排除范围更大的 Connect 条件已经让隧道保持连接。浏览器缓存、DNS 缓存、应用自带的加密解析以及复用中的连接,都可能使测试没有产生预期的系统解析过程。因此,“重新打开一次网页,没有看到 VPN 状态变化”不足以证明规则无效;应同时记录测试前隧道状态、使用网络和解析条件。
反复连接或没有触发:按现象缩小范围
先区分“连接状态反复变化”和“连接一直存在但请求失败”。前者主要检查自动连接条件、接口变化和隧道建立失败;后者应继续检查 Global Routing、Config、DNS 与连接资料。将这两类现象混在一起修改,容易把原本正确的按需规则也改坏。
为什么在 Home 关掉连接,很快又自动打开?
先到 Settings → On Demand 暂停按需连接,再回到 Home 断开。若此后保持断开,说明此前仍有匹配条件要求 Connect;逐项检查当前 Wi-Fi、指定 SSID 与蜂窝条件,而不是连续点击连接开关。
指定家中 Wi-Fi 为 Disconnect,为什么仍然连接?
从系统设置复制核对当前 SSID,确认没有连到访客网络或同一路由器的另一名称。随后检查是否有更宽泛的 Wi-Fi Connect 条件优先匹配,并保存修改后重新加入该网络验证。
切换到蜂窝网络后一直连接失败,改哪里?
暂时停用 On Demand,在同一蜂窝网络下从 Home 手动连接并执行 Connectivity Test。手动连接也失败时,先核对已有连接资料、网络可达性与系统时间;自动触发不能绕过这些前提。
填了域名但打开网页没有自动连接,为什么?
核对填写位置是否确实属于 On Demand 域名评估,而不是 Config。再检查动作及 DNS 条件;已有缓存或其他解析方式可能不触发相同评估。若只是需要域名分流,改为检查 Config 中的 DOMAIN-SUFFIX 规则。
删掉系统 VPN 配置后,按需连接不再工作怎么办?
回到 Shadowrocket,先手动连接并完成系统重新添加 VPN 配置的授权,再检查 Settings → On Demand 是否启用。系统设置中的 VPN 按需连接状态也应一并核对;尚未完成授权时不要直接测试自动触发。
保留设置前:完成一轮闭环检查
稳定的组合不在于条件多,而在于每个条件都有明确范围与可复现的结果。先完成 Wi-Fi 与蜂窝的接口测试,再加入指定 SSID 例外,最后单独评估域名需求。每次只改一项,保留“网络、预期动作、实际状态”的记录,便于识别究竟是匹配错误还是连接建立失败。
- 检查覆盖:具体 SSID 例外与宽泛 Wi-Fi 条件没有相互遮蔽,同一网络没有重复的相反动作。
- 检查路由:Home 中的 Global Routing 符合需求,Config 中的规则顺序与末尾 FINAL 已核对。
- 检查恢复:从 Wi-Fi 切换到蜂窝,再回到 Wi-Fi,两次结果都与预期一致。
- 检查停用:知道如何在 Settings → On Demand 暂停自动触发,再手动断开连接。
- 检查变化:更新已有订阅或更换连接条目后,重新验证手动连接与自动触发,不沿用旧测试结论。
Shadowrocket 是 Apple 平台的付费客户端,以 iPhone、iPad 使用为主;Mac、Apple TV、Apple Vision 的兼容性与系统要求以 App Store 页面标注为准。客户端买断 ≠ 线路套餐。已有连接资料的有效性需要单独核对,本站不提供、不销售、不推荐节点、订阅或服务商。