Mihomo代理模式怎么选?Rule、Global、Direct区别与排查步骤
简答:日常使用通常优先选择 Rule;需要暂时让已接管的流量统一测试某个代理出口时用 Global;需要暂停代理或对照本地网络时用 Direct。注意,切换运行模式不等于开启系统代理或 TUN,最终还要确认应用流量确实进入 Mihomo。
定义:Mihomo代理模式是内核处理已接入流量时采用的顶层路由策略,主要包括按规则分流的 Rule、统一交给 Global 策略组的 Global,以及统一直连的 Direct。
先看结论:三种模式按场景怎么选
如果你只是想正常使用 Mihomo,先选 Rule。它会按照配置中的规则顺序处理请求;规则通常从上到下匹配,排在前面的规则优先级更高,最后可以用 MATCH 作为兜底。Mihomo规则文档说明了规则匹配顺序和 MATCH 的作用。
| 场景 | 优先选择 | 判断重点 |
|---|---|---|
| 日常浏览和按域名分流 | Rule | 检查请求命中了哪条规则、哪个策略组以及最终出口 |
| 临时测试某个代理出口 | Global | 确认 GLOBAL 策略组实际选中了代理,而不是 DIRECT |
| 暂停代理或对照本地网络 | Direct | 确认请求仍然进入 Mihomo,再判断本地网络是否正常 |
| 应用不遵循系统代理 | 先检查TUN或应用自身代理 | 单独切换 Rule、Global、Direct,可能无法改变未被接管的流量 |
最短操作路径:先确认配置已激活,再选择运行模式;随后确认系统代理或 TUN 已启用;打开一个新页面或重新发起连接;最后在连接记录或日志中查看规则和出口。不同客户端的菜单名称可能不同,不要把某个客户端的固定位置当成所有 Mihomo 客户端都相同。
Rule、Global、Direct分别是什么
Rule:按规则分流,通常适合日常使用
Rule 模式会把已经进入 Mihomo 的请求交给规则系统处理。规则可以按域名、IP、端口、进程或其他条件匹配,并把请求交给某个代理组、具体节点、DIRECT 或 REJECT。规则是从上到下匹配,因此前面的宽泛规则可能抢先命中,排查时要先看实际命中的规则,而不是只看你以为应该命中的规则。
Global:交给GLOBAL策略组统一决定
Global 模式不是简单地“自动选择最快节点”。官方配置说明将其定义为全局代理,并要求在 GLOBAL 策略组中选择代理或策略;如果 GLOBAL 实际选中的是 DIRECT,切换到 Global 后仍可能表现为直连。Mihomo通用配置文档明确列出了 Rule、Global、Direct 三种运行模式及 Global 的选择要求。
因此,Global 更适合短时间做对照测试:先选一个明确的代理节点或代理策略,再重新发起同一个请求。如果 Global 成功而 Rule 失败,问题更可能出在规则命中、规则集、策略组选择或 DNS 解析路径,而不是先认定节点不可用。
Direct:统一直连,用来暂停代理或做对照
Direct 模式表示对已经进入 Mihomo 的流量采用全局直连。它适合暂时排除代理节点、策略组和规则分流因素。例如某个网页打不开时,可以先切到 Direct,重新发起请求;如果 Direct 也失败,应优先检查本机网络、DNS、系统防火墙或目标服务本身,而不是继续更换节点。
代理模式不等于系统代理或TUN
这是最容易误判的一点:运行模式决定 Mihomo 如何处理已进入内核的流量,系统代理和 TUN 决定哪些应用流量会进入内核。官方控制面板文档将 System Proxy 描述为操作系统代理设置,应用需要指向 Mihomo 的代理端口;TUN 则通过虚拟网络接口在网络层接管流量,可以覆盖不遵循单独代理设置的应用。Mihomo控制面板网络概念说明对两者作了区分。
所以可能出现三种情况:第一,Rule 选对了,但系统代理没有打开,浏览器请求根本没有进入 Mihomo;第二,Global 已经选好代理,但某个应用不遵循系统代理;第三,TUN 已开启,但权限、路由、DNS 或防火墙导致流量没有按预期处理。Mihomo文档将 TUN 作为接收系统流量的入口,并列出 auto-route、DNS hijack 和严格路由等配置项,具体行为会受系统和客户端实现影响。Mihomo入站配置文档和Mihomo TUN文档可用于核对配置字段。
排查时不要只反复切换三种模式。正确顺序是:确认内核运行;确认配置已激活;确认系统代理、应用代理或 TUN 已接管目标应用;再观察连接记录是否出现。
按现象排查:选错模式还是流量没进来
- Rule失败,Global成功:先查看 Rule 下的连接记录,确认命中的规则和策略组;再检查规则顺序、规则集是否更新、策略组是否选择了可用出口。若 Global 成功,说明至少有一条统一出口路径可以工作,但不能据此证明所有规则都正确。
- Global失败,Direct成功:检查 GLOBAL 策略组当前成员,确认不是 DIRECT、空组或未激活的节点;然后重新发起连接。Mihomo官方文档说明 Global 需要选择代理或策略,因此不能只看页面上显示了“Global”就判断代理已经生效。
- Direct也失败:先关闭复杂配置,检查本机宽带或移动网络、DNS解析、防火墙和目标网站是否可访问。Direct 只是让已进入 Mihomo 的流量直连,不会修复本地网络故障。
- 三种模式都没有连接记录:优先检查系统代理、应用内代理或 TUN 是否开启,以及目标应用是否实际使用了这些入口。没有连接记录时,继续切换 Rule、Global、Direct 通常没有意义。
- 切换后页面仍显示旧结果:关闭旧页面或重新发起请求,再观察新连接。浏览器连接、DNS缓存和应用自身连接复用都可能让旧结果继续显示,因此一次旧连接不能作为切换后的判断依据。
一套可照做的选择与验证流程
- 保存当前配置:如果要修改 YAML 或策略组,先复制一份原配置。不同客户端可能把配置编辑、激活和运行状态放在不同位置。
- 日常先选 Rule:确认配置已激活,并检查系统代理或 TUN 的实际状态。访问一个平时能稳定打开的站点,随后在连接页面查看是否出现新连接。
- 需要测试统一出口时选 Global:进入代理组选择页面,确认 GLOBAL 当前选择的是目标代理或代理策略,不要只确认运行模式文字。若客户端支持连接详情或实时日志,可查看最终出口和命中信息。
- 需要对照本地网络时选 Direct:切换后重新打开页面或重新发起请求。若 Direct 正常、Global 异常,继续检查 GLOBAL 策略组和节点;若 Direct 也异常,转查本地网络与 DNS。
- 测试完成后恢复 Rule:Global 和 Direct 更适合临时对照,不建议在没有明确目的时长期使用。恢复 Rule 后再次发起新连接,确认规则分流恢复。
如果使用控制面板,可优先利用连接追踪、规则查看和日志功能确认状态。官方控制面板项目列出了连接管理、规则查看和实时日志等能力,但具体入口仍可能随客户端版本或封装方式变化。
风险与回滚:避免把模式问题扩大成配置问题
- 不要一次改多个变量:先只改运行模式,再只改 GLOBAL 选择,再检查系统代理或 TUN,这样才能知道是哪一步产生影响。
- 不要把 Global 当作“全设备代理”:它只处理已经进入 Mihomo 的流量;未接入系统代理、应用代理或 TUN 的应用不一定受影响。
- 不要把 Direct 当作退出客户端:内核、系统代理或 TUN 可能仍处于运行状态,Direct 只是改变路由策略。需要完全停止接管时,应按客户端提供的停止系统代理、关闭 TUN 或退出内核选项操作。
- 回滚方法:恢复原来的运行模式和原策略组选择,关闭本次新增的 TUN、DNS 或规则改动,重新激活配置并发起新连接。若无法恢复,使用修改前的配置副本。
常见问题
Rule是不是永远比Global好?
不是。Rule 通常更适合日常分流,但它依赖规则顺序、规则集、策略组和 DNS 等配置。Global 适合临时验证统一出口,Direct 适合做本地网络对照。应按目标选择,而不是把某一种模式当成固定答案。
Global模式下为什么还是直连?
先检查 GLOBAL 策略组是否选中了 DIRECT,或者当前配置是否没有可用代理成员。官方文档明确说明 Global 需要选择代理或策略;运行模式显示为 Global,并不等于 GLOBAL 已经选择了代理。
切换到Rule后,某个应用还是没有走代理怎么办?
先看连接记录中是否出现该应用的请求。没有记录时,检查系统代理、应用自身代理或 TUN;有记录但出口不对时,再检查命中规则和策略组。不要只重复切换运行模式。
切换模式后是否需要重启客户端?
通常应先重新发起连接或刷新页面,再根据新连接判断。是否需要重启取决于客户端对配置激活和运行模式切换的实现;如果页面状态没有变化,按照客户端提供的重新加载配置或重启内核入口操作,并保留原配置以便回滚。
常见问题
Mihomo日常使用应该选哪个代理模式?
通常先选Rule,因为它按规则分流;同时确认系统代理或TUN已接管目标应用,并通过连接记录验证请求确实进入Mihomo。
Global模式为什么没有代理效果?
检查GLOBAL策略组当前是否选中了代理。如果GLOBAL选中DIRECT,Global模式仍可能表现为直连;还要确认目标应用的流量确实进入Mihomo。
Direct模式和关闭Mihomo一样吗?
不一样。Direct是对已经进入Mihomo的流量采用直连,内核、系统代理或TUN可能仍在运行;完全停止接管需要使用客户端的关闭或退出选项。
Rule模式失败但Global模式成功,应该查什么?
重点检查规则顺序、规则集、DNS解析、命中的策略组和最终出口。Global成功只能说明统一出口路径可用,不能证明Rule配置正确。