Clash 代理模式选哪个:规则、全局、直连三种模式区别详解

从流量走向讲清规则、全局、直连三种模式各自的行为差异,分析日常上网、临时测速、内网调试等场景下的模式选择,并说明切换模式后需要注意的连接状态变化。

三种模式改变的是出站决策

Clash Meta,也就是当前常见的 mihomo 内核,会先接收进入本地代理端口或 TUN 虚拟网卡的连接,再为连接确定出口。规则、全局、直连三种模式改变的是这一步的决策方式,不会改变订阅中的节点数量,也不会把没有进入内核的流量自动纳入处理。

以浏览器访问一个 HTTPS 网站为例,连接可能先进入本机的 HTTP 或 mixed 端口,例如配置中常见的 7890,也可能由 TUN 模式从系统网络栈接管。内核识别目标域名、目标 IP、端口和网络类型后,才根据当前模式选择代理节点或本地网络。系统代理未开启、应用没有单独设置代理且 TUN 未接管时,该应用的连接会绕过 Clash;此时切换模式通常不会影响它。

模式 进入内核后的决策 典型用途 主要检查点
规则 从上到下匹配规则,交给对应策略组或 DIRECT 日常浏览、长期运行、按站点分流 规则顺序、规则集状态、末尾规则
全局 通常交给 GLOBAL 策略组中当前选定的出口 临时排除规则影响、单节点连通性测试 GLOBAL 当前选择、局域网绕行设置
直连 使用 DIRECT 从本地网络建立连接 本地网络基线、内网调试、暂停代理出口 DNS 是否仍由内核处理、连接是否重新建立

规则模式:按命中顺序选择出口

规则模式适合长期使用。它会依据配置文件的 rules 列表逐条检查连接,第一条匹配成功的规则立即生效,后续规则不再参与。域名规则、IP 规则、进程规则和规则集合可以同时存在,因此顺序比规则数量更重要。

mode: rule
mixed-port: 7890
external-controller: 127.0.0.1:9090

rules:
  - DOMAIN-SUFFIX,example.cn,DIRECT
  - DOMAIN,api.example.net,Proxy
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
  - MATCH,Proxy

这段示例先让指定国内域名直连,再让一个 API 域名进入名为 Proxy 的策略组。两个私有地址段用于局域网直连,最后的 MATCH 接住之前没有命中的连接。若把 MATCH,Proxy 放到第一行,其余规则将没有机会生效。

规则模式中的三个实际判断

  1. 规则命中了哪个策略。客户端连接页面通常会显示规则名称或链路,例如 DOMAIN-SUFFIX → DIRECTMATCH → Proxy。只看节点名称不足以判断规则是否正确。
  2. 策略组当前选了什么。规则写入 Proxy 后,最终出口仍取决于该策略组。若它是手动选择组,使用当前节点;若它是 url-testfallback 组,则由组内检测结果决定。
  3. 域名是否已转成 IP。某些连接只能看到目标 IP,域名规则可能无法参与。启用 DNS 劫持、嗅探或合适的 TUN 配置后,内核可获得更多域名信息,但具体行为取决于配置与协议。

规则模式也适合处理局域网和开发环境。例如将 localhost127.0.0.0/8192.168.0.0/16 与公司内网域名放在靠前位置,可以减少内网请求被送到远端节点的情况。调试前仍应确认企业 VPN、虚拟机网段或容器网段是否与这些地址重叠。

日常上网为什么优先选择规则模式

全局模式:跳过常规规则进行单出口测试

全局模式常被理解为“所有设备流量都强制代理”,这个描述并不准确。它只处理已经进入 Clash 内核的连接,并通常把这些连接交给 GLOBAL 策略组。未进入代理端口、未被 TUN 接管或被路由排除的连接,依然不会因为模式名称发生变化。

全局模式的价值主要在故障隔离。某个网站在规则模式下打不开,而切到全局后立即恢复,说明节点本身具备访问能力,问题更可能位于规则命中、策略组选择或直连网络。如果全局模式下仍然失败,则应继续检查节点连通性、DNS、TLS 时间、网络防火墙和目标服务状态。

适合使用全局模式的场景

一次可复现的测速记录

实验可先在直连模式建立本地网络基线,再切到全局模式测试同一节点。某次千兆有线网络记录中,直连下载为 742 Mbps、上传为 93 Mbps、空载延迟为 8 ms;固定同一代理节点后下载为 186 Mbps、上传为 61 Mbps、空载延迟为 48 ms。这些数字只说明该网络、该节点和该时段的链路,不应作为其他设备的速度预期。

  1. 关闭正在同步文件、下载更新或播放视频的应用。
  2. 在直连模式下对同一测速服务器运行三次,记录中位数。
  3. 切到全局模式,在 GLOBAL 组固定一个节点。
  4. 关闭测速页面并重新打开,确保创建新连接,再运行三次。
  5. 同时记录下载、上传、空载延迟、负载延迟和丢包率。

客户端节点列表里的延迟测试通常只是向指定测试 URL 发起较短的 HTTP 请求,用于判断可达性和往返时间。显示 52 ms 不等于节点能稳定跑满带宽,也不代表 UDP、长连接或大文件传输一定正常。

直连模式:保留接管,出口改为本地网络

