2026-10-09 · 进阶设置 · 约 10 分钟

Shadowrocket On Demand 按需连接设置:按 Wi-Fi、蜂窝网络与域名自动触发

逐项说明 On Demand 的触发条件:指定 Wi-Fi 的 SSID、蜂窝网络、访问特定域名时自动连接或断开,以及多条规则同时存在时的生效顺序与常见误区。

本文速览

On Demand 决定系统何时建立或断开 VPN 隧道,Global Routing 与 Config 决定隧道建立后怎样处理请求。本文适合已经能手动连接、并且已有自己的服务信息与订阅的用户:先设置 Wi-Fi 与蜂窝网络条件,再核对域名评估的边界,最后按固定顺序验证,避免把自动连接、规则分流和服务可用性混为一谈。

一、先区分 On Demand 与规则分流

Shadowrocket(小火箭)的 On Demand 是交给 Apple 系统执行的按需连接机制,并不是对每个网页都重新选择一次连接开关。网络接口、Wi-Fi 的 SSID 等条件用于判断是否需要隧道;请求进入隧道之后,才由 Global Routing、当前 Config 和所选连接配置决定去向。自动连接成功,不等于所有请求都经过代理。

网络条件变化 系统条件评估 隧道状态调整 请求规则匹配 目标连接

例如,On Demand 已让 VPN 保持连接,但 Global Routing 选为 Direct 时,请求仍按直连姿态处理。若需要使用自定义规则,应核对 Global Routing 是否为 Config。Proxy 是整体代理姿态,Scene 则涉及场景选择;它们都不能用来代替 Wi-Fi 或蜂窝网络触发条件。

2 层
先判断是否建立隧道,再判断请求走向
2 类
本文分别验证 Wi-Fi 与蜂窝网络条件
4 项
Global Routing:Proxy / Direct / Config / Scene

结论:先完成一次手动连接,再添加自动条件

先在 Home 选用已有连接配置,手动连接并确认目标可访问;这一步未通过时,先检查服务参数、DNS 和 Config,不要用增加 On Demand 规则来掩盖连接故障。

二、Settings → On Demand:先保存基线,再启用条件

开始前记录当前 Home 选中的连接配置、Global Routing 姿态以及 Config。用户已有订阅时,应先确认导入和更新成功,连接配置未失效。On Demand 不负责更新订阅,也不会修正过期的认证信息;订阅更新导致配置名称或选择变化后,还要重新做一次连接验证。

  1. 在 Home 完成手动连接测试,首次使用时按系统提示允许添加 VPN 配置。
  2. 进入 Settings → On Demand,检查现有条件。先记录原顺序,不要直接叠加一组含义相反的规则。
  3. 先添加一个容易验证的网络条件,例如指定 Wi-Fi 的 SSID;仅修改这一项,保存后再启用 On Demand。
  4. 到 iPhone 或 iPad 的系统设置中搜索 VPN,进入 Shadowrocket 对应的配置详情,核对 Connect On Demand 状态。显示路径可能随系统界面变化,以设备实际页面为准。
  5. 切换网络后观察 VPN 状态,再发起一次新的访问。系统条件评估和隧道建立需要时间,不要连续快速切换开关。

以下配置卡是条件设计示例,不是界面截图,也不是可以直接导入的配置。Connect、Disconnect 表示连接动作;实际可编辑条件以 Settings → On Demand 中显示的项目为准。

三、按 SSID 区分 Wi-Fi,蜂窝网络单独设置

SSID 是 Wi-Fi 的网络名称,不是路由器管理地址,也不是设备在局域网中的 IP 地址。输入时按实际名称核对大小写、空格及符号。家中两个频段若分别命名为 HomeNet 与 HomeNet-5G,应分别纳入预期条件;不要把名称的一部分当作自动匹配全部网络的通配符。

指定 Wi-Fi 的断开例外

入口
Settings → On Demand
接口条件
Wi-Fi
SSID 示例
HomeNet
目标动作
Disconnect
放置位置
一般 Wi-Fi 连接条件之前

仅在确实希望该网络不建立隧道时采用,SSID 名称本身不能证明网络可信。

蜂窝网络的连接条件

入口
Settings → On Demand
接口条件
Cellular
SSID 限制
不设置
目标动作
Connect
验证方式
关闭 Wi-Fi 后发起新请求

蜂窝网络没有 Wi-Fi SSID,不要把家庭网络名称附加到该条件上。

如果目标是“指定家庭 Wi-Fi 断开,其他 Wi-Fi 和蜂窝网络连接”,就需要区分特定 SSID 的例外与一般 Wi-Fi 条件。不要只写家庭例外而假定所有其他网络会自动获得相反动作;其他情况的行为仍取决于后续条件和原有配置。

四、域名触发不是 DOMAIN-SUFFIX,也不是网页关闭后断开

域名相关的按需连接需要区分系统连接评估与应用内分流。Apple 的 On Demand 机制支持通过 EvaluateConnection 评估匹配域名,例如在相应条件下按需要建立连接。具体是否提供域名条件、可选动作和 DNS 判断项,要以当前 Shadowrocket 的 On Demand 编辑页为准;不能把系统支持的全部字段都当成应用中必然存在的输入框。

