Clash 规则模式、全局模式与直连模式的区别及选择

逐一拆解三种代理模式的流量走向、适用场景与常见误用,给出日常使用、临时排障、局域网测试各自该选哪一种的判断依据。

Clash 客户端里的 Rule、Global 与 Direct,决定的是流量进入 Clash 核心之后如何选择出口。三种模式不会改变订阅里的节点数量,也不会自动修改节点协议;它们改变的是规则是否参与判断、所有连接是否统一交给一个策略组,以及连接是否直接访问目标地址。

日常使用通常选规则模式。全局模式适合临时验证节点和处理规则漏匹配,直连模式适合确认问题是否由代理链路引起。选择之前还要区分两个概念:系统代理或 TUN 模式负责把流量送进 Clash,代理模式负责决定这些流量进入核心后从哪里出去。

三种模式分别改变了什么

规则模式:逐条匹配后选择出口

规则模式对应配置字段 mode: rule。连接进入核心后,Clash 会按照 rules 列表从上到下检查域名、IP、端口、进程或规则集。匹配到第一条规则后立即停止继续检查,并把连接交给该规则指定的策略组、代理节点、DIRECTREJECT

例如访问 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、系统时间和网络连接。

  1. 记录当前模式和策略组,避免测试后忘记恢复。
  2. 打开「代理」→「模式」,选择 Global。
  3. 在 GLOBAL 策略入口选择一个已完成延迟测试的节点。
  4. 使用新的无痕窗口测试目标,避免浏览器缓存干扰。
  5. 测试结束后切回 Rule,并检查目标域名实际命中的规则。

全局测试最好控制在几分钟内。软件更新、云盘同步、视频播放等后台连接也可能统一使用所选节点。测试前暂停大流量任务,更容易观察目标请求本身的变化。

局域网与对照测试使用直连模式

访问路由器管理页、NAS、打印机或本地开发服务时,直连模式可以快速判断代理路由是否参与了问题。例如访问 192.168.1.110.0.0.20:8080localhost:3000,切换 Direct 后恢复,说明原规则可能错误地把内网地址交给了代理策略组。

长期解决方式不是一直保持直连,而是在规则模式中补充局域网规则。常见私有地址范围包括 10.0.0.0/8172.16.0.0/12192.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 常见字段包括 enablestackauto-routestrict-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 后只切模式,不重新载入

手动修改 moderules 或策略组后,客户端中的运行配置不一定自动刷新。应使用「配置」→「重新载入」或客户端对应的 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 与代理模式混在一起判断。

查看客户端下载