GLaDOS Network

Mihomo 规则模式怎么选择?Rule、Global、Direct 一次分清

更新于 2026-11-04 · glados.lat

简答:绝大多数日常场景选择 Rule 规则模式:它会按规则顺序决定流量走代理还是直连。Global 用于临时验证“节点或规则是否有问题”,Direct 用于测试本地网络或暂时让流量直连。切换模式后要重新发起请求,并确认实际出口、命中规则和策略组。

定义:Mihomo 的规则模式是进入内核的流量分流方式,Rule 按规则匹配,Global 交给 GLOBAL 策略组,Direct 则直接连接。

先看结论:不同场景应该选哪个模式

如果你只是想正常使用 Mihomo,不需要频繁切换:先选 Rule。它是 Mihomo 的默认工作模式,会按照配置中的规则从上到下匹配请求;匹配到对应目标后,再交给 DIRECT、某个节点或策略组处理。官方文档将三种模式分别定义为规则匹配、全局代理和全局直连,默认模式为 rule。详见 Mihomo General configuration。

三种模式快速选择表
你的目的建议模式需要确认的内容
日常浏览、办公、按规则分流Rule订阅规则已启用、规则集已加载、策略组有可用节点
某个网站打不开,想判断是规则还是节点问题先 Global,再回 RuleGLOBAL 实际选择的节点或 DIRECT,以及重新建立后的连接结果
比较代理出口与本地网络分别测试 Global 和 Direct保持 DNS、TUN、系统代理等其他设置不变
暂时不使用代理,但保留客户端运行DirectDirect 不等于关闭 Mihomo、系统代理、TUN 或 DNS
局域网、打印机或本地服务访问异常通常先回 Rule检查局域网规则是否命中 DIRECT,以及流量是否进入 TUN

一句话记忆:日常用 Rule,验证节点用 Global,测试本地直连用 Direct。

Rule、Global、Direct 到底改变了什么

Rule:按规则决定出口

Rule 模式不会简单地让所有流量走代理,而是把请求交给配置中的路由规则判断。Mihomo 官方文档说明,规则会按照配置顺序从上到下匹配,排在前面的规则优先级更高;MATCH 可以匹配所有没有被前面规则处理的请求,因此通常放在规则末尾作为兜底。具体规则类型和匹配顺序可查看 Mihomo Route Rules。

这意味着 Rule 是否有效,不只取决于模式开关,还取决于订阅规则是否成功加载、规则顺序是否合理、策略组是否存在,以及最终的 MATCH 指向哪里。例如,某个域名规则位于 MATCH 之后,就可能永远无法按预期生效;某个规则虽然命中,但对应策略组没有可用节点,也可能表现为打不开网页。

Global:所有进入内核的请求交给 GLOBAL

Global 模式会把进入 Mihomo 的流量交给全局代理逻辑,但它不自动保证一定通过某个代理节点。官方文档明确说明,Global 需要在 GLOBAL 策略组中选择代理或策略;如果 GLOBAL 当前选择的是 DIRECT,结果仍然可能是直连。使用 Global 排障时,必须打开客户端的代理组页面,确认 GLOBAL 当前选中的到底是节点、其他策略组,还是 DIRECT。

Global 适合做短时间的对照测试:如果同一个网站在 Rule 下打不开,切到 Global 并明确选择一个可用节点后重新访问,网站恢复,说明问题可能位于规则、策略组或规则命中路径;如果 Global 也失败,则应继续检查节点、DNS、系统代理或 TUN 流量入口。Global 不建议长期作为默认模式,因为它可能让本应直连的请求经过节点,增加延迟和节点流量。

Direct:所有进入内核的请求尝试直连

Direct 模式表示全局直连,但它仍然要求流量先进入 Mihomo 的处理路径。它不是关闭客户端,也不等于关闭系统代理、TUN、DNS 模块或路由功能。官方文档将 TUN 作为捕获系统流量、自动路由、DNS 劫持和按应用路由的入口;因此,模式决定流量进入内核后的处理方式,而系统代理、代理端口和 TUN 决定流量是否能够进入内核。相关入口说明见 Mihomo inbound configuration。

系统代理、代理端口与 TUN:不要把它们和模式混为一谈

很多“切换了模式但没有变化”的问题,并不是 Rule、Global、Direct 本身失效,而是测试流量根本没有经过 Mihomo。可以把连接路径拆成两层:

  1. 流量入口:应用是否使用 HTTP、SOCKS 或 Mixed 代理端口,或者系统流量是否通过 TUN 进入内核。
  2. 出口决策:流量进入内核后,使用 Rule、Global 还是 Direct 决定最终处理方式。

例如,浏览器没有设置系统代理,且没有开启有效的 TUN,那么你切换 Rule 或 Global,浏览器请求可能仍然直接连接。反过来,如果 TUN 正在捕获系统流量,切换到 Direct 也不会关闭 TUN,只会让已经进入内核的流量按直连方式处理。

如果你使用 TUN,先检查客户端是否真的创建了 TUN 网卡、自动路由是否启用,以及防火墙是否拦截内核。官方 TUN 文档列出了 enable、auto-route、auto-redirect 和 auto-detect-interface 等配置,并说明 TUN 用于捕获系统流量和自动设置路由。不要因为模式切换无效,就立刻修改 DNS、MTU 或协议栈;先确认流量入口更容易定位问题。详见 Mihomo TUN configuration。

遇到网站打不开:按这个顺序切换和验证