若页面提供域名评估条件,应填写域名而不是完整 URL。例如测试域名写作 example.com,不要填成 https://example.com/path。有些评估依赖解析失败或可达性判断,并非每次访问这个域名都立即连接;已有隧道、DNS 缓存和复用的连接也会影响观察结果。域名触发应单独测试,避免同时存在一条更早命中的“所有网络连接”条件。

设置对象解决的问题不应推导出的行为
On Demand 域名评估系统是否需要为匹配请求建立连接关闭一个网页就立即断开整个 VPN
DOMAIN-SUFFIXConfig 中按域名后缀选择请求策略仅添加规则就能从未连接状态启动隧道
DIRECT让匹配请求直接连接目标把正在工作的整个 VPN 隧道断开
FINAL承接前面未匹配的请求成为 On Demand 网络条件的兜底动作

需要“特定域名代理,其余直连”时,应主要在 Config 内处理,而不是尝试让系统随着每个域名反复连接与断开。下面是规则片段示意,需要放进当前配置的规则部分;PROXY 应能对应到有效策略,示例域名不代表任何可用服务。

DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

域名层面的不触发连接,也不等于强制断开已经存在的连接。一个隧道可能同时承载多个应用请求,不能用单个页面的打开或关闭来定义整个隧道的生命周期。

五、多条条件的顺序:具体例外在前,一般条件在后

系统按顺序检查 On Demand 规则,使用首先匹配的规则。单条规则里设置的接口、SSID 等限制需要共同满足;同一 SSID 列表则用于列出允许匹配的网络名称。排查时不要只检查“规则存在”,还要检查它是否被前面的宽泛条件遮住。

  1. 第一层:特定例外。例如接口为 Wi-Fi 且 SSID 为 HomeNet 时执行 Disconnect。
  2. 第二层:一般 Wi-Fi。对其余希望连接的 Wi-Fi 执行 Connect;若放在第一条,家庭例外可能没有执行机会。
  3. 第三层:蜂窝网络。为 Cellular 设置独立动作,不附加仅适用于 Wi-Fi 的 SSID 条件。
  4. 最后核对:剩余情况。检查现有通用条件,确认没有遗留的宽泛 Disconnect 或 Connect 与目标冲突。

这个顺序说明的是网络规则设计。若加入 EvaluateConnection,应再核对它前面是否已有匹配当前网络的规则。On Demand 中的“首先匹配”和 Config 规则的“首先匹配”发生在不同阶段:调整 FINAL 的位置不会修复 SSID 条件顺序,移动 SSID 条件也不会改变 DOMAIN-SUFFIX 的请求策略。

六、用四种状态复核,不凭一次图标变化判断

测试时保持已有服务、Global Routing 和 Config 不变,只切换网络条件。每次切换后等待状态稳定,再发起新的访问;既有网页可能继续显示缓存内容,既有长连接也不一定立即体现新的路径。下表是前述示例设计的预期,不是对任何网络的实测结果。

测试状态示例预期不符时先查
连接 HomeNet命中特定 SSID 的 DisconnectSSID 拼写、例外顺序、配置是否保存
连接另一 Wi-Fi命中一般 Wi-Fi 的 Connect是否存在一般条件、网络是否完成认证
关闭 Wi-Fi,使用蜂窝网络命中 Cellular 的 Connect实际接口、蜂窝访问权限、连接配置有效性
临时关闭 On Demand停止按这些条件自动触发系统配置中的 Connect On Demand 状态

暂停自动连接时,先关闭 On Demand,必要时再手动断开现有隧道,并核对系统配置。仅在 Home 关闭连接,系统仍可能在下一次满足条件时重新建立隧道。长期不使用某组自动条件时,记录后禁用或删除对应规则,比反复手动断开更容易保持可预测的状态。

七、常见问题:自动重连、网页不通与域名不触发

已经手动断开,为什么过一会儿又连上了?

先进入 Settings → On Demand 检查当前网络是否仍命中 Connect 条件。若只是暂时停用,关闭 On Demand,再到系统 VPN 配置中确认 Connect On Demand 状态,最后断开现有连接;不要只重复点击 Home 的连接开关。

家庭 Wi-Fi 设了 Disconnect,为什么仍然自动连接?

在系统 Wi-Fi 页面核对实际 SSID,检查空格、大小写和另一频段的名称。再将特定 SSID 例外放到一般 Wi-Fi 条件之前。确认条件保存后重新连接该 Wi-Fi,避免把修改前留下的隧道状态当作新规则的结果。

VPN 显示已连接,网页却打不开,要继续改 On Demand 吗?

先暂停自动条件并手动连接,核对 Home 选中的已有服务是否有效,再检查 Global Routing 和当前 Config。延迟结果不等于 DNS 解析与网页请求成功;手动连接也无法访问时,应转向服务参数、DNS 和请求策略排查。

加了 DOMAIN-SUFFIX,为什么访问域名时没有自动连接?

DOMAIN-SUFFIX 是 Config 中的分流规则,不负责唤起未建立的隧道。先在 Settings → On Demand 核对是否提供并启用了相应连接评估条件,再检查先匹配规则是否覆盖它。若目标只是让该域名走 PROXY,可先保持隧道连接来验证分流。

完成配置后的判断标准应分成两项:网络变化时隧道是否按预期建立或断开,以及隧道建立后请求是否按预期分流。分别记录结果,才能确定下一步该改 On Demand,还是该改 Global Routing、Config 或已有服务参数。

App Store 正版核对