Clash 客户端里的 Rule、Global 与 Direct,决定的是流量进入 Clash 核心之后如何选择出口。三种模式不会改变订阅里的节点数量,也不会自动修改节点协议;它们改变的是规则是否参与判断、所有连接是否统一交给一个策略组,以及连接是否直接访问目标地址。
日常使用通常选规则模式。全局模式适合临时验证节点和处理规则漏匹配,直连模式适合确认问题是否由代理链路引起。选择之前还要区分两个概念:系统代理或 TUN 模式负责把流量送进 Clash,代理模式负责决定这些流量进入核心后从哪里出去。
三种模式分别改变了什么
规则模式:逐条匹配后选择出口
规则模式对应配置字段 mode: rule。连接进入核心后,Clash 会按照 rules 列表从上到下检查域名、IP、端口、进程或规则集。匹配到第一条规则后立即停止继续检查,并把连接交给该规则指定的策略组、代理节点、DIRECT 或 REJECT。
例如访问 intranet.example 时,域名后缀规则可以让它直连;访问其他目标时,末尾的 MATCH 则把流量交给“节点选择”策略组。规则的先后顺序会直接改变结果,范围更小、更具体的规则通常应放在范围更大的规则前面。
mode: rule
mixed-port: 7890
rules:
- DOMAIN,intranet.example,DIRECT
- DOMAIN-SUFFIX,example.org,节点选择
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,节点选择
规则模式的核心价值不是“部分网站走代理”这么简单,而是让不同流量使用不同出口。局域网地址可以直连,明确不需要连接的域名可以拒绝,常用网络服务可以交给自动测速组,其余请求再进入手动选择组。只要规则集和策略组配置合理,日常不需要频繁切换模式。
全局模式:跳过规则列表,统一交给 GLOBAL
全局模式对应 mode: global。在这一模式下,常规连接不再按照 rules 逐条决定出口,而是统一进入名为 GLOBAL 的内置策略入口。用户需要在客户端的全局策略区域选择一个具体节点或策略组,否则可能仍沿用此前的选择。
“全局”描述的是 Clash 核心内的路由方式,不代表电脑上的每一个数据包都一定经过代理。没有遵循系统代理的程序、未被 TUN 捕获的协议、客户端排除列表中的进程,以及某些局域网广播流量,仍可能不进入 Clash。浏览器使用系统代理时,全局模式通常只影响浏览器等遵循该代理设置的程序。
直连模式:进入核心后使用本地网络出口
直连模式对应 mode: direct。连接即使已经通过系统代理端口或 TUN 网卡进入 Clash,核心也会为它选择直接连接目标地址,不再使用订阅节点。这个模式适合比较代理前后的访问结果,也适合测试局域网服务、公司内网或本地开发服务器。
直连模式不等于退出客户端。若系统代理仍指向 127.0.0.1:7890,请求依旧会先到 Clash,再由 Clash 发起直连;若 TUN 仍处于启用状态,流量也可能继续经过虚拟网卡。需要彻底恢复操作系统原始网络路径时,还应关闭系统代理或 TUN,并确认系统网络设置已经恢复。
用一张表判断流量走向
| 比较项 | 规则模式 | 全局模式 | 直连模式 |
|---|---|---|---|
| 配置值 | rule |
global |
direct |
| 是否读取 rules | 按顺序匹配 | 通常跳过 | 通常跳过 |
| 主要出口 | 由命中规则决定 | GLOBAL 中选定的节点或策略组 | 本地网络 DIRECT |
| 典型用途 | 日常使用与精细分流 | 统一代理、验证节点、排查漏匹配 | 对照测试、局域网访问、排除代理因素 |
| 常见风险 | 规则顺序错误或末尾规则不合理 | 本地服务也被送往代理,流量消耗增加 | 需要代理的目标无法访问 |
日常使用应该选哪一种
长期运行优先选择规则模式
订阅配置已经提供完整规则集时,规则模式通常是最合适的默认项。它可以让本地网站、局域网设备与需要代理的目标分别走合适的路径,也能减少不必要的代理流量。对于存在流量倍率的订阅,规则模式还能避免把系统更新、局域网文件传输等连接统一送进代理节点。
选择规则模式后,应在客户端的「代理」→「模式」中确认 Rule 已选中,再检查当前策略组。不同图形客户端的入口名称可能显示为「代理模式」「路由模式」或 Mode,但核心值仍是 rule。Clash for Windows v0.20.39 可在 Proxies 页面查看模式与策略组,基于 mihomo 的客户端通常也在「代理」页面提供 Rule、Global、Direct 三项。
临时排障时切换全局模式
某个网站在规则模式下打不开,但节点测速正常时,可以先切到全局模式,并在 GLOBAL 中明确选择一个可用节点。如果全局模式可以访问,问题多半位于规则匹配、策略组选择或规则集更新环节;如果全局模式仍无法访问,则应继续检查节点本身、DNS、系统时间和网络连接。
- 记录当前模式和策略组,避免测试后忘记恢复。
- 打开「代理」→「模式」,选择 Global。
- 在 GLOBAL 策略入口选择一个已完成延迟测试的节点。
- 使用新的无痕窗口测试目标,避免浏览器缓存干扰。
- 测试结束后切回 Rule,并检查目标域名实际命中的规则。
全局测试最好控制在几分钟内。软件更新、云盘同步、视频播放等后台连接也可能统一使用所选节点。测试前暂停大流量任务,更容易观察目标请求本身的变化。
局域网与对照测试使用直连模式
访问路由器管理页、NAS、打印机或本地开发服务时,直连模式可以快速判断代理路由是否参与了问题。例如访问 192.168.1.1、10.0.0.20:8080 或 localhost:3000,切换 Direct 后恢复,说明原规则可能错误地把内网地址交给了代理策略组。
长期解决方式不是一直保持直连,而是在规则模式中补充局域网规则。常见私有地址范围包括 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16。规则应放在可能覆盖它们的宽泛 IP 规则之前,并可添加 no-resolve,避免为纯 IP 规则触发额外 DNS 解析。
rules:
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,节点选择
系统代理、TUN 与模式切换的关系
系统代理只接管愿意读取代理设置的程序
Clash 常见的 HTTP、SOCKS 或 mixed 监听端口是 7890,但实际值应以配置文件和客户端首页显示为准。启用系统代理后,Windows 会把代理地址写入系统设置。浏览器和部分桌面程序会读取这项设置,再把请求发往 Clash;部分游戏、命令行工具和自带网络栈的程序可能忽略它。
因此,切换为 Global 并不保证忽略系统代理的程序突然进入 Clash。可以在 Windows 11 的「设置」→「网络和 Internet」→「代理」中检查代理状态,也可以查看客户端连接记录。如果测试程序没有出现在 Connections 或「连接」页面,问题发生在流量进入核心之前,与 Rule、Global、Direct 的选择无直接关系。
TUN 模式扩大接管范围,但不会替代路由模式
TUN 模式通过虚拟网卡和系统路由捕获更多流量,适合不支持系统代理的程序。流量被 TUN 捕获后,仍然要经过当前的路由模式:Rule 会查规则,Global 会送往全局策略入口,Direct 会从本地网络直接连接。TUN 解决的是“怎样进入核心”,三种模式解决的是“进入之后怎样出去”。
在 mihomo 配置中,TUN 常见字段包括 enable、stack、auto-route 和 strict-route。这些字段会影响虚拟网卡与系统路由,但不应被用来代替 mode。排障时一次只改一个变量:先保持 TUN 状态不变切换模式,再保持模式不变测试 TUN,结果会更容易解释。
DNS 也可能让测试结果看起来矛盾
模式切换主要决定连接出口,DNS 查询路径还受到 dns 段、系统 DNS、代理程序实现和缓存影响。规则模式打不开、全局模式能打开,不一定只由域名规则造成,也可能是不同出口触发了不同的解析结果。测试时可先关闭并重新打开目标应用,必要时清理系统 DNS 缓存,再观察客户端日志中的域名、目标 IP 和命中策略。
使用 fake-ip 时,应用看到的可能是 198.18.0.0/16 范围内的映射地址,这属于 Clash 的域名映射机制,不代表网站真实服务器位于该地址段。判断规则命中时应查看连接详情中的 Host、Rule 和 Chains,而不是只根据应用展示的目标 IP 下结论。
常见误用与修正方法
误用一:把全局模式当成更快的模式
Global 不会自动降低节点延迟,也不会提升节点带宽。它只是跳过规则分流,把连接统一交给选定出口。某个网站在全局模式下变快,可能是规则模式原本选择了另一个策略组,或规则集把该网站送到了不合适的节点。正确做法是查看连接详情,修正规则或策略组,而不是长期用 Global 掩盖分流问题。
误用二:切到直连后认为客户端已经关闭
Direct 状态下,监听端口、系统代理开关、TUN 网卡和 DNS 模块仍可能运行。若要测试“完全不经过客户端”的网络状态,应依次关闭 TUN、关闭系统代理、退出客户端,然后在 Windows 代理设置中确认手动代理已关闭。仅切换 Direct 适合测试代理出口,不适合模拟客户端完全退出。
误用三:全局模式下忘记选择 GLOBAL 节点
切换 Global 后,还需要检查 GLOBAL 当前指向。若它指向一个自动选择策略组,最终节点可能随健康检查变化;若指向失效节点,所有进入核心的常规连接都会受到影响。排障时应选择一个延迟测试有结果、近期可用的具体节点,并记录节点名称与测试时间。
误用四:修改 YAML 后只切模式,不重新载入
手动修改 mode、rules 或策略组后,客户端中的运行配置不一定自动刷新。应使用「配置」→「重新载入」或客户端对应的 Reload 入口。YAML 使用空格表示层级,Tab、缺少冒号或列表缩进不一致都可能导致载入失败。
mode: rule
proxy-groups:
- name: 节点选择
type: select
proxies:
- 自动选择
- DIRECT
rules:
- DOMAIN-SUFFIX,example.com,节点选择
- MATCH,节点选择
按现象完成一次模式排障
网站仅在全局模式下可访问
- 在连接页面找到目标域名,记录命中的规则和策略链。
- 确认规则模式下是否命中了
DIRECT、错误地区的策略组或失效节点。 - 手动更新订阅与规则集,然后重新载入配置。
- 为目标域名添加更具体的规则,并放到宽泛规则之前。
- 切回 Rule 再测,确认不再依赖 Global。
直连模式正常,规则和全局模式都异常
这通常说明本地网络可以直达目标,而当前代理节点或代理链路存在问题。先对节点执行延迟测试,再更换同地区的另一个节点。延迟测试只能说明测试地址可达,不代表目标服务一定可用,因此还要查看连接日志中是否出现超时、连接被拒绝或 TLS 握手失败。
如果多个节点都异常,检查订阅是否过期、系统时间是否准确,以及安全软件是否拦截客户端进程。Windows 时间偏差达到数分钟时,TLS 证书校验可能失败。可在「设置」→「时间和语言」→「日期和时间」中启用自动设置时间并执行立即同步。
三种模式都无法访问
先确认流量是否进入 Clash。连接列表完全没有目标请求时,应检查系统代理、TUN、应用自身代理设置和监听端口;能看到请求但三种模式都失败时,再检查 DNS、目标服务器状态、本地防火墙和基础网络。也可以暂时退出客户端后直接访问,以建立一组清晰的对照结果。
模式选择速查
- 普通网页、办公与长期后台运行:选择 Rule,让规则集承担日常分流。
- 怀疑目标域名命中了错误规则:短时选择 Global,对比访问结果后修正规则。
- 验证某个订阅节点能否承载目标流量:选择 Global,并在 GLOBAL 中指定该节点。
- 访问路由器、NAS 或本地开发服务:先用 Direct 对照,再补充局域网直连规则。
- 判断故障是否来自代理出口:保持接管方式不变,在 Rule、Global、Direct 间逐项比较。
- 测试完全原始的系统网络:关闭 TUN 与系统代理后退出客户端,不能只切换 Direct。
最稳妥的使用习惯是把 Rule 作为默认模式,把 Global 和 Direct 当成诊断工具。每次测试只改变一个条件,记录当前节点、命中规则、接管方式和结果,再恢复原设置。这样既能快速定位规则问题,也不会把系统代理、TUN、DNS 与代理模式混在一起判断。