Mihomo规则模式和全局模式有什么区别?一张表看懂怎么选
简答:一句话结论:日常使用优先选择规则模式,让不同请求按规则分别直连或代理;全局模式会把已经进入Mihomo内核的请求交给GLOBAL策略组处理,但不代表自动选择最快节点。规则异常、海外服务打不开时,可以在保持系统代理或TUN不变的情况下临时切换全局测试。
定义:Mihomo规则模式按配置中的rules逐条匹配请求,全局模式则通常绕过普通分流规则,把请求交给GLOBAL策略组选择出口。
先看结论:规则、全局、直连到底差在哪里
本文是第三方使用指南站内容,不代表任何客户端或服务的官方说明。Mihomo配置中的运行模式有rule、global和direct三类;官方文档将它们分别定义为规则匹配、全局代理和全局直连。
| 对比项 | 规则模式 rule | 全局模式 global | 直连模式 direct |
|---|---|---|---|
| 是否查看普通rules | 会,按顺序匹配 | 通常不按普通rules分流 | 不按普通rules分流 |
| 最终出口 | 由命中的DIRECT、代理组或REJECT决定 | 由GLOBAL策略组当前选择决定 | 直接使用本地网络 |
| 国内外流量 | 可以分别处理 | 通常交给同一个GLOBAL出口 | 全部尝试本地直连 |
| 日常适用 | 国内外服务同时使用 | 规则异常时临时测试 | 验证本地网络或关闭代理分流 |
| 常见风险 | 规则遗漏、顺序不合适 | GLOBAL误选DIRECT或不合适节点 | 目标服务本地无法访问 |
Mihomo官方说明指出,global模式需要在GLOBAL策略组中选择代理或策略;因此,全局模式不等于自动选择最快节点,也不等于所有请求都会自动走代理。参考:Mihomo全局配置与运行模式。
一条请求在Mihomo里是怎么走的
可以把问题拆成两个环节:第一步是请求有没有进入Mihomo,第二步是进入后由哪个模式决定出口。
- 先进入内核:使用系统代理的应用,需要把请求发到Mihomo的HTTP、SOCKS或混合代理端口;启用TUN时,Mihomo可以接收更广泛的系统流量,包括不主动遵循系统代理设置的应用。官方文档将代理端口、TUN和监听器列为不同的流量接入方式,参考:Mihomo入站配置。
- 再决定出口:请求进入内核后,
rule模式会检查rules;global模式通常交给GLOBAL策略组;direct模式则直接连接目标。
所以,切换规则模式和全局模式,不能修复“请求根本没有进入Mihomo”的问题。如果浏览器没有使用系统代理、TUN没有启用或被防火墙拦截,切换模式可能看起来完全没有效果。
规则模式的匹配顺序也很重要。Mihomo官方规则文档说明,rules会从上到下匹配,排在前面的规则优先级更高;MATCH通常作为兜底规则匹配剩余请求。参考:Mihomo路由规则。
真实访问场景:两种模式会怎样处理请求
| 场景 | 规则模式可能的处理 | 全局模式可能的处理 | 判断重点 |
|---|---|---|---|
| 本地常用网站 | 命中DIRECT,直接访问 | 交给GLOBAL当前出口 | 全局下可能增加绕行和延迟 |
| 需要代理的海外服务 | 命中代理组后使用所选节点 | 使用GLOBAL当前节点或策略 | 两者都可能成功,但出口选择逻辑不同 |
| 广告域名 | 可能命中REJECT | 不一定按该普通规则拦截 | 不要用全局模式判断广告规则是否生效 |
| 规则未覆盖的新域名 | 继续向下匹配,最后由MATCH兜底 | 直接交给GLOBAL | 全局成功不代表规则已经正确 |
上表是基于模式定义和规则处理方式的判断框架,具体结果仍取决于当前配置中的rules、代理组、DNS和流量接入方式。尤其要检查GLOBAL策略组是否实际选中了可用代理,而不是DIRECT。
什么时候该用规则模式,什么时候临时切全局
- 日常使用:优先规则模式。它适合让不同域名、IP或进程分别走DIRECT、代理组或REJECT,减少不必要的绕行。
- 怀疑规则遗漏:保持当前系统代理或TUN设置不变,先确认GLOBAL策略组有明确的代理选择,再临时切全局。
- 海外服务打不开:如果全局模式可以打开,而规则模式不行,优先检查命中的规则、规则顺序和MATCH兜底,不要直接认定节点故障。
- 本地网络排查:切换直连模式测试。如果直连也失败,问题可能在本地网络、DNS或目标服务本身;如果直连失败而全局成功,再回头检查规则和出口。
全局模式的代价是本地流量也可能经由代理出口,可能增加延迟、消耗更多代理流量,且不一定适合局域网设备、打印机或本地服务。排查完成后,建议恢复规则模式。
可照做的切换与排障步骤
- 打开Mihomo客户端的运行模式页面,确认当前配置对应的模式名称。不同客户端界面名称可能略有差异,配置文件中通常对应
mode: rule、mode: global或mode: direct。 - 先确认流量接入方式:如果依靠系统代理,检查客户端是否已开启系统代理;如果依靠TUN,检查TUN是否启用、核心是否正常运行。
- 进入代理组页面,找到
GLOBAL,检查当前选择的是具体节点、代理策略,还是DIRECT。全局模式必须确认这一项。 - 保持第一步中的接入方式不变,只把模式从
rule切换为global,然后重新访问同一个目标。 - 如果全局成功,查看连接详情或日志,记录实际使用的代理组、节点、目标域名和错误信息,再切回规则模式检查对应规则。
- 如果全局也失败,再测试直连模式,并检查DNS、节点连通性、TUN权限或系统代理设置。不要在同时更换节点、DNS和模式后下结论。
- 排查结束后恢复规则模式,并确认本地网站、需要代理的服务和局域网资源分别符合预期。
如果客户端提供连接详情或规则命中信息,优先查看实际命中的规则和出口。Mihomo API文档也提供了读取当前运行配置和规则信息的接口说明,可用于高级排查:Mihomo API文档。
配置文件中如何识别三种模式
在配置文件中,运行模式通常写在顶层的mode字段:
mode: rule:按rules进行分流。mode: global:使用全局代理逻辑,并依赖GLOBAL策略组的选择。mode: direct:全局直连。
最小示意如下:
mode: rule
不要只修改mode就判断问题已解决。还要同时确认代理组名称、GLOBAL选择、rules末尾是否有可用的MATCH规则,以及请求是否真的进入Mihomo。若配置由客户端生成或订阅提供,字段和界面支持情况应以当前客户端实际显示为准。
常见误区与最小判断法
- 误区一:全局模式就是最快节点。实际上,全局模式只是改变路由方式;GLOBAL当前选中的节点或策略决定实际出口。
- 误区二:切到全局后仍打不开,说明规则没问题。全局也依赖流量进入内核、GLOBAL选择、DNS和节点连通性,不能单凭一次失败判断规则。
- 误区三:直连模式就是关闭客户端。直连模式仍可能保留客户端运行和流量接入,只是已进入内核的请求直接连接目标。
- 误区四:规则模式变慢一定是节点问题。可能是请求命中了代理规则、DNS解析路径变化或规则顺序不符合预期,应先查看连接详情。
最小闭环可以记成:接入方式不变 → 确认GLOBAL出口 → 切全局测试 → 查看命中与日志 → 恢复规则。这样比同时重装客户端、替换配置和更换节点更容易定位原因。
常见问题
Mihomo日常应该用规则模式还是全局模式?
同时访问本地和需要代理的服务时,通常优先规则模式。它可以根据域名、IP、进程等规则分别选择直连或代理,避免所有流量都交给同一个GLOBAL出口。
为什么切换到全局模式后,流量还是没有走代理?
先检查GLOBAL策略组是否选中了具体代理或策略,而不是DIRECT;再确认系统代理或TUN确实把请求送入Mihomo。全局模式不会自动替你选择节点,也不能接管未进入内核的流量。
规则模式打不开,全局模式能打开,说明什么?
这通常说明接入方式和至少一个代理出口可能可用,下一步应检查规则是否遗漏、顺序是否靠后、MATCH是否兜底,以及规则命中的代理组是否选择了错误出口。它不能单独证明节点或DNS一定正常。
全局模式会不会让本地网站变慢?
可能会。因为本地流量也可能交给GLOBAL策略组处理,产生额外绕行、延迟或代理流量消耗。排障完成后,如果日常需要国内外分流,建议恢复规则模式。
直连模式和关闭系统代理是一回事吗?
不是。直连模式主要表示进入Mihomo后的请求直接连接目标;系统代理和TUN决定请求是否进入Mihomo,两者属于不同层次。