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

介绍 On Demand 的触发条件写法:按指定 Wi-Fi SSID、蜂窝网络或访问域名自动连接与断开,以及规则优先级与常见误配。

本文速览

On Demand 负责决定何时建立或断开系统 VPN 连接,Config 中的规则负责连接建立后如何分流。本文面向已经有可用连接参数的 iPhone、iPad 用户,依次说明 Settings → On Demand、SSID 条件、蜂窝网络、域名评估与验证顺序。先验证手动连接,再增加自动触发条件,能够把连接故障与条件误配分开处理。

On Demand 与 Config 的作用边界

Shadowrocket(小火箭)的 On Demand 使用系统按需连接机制。它不是定时点击 Home 中的连接开关,也不是为每条请求重新选择节点。网络环境变化或符合条件的请求出现时,系统按保存的按需规则评估连接动作;隧道建立后,流量仍由当前的 Global Routing 与配置规则处理。

网络条件变化 按需规则评估 系统建立连接 流量规则匹配 请求出站

因此,“已经自动连接”和“目标请求走代理”是两个不同结果。Global Routing 使用 Config 时,应到 Config 检查当前选中的配置与匹配规则;使用 Direct 时,即使系统显示 VPN 已连接,也不能据此判断请求经过代理出站。相反,Proxy 是全局代理姿态,不应拿它的测试结果代替 Config 下的分流验证。

启用前:保留一套可手动验证的连接

配置 On Demand 之前,先确认同一网络下手动连接可用。本文以用户已有自己的服务商与订阅为前提;订阅更新成功只表示取得了配置内容,不能证明每个节点都能建立连接。节点地址、端口及协议参数需要与已有配置逐项一致,不要用自动重连掩盖参数错误。

2 类
本文分别验证的接口:Wi-Fi、蜂窝网络
2 层
设置入口:Settings → On Demand
  1. 在 Home 选择已确认可用的节点,暂时关闭 On Demand,记录当前 Global Routing。
  2. 手动打开连接,访问一个已知需要当前配置处理的目标,再检查连接记录中的实际策略。
  3. 断开连接,进入 Settings → On Demand。先只增加一条范围明确的网络规则,保存后再启用。
  4. 如系统要求添加或更新 VPN 配置,按系统提示授权。随后到系统设置中的 VPN 配置详情核对对应的 Connect On Demand 状态。

系统设置入口会随系统界面变化,可在系统设置中搜索 VPN,再打开 Shadowrocket 对应配置的详情。不要只核对应用内开关:系统保存的 VPN 配置同样参与按需行为。系统要求及设备兼容性以 App Store 页面标注为准;仅有 Wi-Fi 的 iPad 无法执行蜂窝网络切换测试。

Wi-Fi SSID:先写例外,再写宽泛条件

SSID 是 Wi-Fi 网络名称,不是路由器管理地址,也不是节点名称。若目标是“指定 Wi-Fi 断开,其他 Wi-Fi 自动连接”,先为指定 SSID 建立 Disconnect 条件,再设置较宽泛的 Wi-Fi Connect 条件。系统按需规则按顺序评估,宽泛条件放在前面时,后面的特定 SSID 条件可能没有机会生效。

指定 Wi-Fi 例外

入口
Settings → On Demand
接口条件
Wi-Fi
SSID 示例
HomeNet-5G
动作
Disconnect
顺序
置于宽泛 Wi-Fi 条件之前

HomeNet-5G 是网络名称示例,应替换为设备实际连接的 SSID。

其余网络条件

入口
Settings → On Demand
后续条件
其他 Wi-Fi
动作
Connect
独立条件
Cellular
验证方式
切换网络后发起新请求

这是条件规划,不是可直接粘贴的配置语法;以应用内实际提供的编辑项保存。

填写名称时保留大小写、空格和符号,不要默认名称支持通配符。例如 HomeNet 与 HomeNet-5G 是不同名称;同名的两个接入点也可能被同一条 SSID 条件覆盖。SSID 只适合表达网络名称条件,不能独立证明网络可信。是否在某个 Wi-Fi 断开,应依据该网络下的实际访问需求决定。

结论:先让单个 SSID 条件通过验证

先只保留指定 SSID 的规则,切入、切出各测试一次;结果符合预期后,再追加其他 Wi-Fi 与 Cellular 条件。这样能直接定位是名称匹配错误,还是后续规则覆盖了预期。

蜂窝网络:单独验证切换与连接恢复