直连模式会让进入内核的连接使用 DIRECT 出站。它适合测量不经过代理节点时的网络基线,也适合访问局域网设备、调试本地服务或判断故障是否来自远端节点。直连不等于退出客户端:本地监听端口、TUN 虚拟网卡、连接日志以及 DNS 模块可能仍在工作。

直连模式与完全关闭 Clash 的区别

操作 本地代理端口 TUN 接管 Clash DNS
切换直连模式 通常继续监听 通常保持原状态 可能继续解析
关闭系统代理 端口仍可能监听 不一定关闭 取决于 TUN 与系统 DNS 设置
退出客户端 停止监听 应撤销虚拟网卡与路由 内核 DNS 停止

因此,排查 DNS 问题时,仅切换直连模式不一定能得到“完全不经 Clash”的结果。若配置启用了 dns.enable、TUN 的 DNS 劫持或 fake-ip,查询仍可能由内核处理。要建立操作系统原始网络基线,应记录并逐项恢复系统代理、TUN、DNS 与路由状态。

内网调试的建议顺序

  1. 先在规则模式查看目标地址命中了哪条规则。
  2. 确认目标属于真实内网段,例如 192.168.1.0/24,并检查是否存在同名公网域名。
  3. 切换直连模式,关闭旧连接后重新访问服务。
  4. 若仍失败,检查本机路由表、企业 VPN、容器网络和服务监听地址。
  5. 直连可用而规则模式失败时,为该域名或网段增加靠前的 DIRECT 规则。

本地开发中还要区分监听地址。服务只监听 127.0.0.1:3000 时,其他设备不能通过局域网 IP 访问;这不是 Clash 模式导致的问题。若服务监听 0.0.0.0:3000,再检查系统防火墙、局域网隔离和对应网段的 DIRECT 规则。

切换模式后,旧连接不会自动改道

Clash 通常在连接建立时决定出站。已经存在的 TCP 连接不会因为从规则切到全局就迁移到另一个节点,WebSocket、SSH、视频流、网盘同步和 HTTP/2 长连接尤其明显。界面显示的新模式只保证后续新建连接按新逻辑处理。

让测试结果反映新模式

在常见图形客户端中,模式入口通常位于「代理」→「模式」,可选择「规则」「全局」或「直连」;部分客户端把它放在「设置」→「Clash 设置」→「运行模式」,托盘菜单也可能提供同名选项。菜单名称会随客户端版本变化,但内核对应值仍是 ruleglobaldirect

若启用了 mihomo 的外部控制器,例如 127.0.0.1:9090,控制面板会通过控制接口修改模式。请求体中的值同样使用小写英文:

PUT /configs
Content-Type: application/json

{"mode":"rule"}

外部控制器应只监听受信任接口并配置访问凭据。修改后可重新读取运行配置,并在连接记录中创建一个新请求,确认实际模式与命中链一致。手工编辑配置文件时还要执行重新加载;只改磁盘文件,不会保证正在运行的内核立即采用新值。

按使用场景选择模式

日常浏览与长期后台运行

选择规则模式。先保证局域网、常用直连服务和代理服务分别命中预期规则,再让策略组处理节点切换。规则模式提供更清晰的流量记录,也能避免所有连接集中到同一个远端出口。

某个网站突然打不开

保持规则模式查看连接记录,记下命中规则与策略组;随后切到全局模式,用同一节点重新建立连接。全局可用时回查规则,全局仍不可用时检查节点、DNS 和目标服务。测试结束后恢复规则模式。

比较本地网络与节点性能

先用直连模式测三次本地基线,再以全局模式固定节点测三次。测试服务器、设备连接方式和时间段应保持一致。不要在规则模式下直接比较多个测速域名,因为它们可能命中不同规则或不同策略组。

访问 NAS、路由器与开发服务

先尝试规则模式中的局域网 DIRECT 规则。临时切换直连可用于确认代理出口是否参与故障,但长期处理方式应是补全内网域名和网段规则。若 TUN 路由与企业 VPN 冲突,还需要调整路由排除项,单纯设置直连模式不能修复路由表。

暂停远端代理但保留客户端观察

选择直连模式可以保留连接日志和本地接管结构,便于对比请求行为。若目标是恢复操作系统原始网络状态,则还应关闭系统代理和 TUN,并确认 DNS、默认路由与虚拟网卡已经恢复。

一份可执行的模式排查清单

  1. 确认应用流量通过系统代理、手动代理或 TUN 进入 Clash。
  2. 记录当前运行模式,不把模式与策略组名称混为一谈。
  3. 在连接页面查看目标域名、目标 IP、命中规则与实际链路。
  4. 规则模式异常时,用全局模式固定同一节点进行对照。
  5. 需要本地基线时切到直连,并注意 DNS 可能仍由内核处理。
  6. 每次切换后关闭旧连接,重新打开页面或重启测试应用。
  7. 问题定位完成后回到规则模式,修正规则顺序、规则集或策略组选择。

三种模式没有统一的速度排序。规则模式的结果取决于命中规则与策略组,全局模式取决于 GLOBAL 选中的节点,直连模式取决于本地运营商链路。选择模式时应先明确测试对象:是规则决策、远端节点,还是本地网络。把三者拆开记录,才能从连接日志中得到可复现的结论。

下载 Clash 客户端 查看 Windows、macOS、Android、iOS 与 Linux