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

讲解 On Demand 的触发逻辑:按指定 Wi-Fi 名称、蜂窝网络或访问域名自动连接与断开,包括规则先后顺序、常见冲突与关闭后的回退表现。

本文速览

On Demand 处理系统何时建立或断开 VPN 连接,Rule 处理连接建立后请求如何分流。本文面向已经拥有可用配置的 iPhone、iPad 用户,依次说明 Settings → On Demand 的检查入口、Wi-Fi 与蜂窝条件的排列、域名触发的限制,以及关闭自动连接后的恢复步骤。设置前先验证手动连接,设置后每次只改变一个网络条件。

一、先区分 On Demand、Global Routing 与 Rule

On Demand 不是一条代理分流规则,而是由系统执行的按需连接策略。先在 Home 确认已有连接配置能够手动使用,再进入 Settings → On Demand 检查自动连接设置;如果手动连接本身失败,增加自动触发条件不会修复服务器地址、认证信息或网络可达性问题。

网络条件变化 按需条件判断 系统建立隧道 分流规则匹配 请求选择出口

Global Routing 决定连接内的路由姿态。Proxy、Direct、Config 分别用于代理、直连与配置分流;Scene 用于按场景组织相应选择,不能把它直接理解成某一种固定出口。排查本文的自动连接问题时,先固定使用 Config,并确认 Config 中当前选中的文件,避免同时切换场景与按需条件。

VPN 已连接不等于每个请求都经过代理。Config 中的 DIRECT 规则可以让匹配请求直接出站,而 On Demand 仍保持连接。反过来,FINAL,PROXY 也不能在隧道尚未建立时独立代替 On Demand 发起连接。判断问题时,应分别记录系统连接状态和请求命中的策略。

2 级
设置入口:Settings → On Demand
2 层
先判断连接条件,再判断流量分流
4 类
下文对照 DOMAIN-SUFFIX、GEOIP、IP-CIDR、FINAL

二、开启前先保留手动连接基线

自动连接应以可重复的手动测试为起点。先记录当前配置名称、Global Routing 的选择,以及 On Demand 原有状态,再开始修改。界面的具体选项以当前安装版本实际显示为准,不要把系统支持的全部按需策略都当成当前页面必然提供的按钮。

  1. 在 Home 选择用户已有的连接配置,手动开启连接,访问一个已知可用的目标,确认请求能够完成。
  2. 进入 Config,确认当前配置文件;需要验证分流时,把 Global Routing 固定在 Config,不同时更换规则文件。
  3. 进入 Settings → On Demand,检查总开关与已有条件;首次设置只增加一个测试条件,不直接叠加多个例外。
  4. 按系统提示允许保存或更新 VPN 配置,再到系统 Settings → General → VPN & Device Management 中核对当前 VPN 配置及 Connect On Demand 状态。系统页面的具体层级可能随系统版本调整。
  5. 返回 Home 检查连接状态,然后进行一次真实的网络切换;仅退出设置页不等于已经验证触发结果。

三、按 Wi-Fi 名称与蜂窝网络安排条件

网络条件应按“具体例外在前、一般条件在后”组织。系统按需规则按顺序判断,较早命中的规则可能使后面的条件没有执行机会。例如,希望在家中 Wi-Fi 不自动连接、在其他网络自动连接时,应先处理指定 Wi-Fi 的例外,再处理更宽泛的网络条件。

Wi-Fi 名称应使用实际 SSID,而不是路由器型号或设备备注名。先到系统 Settings → Wi-Fi 读取当前名称,再回到 Settings → On Demand 核对对应条件。如果两个接入点使用相同 SSID,仅按名称通常不能区分它们;名称条件也不能证明该网络可信。

指定 Wi-Fi 的例外意图

检查入口
Settings → On Demand
匹配对象
Wi-Fi 的实际 SSID,例如 Home-WiFi
目标动作
Disconnect,仅在界面提供对应动作时设置
排列位置
放在覆盖所有 Wi-Fi 的一般条件之前

Home-WiFi 仅为名称示例;保存时填写设备当前使用的实际 SSID。

蜂窝网络的连接意图

检查入口
Settings → On Demand
匹配对象
Cellular 网络条件,以页面实际选项为准
目标动作
Connect,仅在界面提供对应动作时设置
验证方法
关闭 Wi-Fi,确认蜂窝数据可用后发起新请求

测试前确认设备具备蜂窝数据能力;仅 Wi-Fi 的 iPad 不适用此测试。

验证时要区分“网络尚未可用”和“按需规则未命中”。从 Wi-Fi 切到蜂窝后,先确认系统确实有数据连接,再观察 VPN 状态并访问目标。公共 Wi-Fi 如需先完成网页认证,应先处理网络认证;反复修改 On Demand 不会代替该步骤。

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

