Clash 规则模式、全局模式与直连模式怎么选:三种代理模式差异详解
讲清 rule、global、direct 三种模式的流量走向与适用场景,并说明 config.yaml 中 mode 字段的写法与切换方式。
三种模式的区别:进入内核后交给谁处理
日常使用优先选择规则模式;需要暂时排除分流规则影响时切到全局模式;需要比较本地网络能否直接访问时切到直连模式。三种模式改变的是 Clash 内核处理连接的方式,不是订阅内容,也不是节点服务器本身的设置。
这里的“连接”有一个重要前提:流量已经进入 Clash。浏览器遵循系统代理、应用手动连接代理端口,或者流量被 TUN 接管,内核才有机会决定走哪条路径。没有进入内核的连接,不会因为界面切到了全局模式就自动改走代理。
| 模式与字段值 | 主要决策方式 | 适用场景 |
|---|---|---|
规则模式 rule | 按规则顺序匹配,交给命中的策略 | 日常分流、局域网访问、不同网站选择不同出口 |
全局模式 global | 交给内置的 GLOBAL 策略组 | 临时统一出口、对比是否为规则选择问题 |
直连模式 direct | 使用直连出站,不按普通规则列表选择代理 | 检查本地网络、暂时不使用远端节点 |
规则模式:按顺序匹配,首次命中就结束
mode: rule 会让内核按 rules 的排列顺序检查连接。命中某条规则后,连接交给该规则指定的策略,后面的规则通常不再参与这一连接的选择。策略既可以是节点或策略组,也可以是内置的 DIRECT、REJECT。
读懂一段最小规则示例
mode: rule
rules:
- DOMAIN-SUFFIX,example.com,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,Proxy
example.com以及它的子域名命中第一条,使用直连。- 目的地址在
192.168.0.0/16内的连接命中第二条;no-resolve表示不为匹配这条 IP 规则主动触发域名解析。 - 前面没有命中的连接由
MATCH兜底,交给名为Proxy的策略。
这是规则片段,不是完整订阅文件。使用前,现有配置中必须已经定义 Proxy 节点或策略组;如果实际组名是“节点选择”,就要使用那个准确名称。名称不对应会导致配置检查失败,而不是自动替换成某个节点。
规则模式不等于自动识别所有网站
分流效果取决于配置里的规则、规则集更新情况和策略组当前选择。假设某网站命中了一个选择器,而选择器当前选中 DIRECT,最终仍然直连。反过来,国内网站如果落入 MATCH,Proxy,也可能走远端节点。不能仅凭网站所在地区推断实际路径。
遇到单个网站路径不符合预期,先在客户端“连接”页面查看对应域名、命中规则和出站链路,再调整规则。需要添加例外时,把更具体的域名规则放在宽泛规则之前;MATCH 应放在最后,否则后续规则没有机会生效。
全局模式:统一交给 GLOBAL,但不保证全设备代理
mode: global 将通常受模式控制的连接交给内置 GLOBAL 策略组,不再按普通 rules 列表做日常分流。因此,切换模式后还要打开代理或策略组页面,确认全局组里选择的是可用节点,或一个最终会选择节点的策略组。
如果 GLOBAL 选择了 DIRECT,结果依旧是直连;如果选择的是自动测速组,最终出口仍受这个组的候选节点和选择逻辑影响。“全局”描述的是统一决策入口,不代表固定节点、最低延迟或所有应用都被接管。
适合短时对照,不适合替代接管检查
- 先记录规则模式下打不开的完整域名,以及该连接命中的规则。
- 切换到全局模式,在
GLOBAL中选择已知可用节点。 - 关闭原有页面连接后重新访问,或开启一个新的浏览器会话,避免旧连接继续沿用原路径。
- 如果全局可用而规则不可用,回到规则模式,检查原先命中的策略和节点,而不是直接删除整份规则。
全局模式还可能让路由器管理页、打印机或企业内网访问走到不合适的出口。部分流量若已在系统代理绕过列表或 TUN 路由排除中被排除,仍不会进入内核。使用 mihomo 时,如果配置包含额外的路由、监听器或高级规则,也应同时核对这些设置,不能只凭模式名称判断全部流量行为。
直连模式:保留内核入口,改用本地网络出站
mode: direct 使进入内核的连接使用直连出站,适合判断访问故障是否依赖远端代理。例如同一个网站在直连模式下能打开、在全局模式下打不开,就应重点检查全局组选择、节点可用性以及该出口的网络情况。
直连模式不等于退出客户端。系统代理可能仍指向本地监听端口,TUN 也可能继续工作,DNS 设置同样可能仍由内核处理。此时直接退出客户端,如果系统代理没有被正确还原,应用仍可能尝试连接已经停止监听的端口,出现网页全部打不开的现象。
- 只比较出站路径:保留客户端运行,切到直连模式,再发起新连接。
- 比较完全不经过客户端的网络:关闭系统代理和 TUN,确认操作系统代理设置已恢复后再测试。
- 准备退出客户端:优先使用客户端提供的正常退出操作,并检查残留代理设置。
直连也不保证目标一定能访问。目标站点自身故障、本地 DNS 异常、网络访问限制或企业认证要求,都可能继续影响结果。它是定位路径差异的工具,不是通用修复按钮。
config.yaml 的 mode 字段怎么写
mode 是 YAML 顶层字段,与 mixed-port、rules 同级,不应缩进到 dns 或某个策略组下面。建议写小写值 rule、global、direct。以下片段用 7890 演示混合代理端口,并不代表所有客户端默认都使用这个端口。
# 合并到已有配置的顶层,不要重复定义同名字段
mixed-port: 7890
mode: rule
要改为全局或直连,只替换同一行的值:
# 全局模式
mode: global
# 直连模式
mode: direct
图形界面与文件修改如何配合
- 在支持该入口的桌面客户端中,打开“设置”→“Clash 设置”或“内核设置”,找到“代理模式”;部分客户端会将模式按钮直接放在首页。名称与位置以当前客户端为准。
- 如果需要编辑文件,先在“配置”或“订阅”页面确认当前启用的是哪份配置,保存副本,再通过对应编辑入口修改。
- 保存后执行客户端提供的重新加载操作,检查是否有 YAML 解析错误,并确认界面的当前模式。
- 重新发起连接,在“连接”页面验证路径;仅看到文件保存成功,不能证明运行中的内核已采用新值。
系统代理、TUN 与 DNS:三个容易混淆的边界
系统代理决定应用是否把连接送到本地端口
假设配置实际监听 127.0.0.1:7890,遵循系统代理的浏览器可以通过这个入口访问网络;忽略系统代理的游戏、命令行程序或其他应用则可能仍然直连。Windows 11 可在“设置”→“网络和 Internet”→“代理”检查入口;macOS 可在“系统设置”→“网络”→当前网络服务→“详细信息”→“代理”检查。这里的地址和端口必须与客户端实际监听配置一致。
TUN 决定接管范围,模式决定接管后的出口
TUN 通过虚拟网络接口和路由安排,将更多应用的流量送入内核。它不是第四种代理模式,也不与规则模式互斥。常见组合是“TUN 开启 + 规则模式”,再通过规则区分直连和代理。启用 TUN 后仍应确认权限、路由排除项和其他 VPN 是否冲突;不要把“全局模式”当成“TUN 已开启”的证明。
切换模式不会自动更换整套 DNS 配置
DNS 的 nameserver、fake-ip 等设置与 mode 是不同层面的配置。使用 mihomo 时,解析流量如何出站还可能受 respect-rules、代理服务器域名解析设置等影响。因此,直连模式下仍有解析问题,或全局模式下域名失败但 IP 可达,都需要继续检查 DNS 日志,不能只在三种模式之间反复切换。
按现象排查:切换模式后看什么
| 现象 | 优先检查 |
|---|---|
| 全局能访问,规则不能访问 | 规则命中位置、对应策略组选择、是否误走 DIRECT 或 REJECT |
| 规则能访问,全局不能访问 | GLOBAL 当前选择、所选节点可用性、是否改变了内网流量出口 |
| 三种模式都没有连接记录 | 应用是否遵循系统代理、端口是否正确、TUN 是否实际接管 |
| 切换后旧页面表现不变 | 浏览器缓存、连接复用、后台长连接;使用新连接重新验证 |
| 直连可用,代理出站失败 | 节点连接错误、订阅节点状态、代理组最终出口 |
测试时保持其他条件不变:同一个域名、同一个应用、同一种接管方式,每次只调整模式或一个策略组。记录“当前模式、命中规则、最终出站、错误信息”四项,比只记录“能不能打开”更容易定位问题。分享日志前应删去订阅地址、访问令牌及其他敏感信息。
日常选择:规则为主,全局与直连用于对照
- 日常网页、办公与局域网并用:选择规则模式,维护必要的域名例外,确认常用策略组的实际选择。
- 临时需要统一节点出口:选择全局模式,同时检查 GLOBAL,不要只切换模式按钮。
- 判断本地网络是否正常:先用直连模式对照;需要排除客户端本身影响时,再关闭接管并检查系统设置。
可以把判断顺序记成三步:先确认流量进入内核,再确认当前模式,最后查看最终出站。掌握这三层关系,就能解释为什么“全局”仍有应用不走代理,也能更准确地区分规则问题、节点问题和 DNS 问题。需要逐项查阅字段时,可继续阅读Clash 配置字段;首次导入配置则从快速上手教程开始。