Mihomo 代理模式怎么选?Rule、Global、Direct 区别与排障
简答:日常使用优先选 Rule;需要确认节点或绕过规则排查时临时切 Global;验证本地直连是否正常时选 Direct。注意:模式只决定 Mihomo 内核如何处理已经进入的连接,系统代理、应用代理和 TUN 是否接管流量仍要单独确认。
定义:Mihomo 代理模式是内核对进入连接进行路由决策的运行方式,主要包括按规则匹配的 Rule、统一代理的 Global 和统一直连的 Direct。
先看结论:三种模式怎么选
如果你只是想让不同目标按配置自动分流,选择 Rule。如果 Rule 下某个网站打不开,想判断是规则命中错误、策略组选择错误还是节点问题,可以短时间切到 Global。如果要确认目标在当前网络下能否直接访问,则切到 Direct。
| 模式 | 实际含义 | 适合场景 | 不适合用来判断什么 |
|---|---|---|---|
rule | 按 rules 从上到下匹配,再交给对应的策略组或出站 | 日常使用、按目标分流 | 不能仅凭模式判断某个目标一定走代理 |
global | 使用 GLOBAL 策略组或其中选定的代理/策略 | 临时统一出口、排查规则是否导致异常 | 不能忽略 GLOBAL 当前是否选成了 DIRECT |
direct | 全局直连 | 验证本地网络、DNS 或目标本身是否可用 | 不能代表客户端已经停止接管流量 |
官方配置说明将三者定义为规则匹配、全局代理和全局直连,并说明 Global 仍需要在 GLOBAL 策略组中选择代理或策略。可查看 Mihomo 全局配置文档。
Rule、Global、Direct 容易混淆的五个层次
- 模式:决定内核采用 Rule、Global 还是 Direct 处理连接。
- 规则:决定某个域名、IP、端口或进程匹配到哪个目标。规则按从上到下的顺序匹配,上方规则优先;
MATCH可以匹配没有被前面规则处理的请求。 - 策略组:规则命中后可能进入一个选择组、自动测速组或故障转移组,最终还要看该组当前选中的出站。
- 节点或出站:这是实际建立连接的对象。Rule 模式并不等于所有流量都会使用同一个节点。
- 系统代理与 TUN:系统代理通常只影响遵循操作系统代理设置的应用;TUN 通过虚拟网卡和路由接管更多系统流量。它们决定流量是否进入 Mihomo,不能用来替代模式选择。
官方面板文档也把 Running Mode、System Proxy 和 TUN 分开定义,因此“开了 Global”不等于所有应用都已经进入 Mihomo。可参考 Mihomo 面板术语说明 和 Mihomo TUN 配置文档。
最短可执行步骤:按场景切换模式
- 先备份:在 Mihomo 客户端中找到当前配置或活动配置的文件管理入口,复制一份 YAML 或导出配置。不同客户端菜单名称可能不同,以当前版本界面为准。
- 日常使用选 Rule:打开运行模式,将
mode设为rule,或在客户端选择 Rule。访问一个目标后,打开连接详情,记录命中的规则、策略组和最终出站。 - Rule 下打不开时切 Global:先不要改规则。切换到 Global,并检查 GLOBAL 策略组当前是否选中了可用的代理出站,而不是 DIRECT 或空策略。重新建立连接后再测试。
- Global 能用、Rule 不能用:重点查看 Rule 的命中结果。若连接详情显示目标命中了 DIRECT、REJECT 或错误策略组,应检查规则顺序、规则集更新状态和 MATCH 兜底。官方规则文档说明规则按从上到下匹配,
MATCH匹配所有未被前面条件处理的请求,详见 Mihomo 路由规则文档。 - 验证直连能力时选 Direct:切换到 Direct,关闭目标页面后重新打开,记录是否仍然失败。Direct 也失败,问题可能在本地网络、DNS、目标服务或应用本身;Direct 正常而 Global 正常、Rule 异常,则优先回查规则。
- 检查接管方式:如果客户端面板没有连接记录,先确认系统代理已指向 Mihomo 的代理入口,或确认 TUN 已启用并成功创建虚拟网卡。不要只看浏览器是否能打开页面。
- 复测并回滚:每次只改一个变量,重新建立新连接,再记录模式、策略组、命中规则和结果。排查结束后恢复 Rule,并撤销临时改动。
网站打不开时,推荐按这个顺序排查
最容易误判的情况是“Global 也开了,但仍然直连”或“Rule 下只有部分应用异常”。建议按以下顺序缩小范围:
- 确认流量是否进入 Mihomo:查看连接面板是否出现目标域名或目标 IP。没有记录时,优先检查系统代理、应用代理或 TUN,而不是先改规则。
- 查看 Rule 的命中信息:记录规则类型、匹配内容和最终策略组。官方 API 文档显示,规则信息可以包含索引、类型、匹配内容、目标代理及命中次数等字段;客户端是否展示这些字段取决于界面实现,可参考 Mihomo API 文档。
- 验证策略组最终出站:Rule 命中代理组后,检查该组当前选中的具体出站;Global 则直接检查 GLOBAL。不要把“命中了代理组”误认为“已经由某个节点成功连接”。
- 区分 DNS 与路由问题:如果域名无法解析、解析结果异常或仅 IP 访问表现不同,检查 DNS 配置、DNS 劫持和 IPv4/IPv6;如果连接记录明确命中错误策略,再回到规则顺序。
- 重新建立连接:切换模式、策略组或节点后,关闭旧页面或断开旧连接再测,避免把仍在复用的旧连接当成新配置结果。
如果只想做对照测试,可以使用“Rule → Global → Direct”的顺序:Rule 判断日常分流,Global 判断统一代理路径,Direct 判断本地直连路径。三种模式的结果只能说明当前接管方式和配置下的表现,不能单独证明所有流量都经过同一路径。
配置文件中怎么写,哪些内容不要直接复制
如果当前客户端允许编辑主配置,可以先确认运行模式字段类似下面的形式:
mode: rule
把它临时改成 global 或 direct 前,应先保存原文件。字段是否可直接编辑、配置是否会被远程配置覆盖,取决于客户端的配置管理方式;不确定时优先使用客户端界面切换。
Rule 模式还必须检查规则列表末尾是否存在合适的兜底项。MATCH 只负责匹配剩余请求,最终使用哪个策略仍由它后面的目标决定。例如,MATCH,DIRECT 会把未匹配请求交给直连,而不是自动选择代理。规则示例和优先级以 官方路由规则文档 为准。
不要为了“全局生效”同时随意打开系统代理、TUN、多个应用内代理和自定义 DNS。多个接管层叠加后,出现连接重复、DNS 结果不一致或部分应用异常时,很难判断是哪一层造成的。建议一次只保留一种主要接管方式进行复测。
不同故障现象对应怎么切模式
| 现象 | 先切什么 | 观察重点 | 下一步 |
|---|---|---|---|
| Rule 下目标打不开 | Global | GLOBAL 是否选中代理出站 | Global 正常则检查规则命中和策略组 |
| Global 也打不开 | Direct | 直连是否也失败 | 两者都失败时检查接管、DNS、本地网络或节点连通性 |
| Direct 正常,Global 失败 | 保持 Global | GLOBAL 出站、节点连接和连接日志 | 更换出站或检查节点配置 |
| 浏览器正常,某应用异常 | 不要立即改模式 | 应用是否遵循系统代理,TUN 是否接管 | 检查应用代理设置、TUN 和 DNS |
| 模式切换后结果不变 | 重新建立连接 | 新连接是否出现在面板 | 关闭旧连接并确认实际命中信息 |
常见问题
Mihomo 日常应该选 Rule 还是 Global?
通常先选 Rule,因为它可以按照规则把不同目标交给不同策略。Global 更适合临时统一代理或排查 Rule 是否误匹配,不建议在没有确认 GLOBAL 出站的情况下把它当作固定修复方案。
Global 模式为什么仍然可能直连?
Global 需要检查 GLOBAL 策略组当前选中的目标。如果选中的是 DIRECT、空策略或不可用出站,Global 不会自动替你选择一个可用节点。切换后应重新建立连接,再查看连接详情和最终出站。
Rule 模式下网站打不开,应该先改成 Global 吗?
可以短时间切换 Global 做对照,但不要立刻重写规则。若 Global 正常而 Rule 异常,记录 Rule 的命中规则、策略组和最终出站,优先检查规则顺序、规则集状态和 MATCH 兜底。
Direct 模式是不是等于关闭 Mihomo?
不是。Direct 只是把运行模式设为全局直连;系统代理、TUN、连接日志和客户端进程仍可能保持运行。要完全停止接管,还需要按当前客户端的停止、关闭系统代理或关闭 TUN 选项操作。
Rule、Global、Direct 会影响 DNS 吗?
模式本身主要决定连接路由,DNS 是否被接管还取决于客户端的 DNS 配置、TUN 的 DNS 设置、系统代理和应用行为。遇到域名解析异常时,应同时查看 DNS 请求、IPv4/IPv6 和连接日志,不能只根据出口地址判断结果。
切换模式后为什么网页还是显示旧结果?
可能复用了旧连接、浏览器缓存或应用内部连接。切换模式后关闭目标页面,必要时重启应用,再确认新连接是否出现在 Mihomo 面板中,并记录新的命中规则和最终出站。
相关阅读
- 继续检查 Mihomo DNS 劫持与 TUN 配置
- 了解 Mihomo fake-ip 与 redir-host 的区别
- 查看 Mihomo 配置导入与 YAML 核验步骤
- 网站仍打不开时按 DNS、分流和节点继续排查