下面流程适合判断“规则问题、节点问题,还是流量没有进 Mihomo”。测试时尽量只改变一个变量,不要同时切换节点、DNS、TUN 和模式。

  1. 先记录当前状态。记下当前模式、使用的策略组、节点名称,以及 TUN 或系统代理是否开启。
  2. 在 Rule 模式下访问一次。访问目标网站后打开客户端的 Connections 或连接详情,查看是否出现该请求、命中的规则类型和最终代理链。
  3. 切换到 Global。不要只点击 Global 就结束,还要进入 GLOBAL 策略组,明确选择一个可用节点;如果界面显示的是 DIRECT,就不能把这次测试当成“全局代理测试”。
  4. 重新发起请求。关闭原网页或重新加载,必要时删除旧连接。Mihomo API 的连接信息包含匹配规则、规则内容和代理链,可以用来确认新请求究竟走了哪里,参考 Mihomo API。
  5. 比较结果。Global 能打开而 Rule 不能打开,优先检查规则集、规则顺序、策略组和 MATCH;Global 也打不开,优先检查节点、DNS、系统代理、TUN 和防火墙。
  6. 测试结束切回 Rule。Global 只是排障工具,不建议在没有明确需求时长期使用。

如果要比较本地网络,可以再切换到 Direct,保持同一个网站、同一台设备和其他设置不变。Direct 能打开而 Global 不能打开,可能是节点或 GLOBAL 选择问题;Direct 不能打开而 Global 能打开,则说明目标服务可能需要代理出口,或者本地网络到目标地址存在连接问题。

Rule 规则模式不生效时,检查这 5 项

  1. 确认配置真的处于 Rule。配置文件中的字段应为 mode: rule,客户端界面也应显示 Rule 或规则模式。某些客户端可能显示 Clash Meta、Mihomo 或中文名称,具体按钮名称以当前客户端为准。
  2. 确认订阅规则已加载。如果配置只导入了节点,没有成功加载 rule-providers 或规则列表,Rule 模式可能只剩下少量本地规则和 MATCH 兜底。
  3. 检查规则顺序。Mihomo 按从上到下的顺序匹配,前面的宽泛规则可能抢先命中,导致后面的域名规则不会执行。重点查看目标域名是否被更早的 RULE-SET、GEOIP、IP-CIDR 或 MATCH 处理。
  4. 检查 MATCH 的去向。MATCH,PROXY、MATCH,DIRECT 和指向某个策略组的 MATCH,结果完全不同。MATCH 通常应放在需要优先处理的规则之后。
  5. 检查策略组和出口。即使规则命中了某个策略组,如果策略组为空、节点不可用或策略组实际选择了 DIRECT,最终效果也可能与预期不同。代理组字段和默认选择可以参考 Mihomo proxy-groups configuration。

排查时建议先查看一条具体连接,而不是只看首页的模式名称。最有价值的三个信息是:请求是否进入 Mihomo、命中了哪条规则、最终代理链是否包含预期节点。

常见误区与安全回滚方法

误区一:Global 等于一定走代理。不一定。Global 还要看 GLOBAL 策略组当前选项,可能是某个节点,也可能是 DIRECT。

误区二:Direct 等于关闭客户端。不一定。Direct 只是改变进入内核后的出口决策,系统代理、TUN 和 DNS 可能仍然运行。

误区三:Rule 模式一定自动分好流量。不一定。Rule 依赖实际加载的规则、规则顺序、策略组和兜底规则。没有看到命中记录前,不要只凭网页结果猜测原因。

误区四:一切连接问题都先改 DNS 或 MTU。不建议。先固定 DNS、MTU、TUN 和节点,只切换模式并查看连接详情;确定问题属于路由或出口后,再进入 DNS、MTU 或网络层排查。

如果切换后出现断网,优先恢复到 Rule,关闭刚刚启用的 Global 或 Direct,确认系统代理和 TUN 状态没有被重复开启;如果仍然异常,再暂时关闭 TUN 或系统代理进行分流测试。修改配置文件前保留原文件副本,避免多个变量同时变化导致无法回滚。

常见问题

Mihomo 日常使用应该选择 Rule 还是 Global?

通常选择 Rule。它可以根据域名、IP、规则集和策略组进行分流。Global 更适合临时验证节点或判断规则是否导致连接失败,不建议在没有明确需求时长期使用。

Global 模式为什么还是直连?

检查 GLOBAL 策略组当前是否选择了 DIRECT。Mihomo 官方文档说明,Global 需要在 GLOBAL 策略组中选择代理或策略;只切换模式、不确认 GLOBAL 出口,不能证明流量正在经过节点。

Direct 模式是不是关闭 Mihomo?

不是。Direct 只表示全局直连处理。系统代理、代理端口、TUN、自动路由和 DNS 仍可能保持运行。若要完全停止接管流量,还需要根据客户端界面关闭系统代理或 TUN。

Rule 模式下规则不生效,最先看哪里?

先看具体连接是否进入 Mihomo,再查看命中的规则、规则内容和最终代理链。随后检查订阅规则是否加载、规则顺序、MATCH 位置、策略组是否为空,以及策略组当前是否选到了 DIRECT。

切换模式后网页结果没有变化,怎么办?

先确认测试流量确实进入 Mihomo。检查浏览器系统代理、客户端代理端口或 TUN 是否生效,然后关闭旧连接并重新加载网页。只切换模式但没有重新建立请求,可能仍在观察旧连接。

相关阅读

参考资料

  1. Mihomo 官方文档:General configuration
  2. Mihomo 官方文档:Route Rules
  3. Mihomo 官方文档:Inbound configuration
  4. Mihomo 官方文档:TUN configuration
  5. Mihomo 官方文档:Proxy-groups configuration
  6. Mihomo 官方文档:APIs