域名触发关注的是“访问某域名时是否需要建立连接”,DOMAIN-SUFFIX 关注的是“进入规则处理的请求应走哪个策略”。把域名写入 Config 的 Rule,不会自动生成系统层的按需连接条件,因此不能靠新增一条后缀规则保证断开状态下自动连接。

系统按需机制中的域名评估可通过 EvaluateConnection 及其关联的连接规则表达,并可能结合 DNS 解析或可达性判断决定是否建立连接。它不是所有域名请求都必定触发的简单开关。只有当前 Shadowrocket 页面实际提供域名评估入口时,才按该入口配置;不能把系统策略名称直接当成应用中的固定菜单。

设置或关键字处理对象检查重点
On Demand 域名条件连接建立前的按需判断页面是否提供、评估动作、DNS 与可达性条件
DOMAIN-SUFFIX匹配域名后缀的请求域名是否正确、规则是否被前面的条目覆盖
GEOIP目标 IP 的地理分类IP 分类与当前配置的规则顺序
IP-CIDR指定 IPv4 地址段网络地址、掩码和目标策略
FINAL前面未匹配的请求兜底策略是否符合预期
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY

这段代码仅用于阅读分流顺序,不是完整配置,也不是 On Demand 设置文件。example.com 及其子域名先匹配第一条;后续请求再按地址段和 GEOIP 判断,未匹配的请求交给 FINAL。PROXY 必须对应现有可用代理策略,不能把示例粘贴进去就视为连接已经配置完成。

  1. 先使用普通网络验证测试域名能否解析,并记录当前连接状态。
  2. 若页面提供域名按需条件,保存后让设备回到未连接状态,再发起对测试域名的新请求。
  3. 分别观察是否建立 VPN、请求是否成功、连接后命中何种 Rule,不把三个结果合并判断。
  4. 若 DNS 缓存、现有长连接或浏览器缓存影响结果,换用新的测试请求;不要仅凭已打开页面仍可显示就认定未触发。

五、按顺序排查自动重连与规则冲突

出现异常时先判断故障在哪一层,再改设置。没有自动建立连接,重点检查按需开关与条件;已经建立连接但目标失败,重点检查已有连接配置、DNS 与分流。不要一次同时更新订阅、切换协议、调整 Global Routing 并重写按需条件,否则难以确定哪项变化影响了结果。

为什么在 Home 关闭后,又自动连上了?

先进入 Settings → On Demand 暂停自动连接,再手动断开。只操作 Home 的连接开关,可能没有取消仍然有效的按需条件;下一次网络事件或请求可能再次触发系统连接。随后到系统 VPN 配置中核对 Connect On Demand 状态。

为什么回到家中 Wi-Fi 仍保持连接?

先核对实际 SSID,再检查指定 Wi-Fi 的例外是否排在一般 Wi-Fi 条件之前。还要区分 Disconnect 与 Ignore:前者表达断开意图,后者不等于强制断开已有连接。具体可选动作以页面实际显示为准。

为什么切到蜂窝后没有立即连接?

先关闭 Wi-Fi,确认蜂窝数据可用,再发起新请求并观察系统 VPN 状态。检查蜂窝条件是否启用、有无更早命中的条件;若手动连接也失败,先回到 Home 检查现有配置,不继续叠加自动规则。

VPN 已连接,为什么目标仍走 DIRECT?

到 Home 核对 Global Routing,再到 Config 检查当前 Rule 的命中顺序。Direct 姿态或较早命中的 DIRECT 规则均可能解释这一现象;修改 On Demand 不会把已经确定的分流策略自动改成 PROXY。

连接协议与触发条件也应分开验证。已有配置使用 Shadowsocks、VMess、VLESS、Trojan、Hysteria2 或 WireGuard 时,协议字段决定连接如何建立,On Demand 仍负责何时请求建立连接。自动触发成功但握手失败,应回查该配置要求的地址、端口及认证字段,而不是据此认定 Wi-Fi 名称匹配失败。

六、关闭 On Demand 后如何恢复手动使用

关闭自动触发不应被理解为立即断开,也不等于切换成 Direct。先在 Settings → On Demand 关闭相关自动条件并保存,再核对系统 VPN 配置;需要停止当前连接时,返回 Home 手动断开。之后由用户手动开启连接,Global Routing 与 Config 中的规则仍需分别检查。

  1. 记录原有条件顺序与当前配置名称,便于恢复,不急于删除可用连接条目。
  2. 关闭 On Demand,核对当前 VPN 配置中的 Connect On Demand,避免仍有自动条件生效。
  3. 在 Home 手动断开,分别完成一次 Wi-Fi 切换和一次新的网络请求,观察是否仍会自动建立连接。
  4. 若仍自动重连,检查设备上其他 VPN 配置或设备管理策略是否在控制连接;不要仅靠反复切换 Home 开关处理。
  5. 需要恢复使用时,手动连接并确认 Global Routing;重新启用 On Demand 时,从单个条件开始逐项恢复。
App Store 正版核对