小火箭 On Demand 按需连接设置:Wi-Fi、蜂窝与域名触发条件

On Demand 用当前网络和域名条件决定何时尝试建立或断开 VPN 连接。先单独验证每种条件,再组合使用;它不替代 Home 中的连接选择,也不决定请求最终走哪条规则。

本文速览

适合已经在 Shadowrocket(小火箭)中导入自己的可用配置、希望切换 Wi-Fi 与蜂窝网络时减少手动操作的读者。下文给出 Settings → On Demand 的设置顺序、Wi-Fi 名称与域名的填写边界,以及自动连接结果不符合预期时的逐项核对方法。

先区分按需连接与规则分流

On Demand 处理的是“什么时候连接”这一层:设备进入某种网络环境,或出现符合条件的域名请求时,由系统根据已保存的 VPN 配置尝试执行连接或断开动作。Home 中选中的配置、节点及 Global Routing 则处理连接建立之后的流量走向。把两个层次混在一起,容易出现“开关自动打开了,网页却没有按预期分流”的误判。

识别当前网络核对触发条件执行连接动作检查分流结果

开始前,在 Home 手动连接一次,确认系统 VPN 权限已获允许,且用户已有的配置可以正常使用。再到 Settings → On Demand 查看按需连接设置。首次启用或修改条件后,回到系统 VPN 状态与 Shadowrocket 的 Home 交叉核对结果;不要仅凭应用页面上的一个开关推断所有请求都已通过同一出口。

按 Wi-Fi 名称设置连接与断开

Wi-Fi 条件针对设备当前连接的无线网络名称,即 SSID,而不是路由器的备注名,也不是网页地址。设置前先在设备的 Wi-Fi 设置中确认实际名称;同名的不同网络会增加判断难度。若家中与工作场所都使用同一个 SSID,只靠名称就无法清楚区分这两个地点。

  1. 先在设备 Wi-Fi 设置中记下要测试的 SSID,例如 Home-WiFi;同时确认设备确实连接到该网络。
  2. 进入 Shadowrocket 的 Settings → On Demand,启用按需连接,并在页面提供的 Wi-Fi 条件中填写或选择该名称。按照实际需要,为匹配与未匹配的网络分别检查 Connect、Disconnect 等动作;可见选项以应用内页面为准。
  3. 暂时只保留这组 Wi-Fi 条件。离开该 Wi-Fi 后重新接入,观察系统 VPN 状态与 Home 的连接状态,再换一个名称不同的 Wi-Fi 做反向验证。

例如,目标是“接入 Home-WiFi 时断开、离开后按其他条件连接”,就必须分别检查接入和离开的结果。SSID 的大小写、空格及末尾字符都值得核对;把显示名称抄错一个字符,通常就会使该条件无法匹配。设备虽靠近路由器但实际仍在使用蜂窝网络时,也不能把结果归因于 Wi-Fi 条件。

Wi-Fi 核对卡

入口
Settings → On Demand
匹配对象
当前连接的 SSID
示例名称
Home-WiFi
验证动作
离开并重新接入该网络

先用一个唯一的 SSID 测试,再增加其他网络名称。

状态核对卡

Wi-Fi 状态
确认设备已接入目标网络
VPN 状态
查看系统与 Home 的显示
反向测试
切到另一名称的网络
异常线索
同名 SSID 或名称录入错误

网络变化是测试起点,状态变化才是核对结果。

蜂窝网络条件怎样单独验证

蜂窝条件适合在设备从 Wi-Fi 离开、实际改用 Cellular 时触发相应动作。测试时先确认设备具有可用的蜂窝数据连接;仅关闭 Wi-Fi 而蜂窝数据不可用,不能证明 On Demand 的蜂窝条件工作与否。iPad 是否具备蜂窝网络能力,取决于具体设备。

  1. 先保持 Home 中同一份已验证可用的配置,进入 Settings → On Demand,只设置要测试的 Cellular 条件。
  2. 在设备设置中关闭 Wi-Fi,确认状态栏显示正在使用蜂窝网络,再观察系统 VPN 状态是否按所选动作变化。
  3. 重新打开 Wi-Fi,接入已知 SSID,记录第二次状态变化。若两次结果不同,分别记下网络类型、连接状态和测试时间,再添加其他条件。

