Global Routing 的三个常用姿态是 Config、Proxy、Direct,区别只在「流量先看什么」:Config 先查规则表,Proxy 与 Direct 跳过规则表。本文按 Home → Global Routing 的实际路径,说清三种姿态的判断顺序、各自适合的场景,以及排查结束后怎么切回 Config,适合已经导入订阅、但不确定该停在哪个姿态的用户。
三种姿态共用一个入口,区别在判断顺序
Shadowrocket(小火箭)的 Global Routing 位于 Home 页的设置行,和连接开关、节点列表在同一屏。点进去可以看到 Config、Proxy、Direct 三个常用姿态:它们不改订阅、不改节点、不改配置文件内容,只改变一条新连接在建立时「先看什么」。
把三种姿态拆开看,判断顺序只有三种写法。Config 先查规则表,命中哪条就按哪条指定的策略处理,一条都没命中才落到 FINAL 兜底;Proxy 完全不查规则表,所有流量都交给当前选中的节点;Direct 同样不查规则表,所有流量直接连出去。换个角度说,Proxy 相当于把整张规则表替换成一条 FINAL,PROXY,Direct 相当于替换成一条 FINAL,DIRECT。
Config
推荐按当前配置文件的规则逐条匹配,命中规则走规则指定的策略,未命中落到 FINAL。国内直连、国外走代理的分流由规则表完成,不需要手动干预。
适合:日常主力姿态,国内外服务混用
Proxy
跳过规则表,全部流量交给当前选中的节点处理,效果等同一条 FINAL,PROXY。任何域名都不会再落到 DIRECT 分支。
适合:排查规则误判、临时让全部流量走代理
Direct
同样跳过规则表,全部流量直连,节点不参与。连接开关仍处于打开状态,但没有任何流量被代理。
适合:对照测试、判断问题出在规则还是线路
Global Routing 只改变流量的判断顺序,不会修改订阅内容与节点列表;把姿态切回 Config,规则表立即重新生效,不需要重新导入订阅。
还需要把 Global Routing 和 Settings 里的 On Demand 区分开:On Demand 管的是连接开关什么时候自动打开或关闭,例如加入某个 Wi-Fi 后自动连接;Global Routing 管的是连接打开之后,流量按什么顺序被判断。改其中一个不会动到另一个。
Config:规则表怎么决定一条请求的去向
Config 姿态下,每条新连接都从规则表顶部往下匹配,命中即停,后面的规则不再参与判断。一条规则由「匹配条件 + 策略」组成:匹配条件描述流量特征,策略决定把它交给 PROXY、DIRECT 还是 REJECT。下面是一段规则片段,顺序自上而下生效。
DOMAIN-SUFFIX,example.com,PROXY
DOMAIN-KEYWORD,example,DIRECT
IP-CIDR,203.0.113.0/24,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY
| 规则写法 | 匹配对象 | 常见用法 |
|---|---|---|
DOMAIN-SUFFIX,example.com,PROXY | 域名及其子域 | 把指定域交给节点处理 |
DOMAIN-KEYWORD,example,DIRECT | 域名关键字 | 批量兜住含同一关键词的域名 |
IP-CIDR,203.0.113.0/24,DIRECT | 目标 IP 段 | 直连已知的固定地址段 |
GEOIP,CN,DIRECT | IP 归属地 | 国内地址直连 |
FINAL,PROXY | 兜底 | 以上都没命中时的默认去向 |
域名类规则在连接建立前就能判断;IP-CIDR 与 GEOIP 需要先知道目标 IP,可以在规则末尾加 no-resolve,避免为了匹配规则而多做一次解析。最后一行 FINAL 决定「没有被任何规则提到」的流量去哪:如果 FINAL 是 PROXY,新出现的域名默认走代理;如果 FINAL 是 DIRECT,新域名默认直连。
Config 姿态的实际效果由当前选中的配置文件决定。换一个配置文件,同一个域名可能被判给不同策略;排查分流问题时,先在 Config 里确认当前生效的是哪一个配置文件。
Proxy 与 Direct:两个跳过规则表的极端
Proxy 和 Direct 是同一件事的两端:都跳过规则表,把所有流量交给一个固定动作。Proxy 下,所有请求都会尝试经过当前节点;Direct 下,所有请求直接连出去,节点完全不参与。因为不查规则,这两个姿态的判断结果永远可预期,这也是它们适合做排查工具的原因。
Proxy 与 Direct:两种诊断姿态各自验证什么
Proxy
- 所有域名都交给当前节点,不再有 DIRECT 分支
- 能通,说明节点与订阅本身可用
- 国内服务也会绕行节点,延迟与流量开销上升
Direct
- 所有流量直连,节点完全不参与
- 能通,说明目标在不经过代理时可达
- 连接开关保持打开,但没有流量被代理
两者都只适合短时验证:对照测试做完就切回 Config,不要长期停在 Proxy 或 Direct。
把 Proxy 当日常姿态用,最直接的代价是所有流量都绕行节点:访问国内服务的往返延迟会叠加节点链路延迟,大流量下载也会一并计入节点流量。排查完不切回来,日常体验会一直维持在「全部绕行」的状态。
Direct 长期停留则是另一种误判——连接开关仍然打开,系统状态栏也显示 VPN 标记,但没有任何流量被代理,很容易被当成「已经连上了」。要确认当前姿态,回到 Home 页看 Global Routing 行右侧显示的值即可,不需要断开连接再重连。
日常怎么选:默认停在 Config,排查时再切
日常使用建议保持 Config:规则表已经覆盖了大部分「国内直连、国外走代理」的需求,不需要每次手动切换。遇到访问异常时,用下面四步把问题范围缩小到「规则」或「线路」。
- 保持 Config,先看 Home 页的连接状态,并做一次 Connectivity Test,确认连接开关与节点是否正常。
- 切到 Proxy 再试同一个目标:如果 Proxy 下能通、Config 下不通,问题多半在规则表——某个域名被规则判给了 DIRECT 或 REJECT。
- 切到 Direct 试第三次:如果 Direct 下目标本来就不可达,说明问题与代理无关,先解决目标本身的可达性。
- 定位完成后把 Global Routing 切回 Config;如果确认是规则问题,在配置文件里把对应规则前移,或补一条更靠前的规则。
结论:Proxy 与 Direct 是诊断姿态,不是日常姿态
三种姿态里只有 Config 会读规则表。Proxy 与 Direct 的价值,是用两次对照测试把问题锁定在「规则」或「线路」二者之一;测试结束就切回 Config,分流才会恢复。
如果经常在多个网络之间移动,Global Routing 下还有一个 Scene 姿态,可以按当前网络环境自动切换配置与姿态。Scene 的配置成本比前三种高,需要先想清楚每种网络该对应哪套配置;不确定时,保持 Config 手动切换更可控。
常见问题
以下是切换三种姿态时最常遇到的五个问题,答案里提到的路径都可以在应用内直接找到。
切到 Direct 之后订阅还能更新吗?
订阅更新本身是一次普通网络请求。订阅地址直连可达时,Direct 下也能更新;如果订阅地址必须经过节点才能访问,更新会失败,此时先切回 Config,或在 Settings → Subscribe 里勾选 Update via Proxy 后重试。
Config 下写了直连规则,某个域名还是走了代理?
两种常见原因。一是顺序:规则自上而下匹配,前面的规则先命中,后面的直连规则不会再生效;二是兜底:该域名没有被任何规则提到,落到了 FINAL,如果 FINAL 是 PROXY 就会走代理。把直连规则前移,或确认 FINAL 的取值。
Proxy 姿态下 Connectivity Test 通过,但网页打开很慢?
这是预期现象。Proxy 下所有流量都经过节点,国内服务也要绕行,延迟叠加后自然变慢。它不是故障信号,排查完切回 Config 即可。
改了 Global Routing,节点列表为什么没有变化?
Global Routing 只改变流量的判断顺序,不读也不改订阅与节点。节点列表为空或过期时,去 Settings → Subscribe 检查订阅地址与最近一次更新时间,而不是反复切换姿态。
Direct 下一切正常,能说明节点没问题吗?
不能。Direct 完全不经过节点,只能证明目标在不使用代理时可达。要确认节点状态,应切到 Proxy 试一次,或在 Home 页对单个节点做延迟测试。
在 App Store 获取 Shadowrocket
付费应用,一次性买断,只在 App Store 发售;下载前可对照开发者名 Shadow Launch Technology Limited 与应用 ID 932747118 完成正版核验。