Cellular 条件针对蜂窝网络接口,不等同于“没有连接指定 Wi-Fi”。如果只写了一条特定 SSID 的 Disconnect,却没有覆盖蜂窝网络的条件,离开该 Wi-Fi 后的行为不能仅凭这条例外推断。需要自动连接时,应增加对应的 Cellular Connect 条件,并确认前面没有更宽泛的 Disconnect 条件截住它。

  1. 在目标 Wi-Fi 下确认 Disconnect 条件生效,记录系统 VPN 状态。
  2. 到系统设置关闭 Wi-Fi,确认设备确实已经使用蜂窝网络,而不是仅暂时断开当前接入点。
  3. 打开一个新的网页或发起新的应用请求,检查系统 VPN 是否建立,再到 Shadowrocket 查看连接与请求记录。
  4. 重新打开 Wi-Fi 并接入指定 SSID,确认新的网络评估结果与 Disconnect 条件一致。

切换网络时,旧连接可能中断,页面也可能继续显示缓存内容。判断自动连接是否成功,应观察新请求与系统 VPN 状态,而不是只看页面有没有瞬间刷新。若 VPN 已建立但访问失败,下一步检查节点在蜂窝网络下是否可达、DNS 是否正常,以及当前 Config 的目标规则,而不是继续增加重复的 Connect 条件。

域名触发:区分连接评估与 DOMAIN-SUFFIX

按域名触发的关键是系统连接评估,不是把域名写进 Config 就能唤起隧道。系统 On Demand 的 Evaluate Connection 机制可以根据域名及解析条件决定是否尝试连接;其中 Connect If Needed 的语义也不是“每次访问都无条件连接”。应以当前 On Demand 编辑器实际提供的域名评估选项为准,不能把 Config 中的 DOMAIN-SUFFIX 行粘贴到网络条件里。

项目处理阶段检查内容
On Demand 域名评估决定是否需要建立连接域名条件、解析结果与对应连接动作
DOMAIN-SUFFIX连接建立后的流量匹配域名后缀与策略名称
IP-CIDR连接建立后的地址匹配目标 IP 是否落入指定网段
FINAL前面规则未命中时兜底策略是否符合预期

例如,Config 中的 DOMAIN-SUFFIX,example.com,PROXY 表示域名后缀的分流条件,不是 On Demand 的自动启动指令。这里的 example.com 仅用于说明规则结构,PROXY 也需要在当前配置中有效。测试域名触发时,填写的是域名,不是带有路径、查询参数的完整网页地址。

如果当前编辑器没有暴露所需的域名评估项,应先采用可核对的 Wi-Fi、Cellular 条件,不要用同名的 Config 规则冒充。验证时一次只改域名条件或网络条件中的一项,并保留原配置记录,避免把两种机制同时变化后的结果归因给某一条规则。

优先级与常见误配:按现象逐项检查

On Demand 的顺序与 Config 的规则顺序属于两个独立层次。前者控制连接动作,后者控制流量策略;把 FINAL 移到末尾不能修复 SSID 条件,调整 SSID 顺序也不能修复目标域名走错策略。排查时先确认系统是否建立隧道,再确认请求命中了哪条规则。

在 Home 关掉连接,为什么稍后又连上了?

进入 Settings → On Demand 检查是否仍启用自动连接。若需要暂停自动行为,先关闭 On Demand,并核对系统 VPN 配置中的 Connect On Demand,再手动断开;只操作 Home 开关不能代替停用按需条件。

指定 Wi-Fi 写了 Disconnect,为什么还是连接?

先从系统 Wi-Fi 详情核对实际 SSID,再检查规则顺序。把特定 SSID 条件放到宽泛 Wi-Fi Connect 条件之前,保存后重新接入该网络,发起新请求并检查状态。

蜂窝网络会自动连接,但网页打不开?

先暂时关闭 On Demand,在同一蜂窝网络下手动连接测试。手动也失败时,回到 Home 检查所选节点,再核对协议参数、DNS 与 Global Routing;先修复基础连通性,再恢复自动条件。

Config 写了域名规则,为什么访问时没有自动连接?

DOMAIN-SUFFIX 只负责分流。到 Settings → On Demand 核对是否存在适用的连接条件;如使用域名评估,还要检查前置网络规则、系统解析路径及缓存,不能用 Config 的命中条件替代系统连接评估。

完成配置后,至少保留一组可重复的检查记录:当前网络、SSID 或 Cellular、命中的按需条件、系统 VPN 状态,以及新请求的实际策略。只记录必要信息,避免公开订阅地址、认证信息或完整连接参数。每次调整只改一处,再重复同一条验证路径,比同时增加多条例外更容易定位问题。

App Store 正版核验查看购买与设备说明