“蜂窝网络时连接”并不等于“所有蜂窝请求都使用 PROXY”。连接建立后,若 Global Routing 选为 Direct,请求仍可能直连;若选为 Config,请求继续依照配置中的规则匹配。Proxy、Direct、Config、Scene 是 Global Routing 的不同姿态,应与 On Demand 的连接动作分开检查。需要定位问题时,先固定一种 Global Routing 姿态,避免一次改动多个变量。

判断:先证明网络已切换

蜂窝测试没有出现预期动作时,先确认设备已离开 Wi-Fi 且蜂窝数据可用,再检查 On Demand;不要先修改节点、规则和订阅,因为这些项目不能证明蜂窝触发条件是否匹配。

域名条件何时触发

域名条件用于指定名称相关的请求出现时尝试连接,并不是浏览器地址栏里每输入一次文字都必然触发。测试应使用可明确识别的域名,并观察实际发起的名称解析或连接行为。已有连接、缓存中的解析结果、应用直接访问 IP 地址等情况,都可能使一次页面操作不足以验证域名触发。

把测试域名写成 example.com 可以说明填写格式,但它只是示例值,不代表可用的触发测试服务。正式核对时,应选用自己有权访问、能稳定产生新请求的域名,按设置页支持的格式填写。域名条件与规则里的 DOMAIN-SUFFIX,example.com,PROXY 也不是一回事:前者用于判断是否尝试建立 VPN 连接,后者是在 Config 姿态下对已进入规则处理的请求选择策略。

例如,规则 FINAL,PROXY 是未命中前面规则时的兜底策略,并不能让 On Demand 自动识别一个尚未设置的域名条件。反过来,域名条件触发连接后,也不保证该域名一定使用 PROXY:在 Config 姿态下,具体策略仍取决于规则顺序和匹配结果。

多个条件同时存在,按什么顺序排查

不要假定 Wi-Fi、Cellular 和域名条件之间存在一条适用于所有场景的固定优先级。设备当前实际使用的网络、条件是否匹配、系统 VPN 状态、域名请求是否真正发生,都会影响观察到的结果。排查“冲突”更可靠的办法是依次确认前提,再逐个启用条件,而不是靠调整规则列表顺序猜测 On Demand 的动作。

确认网络类型确认条件匹配核对 VPN 状态检查路由姿态复测访问结果

先记录设备是接入目标 SSID、其他 Wi-Fi,还是 Cellular;接着核对对应条件的名称与动作。若连接状态已按预期改变,就继续核对 Home 的选中配置和 Global Routing。只有在需要诊断单个网站时,才检查域名触发及 Config 中的规则。这样可以把“没有触发连接”“连接后没有命中期望规则”“已有配置本身不可用”分为三类问题。

回到家里 Wi-Fi,为什么没有按预期断开?

在设备 Wi-Fi 设置里核对当前 SSID 与 On Demand 所填名称是否一致,再检查该条件选择的是 Connect 还是 Disconnect。先停用其他条件,只做离开与重新接入该 Wi-Fi 的测试。

关掉 Wi-Fi 后,为什么没有自动连接?

先确认设备确实切换到可用的 Cellular,而不是暂时没有网络;然后在 Settings → On Demand 单独核对蜂窝条件。手动连接也失败时,应先排查已有配置的可用性。

打开指定网站,为什么 VPN 状态没变化?

核对域名条件的填写内容,确认访问不是直接使用 IP 地址。换一次明确的新请求进行复测,并暂时移除可能同时生效的网络条件,避免把已有连接状态当作新触发结果。

VPN 已连接,为什么流量仍像是直连?

到 Home 查看 Global Routing 是否为 Direct。需要按配置规则分流时,检查 Config 姿态及对应规则;On Demand 只负责连接触发,不替规则选择 PROXY 或 DIRECT。

完成单项测试后,再逐个恢复条件,每次只改变一项,并分别在目标 Wi-Fi、其他 Wi-Fi 与 Cellular 下记录结果。如果某个组合无法稳定复现,保留最必要的触发条件通常比叠加更多条件更容易核对。修改后仍以系统实际显示的 VPN 状态和访问结果为准。

保存配置前的检查清单

Shadowrocket 是 App Store 中的一次性买断客户端;客户端买断 ≠ 线路套餐。On Demand 所操作的是设备上的连接条件,仍需用户已有自己的可用配置。若还没有核验应用来源,可先查看本站的正版核验说明,再按使用教程完成基础连接。

App Store 正版核验