Global Routing 三姿态怎么选:Config、Proxy、Direct 的区别与日常用法

Global Routing 决定流量的判断顺序:Config 按规则表逐条匹配,Proxy 与 Direct 跳过规则表。本文说明三种姿态各自的判断逻辑、适用场景与切换时机,以及日常使用保持 Config 的原因。

本文速览

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,DIRECTIP 归属地国内地址直连
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:规则表已经覆盖了大部分「国内直连、国外走代理」的需求,不需要每次手动切换。遇到访问异常时,用下面四步把问题范围缩小到「规则」或「线路」。

  1. 保持 Config,先看 Home 页的连接状态,并做一次 Connectivity Test,确认连接开关与节点是否正常。
  2. 切到 Proxy 再试同一个目标:如果 Proxy 下能通、Config 下不通,问题多半在规则表——某个域名被规则判给了 DIRECT 或 REJECT。
  3. 切到 Direct 试第三次:如果 Direct 下目标本来就不可达,说明问题与代理无关,先解决目标本身的可达性。
  4. 定位完成后把 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 完成正版核验。

前往正版核验 查看快速上手
App Store 正版核验