适合已经有自己的连接服务、并能在 Shadowrocket 手动连接的用户。先区分 On Demand 与流量规则,再设置 Wi-Fi SSID 和蜂窝网络条件,最后核对域名触发的限制。文中的家用与通勤方案是条件配置记录,不是可直接导入的配置文件;完成后应按网络切换、域名访问、手动停止三个场景分别验证。
开始前:确认应用来源与手动连接
Shadowrocket(小火箭)是 Apple 平台的付费客户端,唯一获取入口是 App Store,采用一次性买断。核对正版时,应同时检查官方图标、开发者 Shadow Launch Technology Limited 和应用 ID 932747118。iPhone、iPad 的系统要求及其他 Apple 设备兼容范围,以 App Store 页面标注为准。客户端购买与用户已有的连接服务是不同事项。
On Demand 负责自动化,不会补齐缺失的服务器地址、认证信息或订阅内容。开始前应在 Home 选中已有连接,手动开启并访问需要使用的目标;只有这一步正常,后续测试才有意义。若使用自己已有的订阅,先完成导入与更新,再确认当前选中的条目仍然有效。
- 在 Config 保留当前配置副本,记下正在使用的配置名称,避免把自动连接故障和规则修改混在一起。
- 在 Home 检查 Global Routing;需要按配置分流时使用 Config,并确认所需连接已选中。
- 手动开启连接,按系统提示允许 VPN 配置,验证一个需要代理的目标和一个预期直接访问的目标。
- 记下当前 Wi-Fi 的准确 SSID,并确认蜂窝数据可用,再进入 Settings → On Demand。
On Demand 与 Global Routing 分别控制什么
On Demand 通过系统 VPN 按需规则决定何时建立或停止隧道;Global Routing 决定隧道工作时如何处理流量。两者不是同一个开关。尤其要区分 Disconnect 与 Direct:前者是按需规则中的连接动作,后者是流量路由选择。切换到 Direct 不能代替关闭自动连接。
| 设置项 | 控制范围 | 核对重点 |
|---|---|---|
| On Demand | 依据网络条件决定隧道连接行为 | 条件是否命中,动作是否正确 |
| Global Routing → Proxy | 以代理姿态处理流量 | 不要用它验证 Config 中的分流结果 |
| Global Routing → Direct | 以直接连接姿态处理流量 | 隧道存在不等于流量经过代理 |
| Global Routing → Config | 按当前配置中的规则选择策略 | 检查规则顺序与最终命中策略 |
| Global Routing → Scene | 依据已配置的场景安排路由 | 检查场景条件,避免与按需条件混淆 |
初次排查时,先固定为 Global Routing → Config,不同时引入 Scene 的额外条件。看到系统 VPN 状态后,仍需查看实际请求命中的策略;状态图标只说明隧道状态,不能证明某个域名一定走了代理。
按 Wi-Fi SSID 设置:指定网络与其他网络分开处理
SSID 是 Wi-Fi 网络名称,不是路由器管理地址,也不是网关 IP。在系统 Settings → Wi-Fi 查看当前连接的名称,按原样录入,核对大小写、空格与标点。名称相似不等于相同;路由器更名后,旧条件也不会自动改成新名称。
进入 Shadowrocket 的 Settings → On Demand,编辑 Wi-Fi 对应条件。若目标是“回到家中指定网络时停止隧道”,将该 SSID 对应动作设为 Disconnect;其他 Wi-Fi 是否连接,应另外明确设置。编辑页面提供的字段以当前安装的应用界面为准,不要把以下条件记录当作 Config 文件语法粘贴。
- 先记录测试 SSID,例如
Home-Study,并确认设备确实连接到这个网络。 - 为该 SSID 配置 Disconnect。存在多条条件时,优先检查指定 SSID 条件,再检查覆盖其他 Wi-Fi 的通用条件,避免通用条件先命中。
- 为其他 Wi-Fi 明确选择所需动作;不要把未配置项理解成自动继承蜂窝网络行为。
- 保存并启用 On Demand,按系统提示确认 VPN 设置,然后切换到另一个 Wi-Fi 再切回测试 SSID。
蜂窝网络与两套条件示例
蜂窝网络条件对应 Cellular,不应填入运营商名称或把 Wi-Fi SSID 用在这里。如果希望离开 Wi-Fi 后自动建立连接,可将 Cellular 对应动作设为 Connect。双卡设备、弱信号区域及 Wi-Fi 与蜂窝反复切换时,应观察实际网络是否稳定,不能把每次重连都归因于已有连接失效。
家用:指定 Wi-Fi 停止连接
- 入口
- Settings → On Demand
- 指定 SSID
- Home-Study:Disconnect
- 其他 Wi-Fi
- Connect
- Cellular
- Connect
- 流量路由
- Global Routing → Config
适用于家中可直接访问所需目标的情况;Home-Study 是演示网络名,应替换为自己的准确 SSID。
通勤:网络切换后保持可用
- 入口
- Settings → On Demand
- Wi-Fi
- Connect
- Cellular
- Connect
- SSID 例外
- 首次测试不添加
- 流量路由
- Global Routing → Config
先验证两种网络都能建立隧道,再添加确有需要的例外;网络切换仍可能中断已有会话。
第二套方案并不保证既有视频通话、文件传输或长连接在网络切换时连续。网络地址、路由和隧道都可能重新建立。验收时先测试新打开的网页是否恢复,再单独判断原有应用是否需要重新发起请求。
判断:先做单变量切换,再增加例外
先只启用 Cellular 的 Connect,验证一次离开 Wi-Fi 后的连接行为;通过后再添加指定 SSID 的 Disconnect。出现异常时即可回退最后一项,而不必同时重查全部条件。
域名触发:不要与 DOMAIN-SUFFIX 混用
域名条件与 SSID 条件的判断方式不同。系统按需连接中的域名评估通常涉及 EvaluateConnection,以及 ConnectIfNeeded、NeverConnect 这类子动作;它们与名称解析需求有关,不是观察每一个网页地址后立即开关隧道。若当前 Settings → On Demand 界面未提供相应域名评估字段,就不能用 Config 中的一条域名规则代替。
ConnectIfNeeded 的含义不是“只要访问此域名就必定连接”:系统会结合域名匹配及解析条件判断是否需要建立 VPN。如果目标域名在当前网络已可正常解析,可能不会触发。NeverConnect 也不是“访问这个域名便断开现有隧道”,而是不为匹配的解析需求发起连接。停止隧道应使用适当的网络 Disconnect 条件或手动操作。
- 测试域名评估前,先关闭已经建立的连接,确认没有其他 Wi-Fi 或 Cellular 的 Connect 条件抢先建立隧道。
- 使用自己控制且符合测试解析条件的域名。
example.com仅用于说明语法,不能保证产生按需连接。 - 浏览器缓存、应用缓存和已有连接可能绕过新的解析需求;一次刷新没有触发,不能直接证明规则失效。
- 域名评估字段中的匹配写法以该字段说明为准,不应默认接受
DOMAIN-SUFFIX配置行或通配符。
流量分流片段:只在隧道工作后选择策略
下面是 Config 中 [Rule] 的语法示例,不是 On Demand 配置。编辑时应合并到当前配置的对应节,并保留其他必要内容;PROXY 所用连接也必须已经可用。规则自上而下匹配,先命中的条目决定策略。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
DOMAIN-SUFFIX 处理域名后缀,IP-CIDR 示例覆盖对应私有地址网段,GEOIP 依赖地址归属判断,FINAL 负责兜底。它们都不承担建立隧道的职责。也不要把端口 443 当成域名触发开关:HTTPS 常用端口与按需连接条件是不同层面的参数。
按顺序验收:切换网络、访问目标、检查停止行为
每次只修改一个条件,并记录“当前网络、期望动作、实际隧道状态、目标是否可访问”四项。测试结果应来自自己的设备,不应使用固定延迟或固定等待秒数判断所有网络。系统调度、网络登录和解析缓存都会影响观察过程。
| 测试操作 | 预期结果 | 异常时检查 |
|---|---|---|
| 连接 Home-Study | 家用示例命中 Disconnect | SSID 拼写、条件顺序、保存状态 |
| 关闭 Wi-Fi,使用 Cellular | 命中 Connect 后建立隧道 | 蜂窝数据、系统按需开关、已有连接参数 |
| 连接其他 Wi-Fi | 按其他 Wi-Fi 条件执行 | 网页登录、网络可用性、通用条件 |
| 访问域名评估目标 | 满足评估条件时才发起连接 | 解析条件、缓存、隧道是否已存在 |
| 关闭 On Demand 后手动停止 | 不再由本组按需规则重新拉起 | 系统 VPN 配置中的按需连接状态 |
要暂时完全停止自动连接,先在 Settings → On Demand 关闭按需功能,再停止当前连接,并核对系统 Settings → General → VPN & Device Management 中对应 VPN 配置的 Connect On Demand 状态。系统菜单名称可能随系统界面有所差异。只在 Home 关闭一次连接,而仍保留命中的自动连接条件,可能随后再次建立隧道。
常见问题:自动重连、域名不触发与规则未生效
为什么刚关掉连接,又自己连上了?
先到 Settings → On Demand 检查当前 Wi-Fi 或 Cellular 是否仍命中 Connect。需要保持停止状态时,先停用 On Demand,再关闭 Home 的连接,并核对系统 VPN 配置中的 Connect On Demand。
填了家里的 Wi-Fi 名称,回家后为什么没有断开?
到系统 Settings → Wi-Fi 对照完整 SSID,检查空格与标点,再确认指定 SSID 的动作是 Disconnect。还要检查是否有更靠前的通用 Wi-Fi 条件已先命中;修改后保存并重新切换网络验证。
已经加了 DOMAIN-SUFFIX,访问域名怎么没有自动连接?
该关键字用于 Config 的流量分流,不能触发系统建立隧道。先手动连接验证分流,再检查 Settings → On Demand 是否提供并启用了所需的域名评估条件,同时排除缓存和其他 Connect 条件的影响。
显示已连接,但目标仍然打不开,应该改 On Demand 吗?
隧道已经建立时,先检查 Home 中选中的已有连接、Global Routing → Config 和实际命中策略。若手动连接同样失败,应先处理连接参数或本地网络问题;不要通过不断增加按需条件掩盖基础故障。