Mihomo 代理模式怎么选择?规则、全局与直连排查指南
简答:日常使用优先选择 Rule(规则模式);需要暂时让进入 Mihomo 的流量统一交给某个代理组时再用 Global(全局模式);测试本地网络或确认问题是否来自代理时使用 Direct(直连模式)。如果切换模式仍无变化,先确认配置已启用、系统代理或 TUN 确实接管流量,再看规则命中和实际出口。
定义:Mihomo 代理模式是核心对已经进入 Mihomo 的连接进行路由决策的方式,主要包括按规则分流的 Rule、统一交给代理组处理的 Global,以及统一直连的 Direct。
先试这一步:按场景选择 Mihomo 模式
如果你只是想把 Mihomo 用于日常浏览、办公和应用分流,先选择 Rule。如果某个网站在规则模式下打不开,想暂时确认代理节点本身是否可用,可以切换到 Global,但要同时确认 Global 页面选中了可用的代理或策略组。若要判断问题是否来自代理、规则或节点,则选择 Direct 做对照测试。
| 你的场景 | 建议模式 | 下一步 |
|---|---|---|
| 日常办公、浏览,希望不同网站按规则处理 | Rule | 检查规则顺序、策略组和最后的 MATCH 规则 |
| 规则模式下某个网站打不开,想临时验证代理节点 | Global | 在 GLOBAL 中确认不是 DIRECT,并选择实际可用的代理组 |
| 测试本地网络、确认是否是代理导致故障 | Direct | 记录直连结果,再恢复 Rule 复测 |
| 某个应用完全不受模式切换影响 | 先不要换模式 | 检查系统代理、应用代理、TUN 和端口是否接管该应用 |
| 国内网站变慢或内网地址异常 | 优先回到 Rule | 检查是否误用 Global,以及规则是否把本地地址送入代理 |
Mihomo 官方配置文档将 rule 定义为按规则匹配,global 定义为全局代理且需要在 GLOBAL 代理组中选择代理或策略,direct 定义为全局直连;默认工作模式为 rule。可查看Mihomo 官方通用配置文档核对当前字段含义。
Rule、Global、Direct 到底有什么区别
Rule:日常使用的默认选择
Rule 模式会按照配置中的 rules 从上到下匹配连接,命中规则后交给对应的策略组、代理节点或内置出站处理。官方文档明确说明,规则越靠前优先级越高,MATCH 可以匹配没有被前面规则处理的请求。
因此,Rule 并不自动等于“国内直连、国外代理”。实际结果取决于当前配置是否有对应的域名、IP、地理库或规则集,以及规则最终指向的是 DIRECT、代理组还是其他出站。配置里没有正确规则,或者最后的 MATCH 指向了不合适的策略,Rule 也可能表现为全部直连或大量流量进入代理。
Global:临时统一交给代理组
Global 模式适合做短时间的对照测试:让已经进入 Mihomo 的连接统一按照 GLOBAL 代理组处理。它不是“自动选择最快节点”的保证,也不是只针对某一个网站的分流规则。若 GLOBAL 当前选中的是 DIRECT,切换到 Global 后仍可能直连;若选中的是代理组,还要继续确认该代理组内部是否选中了可用节点。
Global 适合回答一个问题:“如果不考虑当前规则,统一使用这个代理组,目标网站能否打开?”测试结束后建议恢复 Rule,避免所有进入 Mihomo 的流量都长期走同一策略,影响本地服务、内网地址、延迟和流量消耗。
Direct:用于对照和本地网络测试
Direct 模式表示全局直连。它适合验证宽带、Wi-Fi、DNS、本地网络或目标网站本身是否正常,但它不能证明规则配置正确,也不能替代关闭客户端。Direct 只改变 Mihomo 对连接的出站决策;系统代理、TUN、应用自己的代理设置和客户端进程仍然可能继续影响流量是否进入 Mihomo。
官方内置出站说明将 DIRECT 定义为直接出站。需要注意,Direct 模式下如果应用没有进入 Mihomo,应用本来就会走系统网络,因此测试前应记录是否开启系统代理或 TUN,避免把“没有接管”误判为“直连模式生效”。
三种内置模式和出站行为可参考Mihomo 官方内置代理策略文档。
正确选择前,先分清代理模式与流量接管
很多“切换模式没有效果”的问题,不是 Rule、Global 或 Direct 选错,而是目标应用的流量根本没有进入 Mihomo。可以把链路拆成两层:
- 接管层:系统代理、应用代理或 TUN 决定连接是否进入 Mihomo。
- 决策层:Rule、Global、Direct 决定进入 Mihomo 后采用什么出站方式。
在桌面端,浏览器通常可能使用系统 HTTP/SOCKS 代理;部分命令行工具、游戏、后台服务或虚拟机不一定遵循系统代理。在移动端,如果没有启用对应的 VPN/TUN 接管,单纯切换模式也不一定影响其他应用。
Mihomo 官方 TUN 文档说明,auto-route 用于自动设置全局路由,将流量导入 TUN;strict-route 还会影响路由和 DNS 处理。TUN 是否启用、系统是否允许虚拟网卡、应用是否被排除,都会改变实际结果。查看Mihomo 官方 TUN 配置说明时,应以当前客户端界面和当前内核支持的字段为准。
- 浏览器受系统代理影响,但某个命令行工具不受影响:先查该工具的代理参数或环境变量。
- 所有应用都不受模式切换影响:先查系统代理、TUN 开关、权限和端口监听。
- 只有一个应用不走代理:检查应用是否使用独立代理、是否被 TUN 排除,或规则是否按进程名处理。
- 切换后局域网、打印机或内网服务异常:先从 Global 恢复 Rule,再检查局域网地址是否有 DIRECT 规则。
可照做的最短排查流程
下面的顺序用于“模式选了但结果不对”的情况。每一步只改变一个变量,并在下一步前记录结果。
- 备份当前配置。复制配置文件或导出当前配置,订阅内容、密钥和个人节点信息不要粘贴到公开页面、在线解析器或聊天群。
- 确认配置已启用。在客户端确认当前运行的确实是目标配置,而不是只导入但未激活的配置。若界面显示多个配置,先记下当前启用项。
- 先用 Rule 测试。打开一个平时应当被代理的目标,再打开一个本地或国内服务,记录两者是否都能访问。
- 再用 Global 对照。切换到 Global 后,确认 GLOBAL 选择的不是 DIRECT,并确认代理组内部已有实际节点。只测试一个目标,避免同时修改 DNS、节点和规则。
- 最后用 Direct 测试。如果 Direct 能访问而 Rule、Global 不能,问题更可能在规则、策略组、节点或代理链路;如果三种模式都不能访问,优先检查本地网络、DNS、端口和目标服务。
- 查看连接记录。如果客户端提供 Connections 或连接列表,观察目标域名是否出现、命中的规则、最终链路是否为 DIRECT 或代理组。Mihomo API 的
/connections返回连接元数据、代理链、匹配规则类型和规则内容,可参考Mihomo 官方 API 文档。 - 复测实际出口。在同一浏览器或同一应用中分别测试 Rule、Global、Direct;不要只看客户端状态灯。若出口检测结果完全不变,回到接管层检查系统代理或 TUN。
- 失败后回滚。恢复原来的 Rule、原来的策略组和原来的 DNS 设置,再逐项修改。不要把多个临时配置同时保留,避免后续无法判断变量。
按故障现象选择模式和处理方向
| 现象 | 先选什么 | 判断方法 | 下一步 |
|---|---|---|---|
| Rule 下海外网站打不开 | Global | GLOBAL 选代理组后能否打开 | 能打开:查规则命中和策略组;仍打不开:查节点、DNS、网络或认证 |
| Rule 下国内网站明显变慢 | Rule,不要长期 Global | 检查目标是否命中代理规则 | 补充或修正本地地址的 DIRECT 规则,先确认规则顺序 |
| 某个应用完全不受模式影响 | 先不换模式 | 看 Connections 中是否出现该应用连接 | 检查系统代理、应用代理、TUN 包含/排除范围和端口 |
| 想确认是不是代理节点的问题 | Direct 后再 Global | 比较直连与指定代理组的结果 | 直连正常、Global 异常时,检查节点、策略组和代理协议 |
| 切换 Global 后仍显示直连 | 保持 Global | 检查 GLOBAL 是否选择 DIRECT 或兼容出站 | 选择实际代理组,并再次查看连接链路 |
| 开启 TUN 后部分应用断网 | 先恢复原模式 | 检查 TUN 日志、路由、DNS 和防火墙 | 最小化修改,确认权限和当前客户端支持的 TUN 字段 |
规则排查不能只看“规则模式”三个字。官方规则文档列出了域名、IP、进程、网络类型和 MATCH 等规则,并明确规则按照从上到下的顺序匹配。若前面的规则已经命中,后面的规则不会按你预期继续处理,因此应优先检查命中规则和最终出站,而不是盲目反复切换模式。
具体规则类型和优先级可查看Mihomo 官方路由规则文档。
常见误区与回滚建议
误区一:Global 就是所有设备都走代理
不准确。Global 是 Mihomo 的运行模式,首先影响已经进入 Mihomo 的连接。其他设备是否进入该实例,还取决于是否开启局域网访问、设备是否使用对应代理地址,以及路由或 TUN 是否覆盖这些设备。不要把 Mihomo 模式和整个局域网的网络状态混为一谈。
误区二:Rule 一定会自动分好国内外流量
不一定。Rule 只负责按当前配置匹配。规则集、策略组、DNS 解析结果和 MATCH 兜底都会影响结果。发现某个域名走错路径时,应先在连接记录中查看命中的规则和链路。
误区三:Direct 等于关闭 Mihomo
不等于。Direct 只是将进入 Mihomo 的连接按直连方式处理。要做真正的“未接管”对照,还要暂时关闭系统代理或 TUN,并记录改动,测试结束后按原设置恢复。
误区四:看到连接列表就代表代理生效
连接出现在 Mihomo 中,只能说明该连接经过了 Mihomo;还要看它的命中规则、代理链和实际出口。Mihomo API 文档中的连接对象包含 chains、rule 和 rulePayload 等字段,可用来区分“进入了内核”和“确实经过了代理节点”。
推荐的回滚顺序是:恢复 Rule → 恢复原策略组 → 恢复原系统代理或 TUN → 清理临时 DNS 或缓存修改 → 重新打开目标应用。每次只恢复一层,才能知道哪一步解决了问题。
结论:大多数人应该怎么选
日常使用选 Rule,临时验证节点选 Global,测试本地网络选 Direct。如果 Global 没有效果,先检查 GLOBAL 是否误选 DIRECT;如果三种模式切换都没有变化,优先检查流量是否进入 Mihomo;如果 Rule 下只有部分网站异常,再检查规则顺序、策略组、DNS 和 MATCH 兜底。
本文是独立第三方使用指南,不代表翻墙侠官方。Mihomo 的菜单名称、客户端封装方式和可用字段可能随版本变化,实际操作时以当前客户端界面和 Mihomo 官方资料为准。
常见问题
Mihomo 日常使用应该选择哪种代理模式?
通常优先选择 Rule(规则模式),因为它会按当前配置中的规则、策略组和 MATCH 兜底处理连接。若规则或策略组配置不完整,Rule 不一定自动实现预期分流。
Mihomo 的 Global 模式是不是所有流量都会走代理?
不是。Global 主要影响已经进入 Mihomo 的连接,而且还要看 GLOBAL 当前选择的是代理组还是 DIRECT。系统代理、应用代理和 TUN 决定流量是否进入 Mihomo。
为什么切换到 Global 后仍然是直连?
先检查 GLOBAL 策略组是否选中了 DIRECT,或代理组内部是否没有选中可用节点。如果连接列表仍显示 DIRECT,再检查当前配置是否真的已启用。
Direct 模式和关闭系统代理有什么区别?
Direct 只改变进入 Mihomo 后的出站决策,不等于关闭 Mihomo、系统代理或 TUN。要做未接管测试,还需要记录并暂时关闭对应的系统代理或 TUN 设置。
Rule 模式下某个应用不走代理怎么办?
先查看 Connections 中是否出现该应用的连接。没有出现时,检查系统代理、应用独立代理、TUN 接管范围和排除项;出现后,再检查命中的规则、策略组和最终链路。
规则模式是否一定代表国内直连、国外代理?
不一定。实际结果取决于配置中的域名、IP、规则集、策略组和 MATCH 兜底。应以连接记录中的命中规则和最终链路为准,不要只根据模式名称判断。
相关阅读
- Mihomo 订阅配置导入失败时先确认配置是否真正启用
- Mihomo TUN 模式无法接管流量时的日志、路由和 DNS 排查
- 网络速度慢时如何区分延迟、带宽与丢包
- connection refused 连接失败的端口与监听排查