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

讲解 On Demand 的触发条件怎么组合:指定 Wi-Fi 名称、蜂窝网络与域名匹配,以及条件冲突时以哪条为准。

本文速览

Shadowrocket(小火箭)的 On Demand 管理系统 VPN 连接的触发条件,不替代 Config 中的流量分流规则。适合已经能够手动连接、希望按 Wi-Fi 名称或蜂窝网络自动连接的用户。先设置网络条件,再单独验证域名评估,最后检查规则顺序;不要把“连接已建立”理解为“所有请求都走 PROXY”。

On Demand 与 Global Routing 分开检查

先确认两件事:On Demand 决定系统何时尝试建立或断开 VPN 连接;Global Routing 决定连接工作时如何处理流量。打开 On Demand 并不会自动修正用户已有服务的地址、端口、认证或 TLS 参数,也不会把 Config 中的 DIRECT 规则改成 PROXY。

Shadowrocket 的主要操作区域是 Home、Config 和 Settings。先在 Home 验证用户已有配置能手动连接,再进入 Settings → On Demand 设置自动触发。本文以 iPhone、iPad 为主,系统要求以 App Store 页面标注为准。

网络条件变化 按需规则评估 系统连接处理 流量策略匹配 目标连接验证
2 层
连接触发与流量分流分别检查
4 种
Global Routing:Proxy / Direct / Config / Scene
2 步
设置入口:Settings → On Demand

排查期间可先使用 Global Routing → Config,并保留一份已验证可用的配置。Proxy 与 Direct 可用于临时对照,但它们不是自动连接条件;Scene 也不等于 On Demand 的 Wi-Fi 名称匹配。每轮只改变一类设置,才能判断变化来自连接层还是分流层。

设置前先建立手动连接基线

如果手动连接就无法访问目标,先处理基础连接问题。On Demand 只是自动化入口,不是连接失败的修复开关。本文以用户已有自己的服务商与订阅为前提,仅说明本机设置,不提供服务接入信息。

  1. 在 Home 确认当前选中的连接配置。若刚更新过已有订阅,重新核对所选条目,避免测试对象已经变化。
  2. 暂时关闭 On Demand,手动打开连接,记录当前 Wi-Fi 或蜂窝网络、Global Routing 姿态以及目标页面能否打开。
  3. 在 Config 确认当前启用的配置文件。测试期间不要同时编辑 DOMAIN-SUFFIX、GEOIP、IP-CIDR 或 FINAL。
  4. 完成系统要求的 VPN 配置授权;若设备受组织管理,先确认系统允许使用该 VPN 配置。
  5. 手动连接与访问均正常后,再进入 Settings → On Demand 添加或调整条件,并保存设置。

按 Wi-Fi 名称与蜂窝网络设置条件

常见目标是“指定 Wi-Fi 不自动连接,蜂窝网络自动连接”。配置时先添加范围较窄的 Wi-Fi 例外,再添加范围较宽的网络规则。Wi-Fi 名称指 SSID,不是路由器管理地址,也不是浏览器中看到的网络认证页面标题。

下面两张卡是测试计划,不是可导入的配置文本。动作名称用于区分连接与断开意图;具体可编辑字段以 Settings → On Demand 当前页面为准。不要把计划中的名称直接当作自己的实际 SSID。

指定 Wi-Fi 例外

入口
Settings → On Demand
网络类型
Wi-Fi
SSID 示例
Home-WiFi,仅作演示
动作意图
Disconnect
排列位置
通用 Wi-Fi 条件之前

先核对实际 SSID,再测试加入与离开该网络两种状态。

蜂窝网络连接

入口
Settings → On Demand
网络类型
Cellular
SSID 条件
不添加 Wi-Fi 名称限制
动作意图
Connect
验证方式
离开 Wi-Fi 后发起新请求

仅适用于具有可用蜂窝连接的设备,先确认蜂窝数据本身可用。

  1. 先只保留一个待验证条件,保存后重新进入页面,核对条件与动作是否保留。
  2. 测试 Wi-Fi 时,从系统 Wi-Fi 页面查看当前实际连接的名称,逐字核对空格、连字符和大小写,不把名称片段当成通配符。
  3. 测试蜂窝网络时,在系统设置中关闭 Wi-Fi,确认网络确实切换,再发起新的网页请求。
  4. 单条验证通过后再加入第二条,最后补充其他 Wi-Fi 条件。没有明确需求时,不先添加覆盖全部网络的宽泛规则。

同一路由器的不同频段可能使用不同 SSID,也可能共用同一个名称。条件依据实际名称匹配,不依据设备离路由器远近判断。公共 Wi-Fi 若需要网页认证,应先完成认证,再验证自动连接,避免把尚未接通互联网误判为 On Demand 失效。

域名触发不等于 DOMAIN-SUFFIX 分流

域名按需评估与 Config 中的域名规则属于两个阶段。系统的 On Demand 域名评估用于判断特定域名的连接需求;DOMAIN-SUFFIX 则是在流量进入规则处理后选择策略。仅在 Config 添加域名规则,不会自动创建系统按需连接条件。

若当前 On Demand 编辑界面提供域名评估,应使用该入口允许的域名与连接评估选项。底层的 Evaluate Connection 与直接 Connect 不同:它按域名需求进一步评估,并非匹配某个网络就立即建立连接。域名填主机名,例如 example.com,不要填写 https://example.com/path 这样的完整 URL。

  • 先看是否有域名评估入口。若当前页面只提供网络条件,不要把域名写入 SSID 字段;可以先用网络条件连接,再由 Config 完成域名分流。
  • 排除前置规则拦截。若某条更靠前的网络规则已匹配并执行 Disconnect,后面的域名评估不会再覆盖它。
  • 使用新的解析与连接验证。已打开的网页、缓存结果或复用连接不一定触发新的评估;关闭测试页面后重新发起请求,并观察系统连接状态。
  • 核对 DNS 路径。应用自己的加密 DNS、缓存或直接使用 IP 地址,可能使实际请求不经过预期的系统域名解析路径;不要假定任意应用都能产生同样的触发结果。

下面只演示 Config 分流语法,并非 On Demand 配置,也不应直接覆盖已有配置。示例中的域名是说明用途;PROXY 对应的实际出站仍需由用户已有配置决定。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

条件冲突时,按规则顺序判断

On Demand 按规则顺序评估,匹配到适用规则后执行对应动作,不是把所有匹配结果相加,也不是总让 Connect 胜过 Disconnect。应把具体例外放在宽泛条件之前。一个规则内的不同条件也不是任意满足一个就一定成立:例如指定 Wi-Fi 接口又限定 SSID,就需要同时满足接口与名称要求;同一名称列表可包含多个候选名称。

规则排列 当前网络 判断与调整
所有 Wi-Fi Connect 在前,指定 SSID Disconnect 在后 已连接指定 SSID 前面的宽泛规则先匹配;把指定 SSID 例外移到前面。
指定 SSID Disconnect 在前,其他 Wi-Fi Connect 在后 已连接指定 SSID 先执行例外动作;其他 Wi-Fi 条件留给后续网络。
Wi-Fi 例外在前,Cellular Connect 在后 已切换到蜂窝网络 Wi-Fi 条件不匹配,继续评估蜂窝条件。
全网络 Connect 在前,域名评估在后 符合前面的全网络条件 先处理 Connect;不能据此判断后面的域名评估有效。

未命中任何条件时,不要直接推断“必然断开”。既有连接、系统当前状态与其他配置都可能影响观察结果。需要明确默认行为时,应在界面支持的范围内设置清晰的末尾规则,并在连接与未连接两种起始状态下分别验证。

同样要区分 Disconnect、Ignore 与流量策略 DIRECT。Disconnect 是按需连接动作;Ignore 不等于强制断开;DIRECT 是分流策略。把这三者当作同义词,是“明明设置了直连却仍显示 VPN”的常见误解。

用固定测试表验证自动连接

不要只盯着 Home 的开关。系统 VPN 状态、当前网络和目标请求结果需要一起记录。每次修改后先保存,再触发新的网络条件;一次成功只能说明该次场景通过,不能代替全部场景测试。

  1. 指定 Wi-Fi:从未连接 VPN 的状态加入例外 SSID,发起新请求,记录是否仍保持未连接;再从已连接状态重复测试。
  2. 其他 Wi-Fi:切换到另一个实际可用 SSID,检查是否符合预设的通用 Wi-Fi 条件,而不是沿用上一网络的判断。
  3. 蜂窝网络:在系统设置中关闭 Wi-Fi,确认蜂窝数据可用后访问目标,记录是否自动连接以及页面是否可用。
  4. 域名评估:在没有被前置规则直接决定动作的条件下,分别访问待测域名与对照域名,避免复用原页面连接。
  5. 恢复测试:在系统重新评估网络后再次测试,例如重新加入 Wi-Fi。记录实际结果,不假定任何固定秒数内一定完成。

常见问题与恢复手动控制

为什么手动关掉后又自动连接?

先进入 Settings → On Demand 关闭自动触发,再回到 Home 断开连接。只关 Home 开关而保留匹配的 Connect 条件,系统后续仍可能重新发起连接。若还出现自动连接,到系统 VPN 配置详情核对 Connect On Demand 状态及当前使用的配置。

家里 Wi-Fi 已设 Disconnect,为什么还会连?

先在系统 Wi-Fi 页面逐字核对 SSID,再检查该例外是否排在所有 Wi-Fi 或全网络 Connect 之前。不要只检查规则是否存在;记录实际顺序,暂时停用其他宽泛条件后重新加入该 Wi-Fi 验证。

切到蜂窝网络后显示连接成功,网页还是打不开?

暂时关闭 On Demand,在同一蜂窝网络手动连接测试。若仍失败,问题不应继续归因于触发条件;核对 Home 中所选配置、已有服务参数和 Global Routing,再检查 Config 的匹配结果。

写了 DOMAIN-SUFFIX,为什么打开网站不自动连?

该关键字只负责 Config 分流。回到 Settings → On Demand 查看是否真正配置了受支持的域名评估条件;若界面没有该入口,使用网络触发连接,并在连接后用 Config 分流,不要把两类规则混写。

如何先恢复成完全手动开关?

记录现有条件后关闭 On Demand,保存并回到 Home 断开连接,再检查系统 VPN 配置详情中的按需状态。重新加入 Wi-Fi、发起一次新请求,确认不会自动连接后再结束测试,无须先删除已有订阅或重建全部规则。

最终应得到一份能说明原因的设置:哪个网络触发连接,哪个 SSID 属于例外,域名是否参与系统评估,以及连接建立后由哪份 Config 分流。以后更新已有订阅或更改出站配置时,先验证手动连接,再复测上述场景,避免把服务参数变化与自动连接条件混在一起排查。

App Store 正版核对