帮你讲清楚 Rule / Global / Direct 三种模式区别
2026-02-27
我们用最通俗、最“工程师脑回路”的方式讲清楚这三个模式。你可以把 Mihomo/Clash 理解成一个“流量路由引擎”。每一条网络请求都会被问一句话:
“这条流量走哪条路?”
而 Rule / Global / Direct,本质上是三种不同的“决策方式”。
先说整体逻辑。
所有网络请求都会经过这样一个流程:
程序发起请求 → 被系统代理接管 → 交给 Mihomo → Mihomo 决定走哪条策略 → 再转发出去。
三种模式的区别就在于“决定怎么转发”。
第一种:Direct(直连模式)
这是最简单的一种。
它的逻辑就是:
所有流量 → 不走代理 → 直接本地出口。
你可以理解成:
把整个代理系统“旁路”了。
就像你在 PHP 里写了个路由分发器,但直接 return 原始逻辑。
适合场景:
你不想翻墙
或者测试网络是否正常
或者怀疑代理出问题
一旦切到 Direct,所有国外网站也不会经过代理。
这是“完全不代理模式”。
第二种:Global(全局模式)
逻辑非常粗暴:
所有流量 → 全部走代理节点。
不管是百度、B站、微信
还是 Google、YouTube
统统走代理。
就像:
iptables 直接强制所有流量走一个出口。
这是“强制全部翻”。
适合场景:
刚买机场
懒得配规则
测试节点是否正常
局域网限制很复杂
缺点是:
国内网站也绕到国外再回来
延迟变高
有时会触发风控
简单理解:
Direct 是完全不用代理
Global 是所有流量都代理
第三种:Rule(规则模式)
这是最核心、最智能的模式。
逻辑是:
每条流量 → 按规则匹配 → 决定走代理还是直连。
比如规则可能是:
域名包含 google.com → 走代理
IP 属于中国 → 直连
流媒体域名 → 指定香港节点
广告域名 → REJECT
这就是所谓的“分流”。
你可以理解成一个:
if else 大量匹配系统。
伪代码大概是:
if 域名在国内列表:
直连
elif 域名在国外列表:
走代理
elif 命中广告规则:
拒绝
else:
默认策略
这是最推荐的模式。
因为:
国内网站 → 速度最快
国外网站 → 自动代理
不用手动切换
这是一个“智能路由模式”。
真正日常使用都应该用 Rule。
现在我用一个表帮你彻底区分清楚。
模式 决策方式 流量走向 适合人群
Direct 不判断,全部直连 全部本地出口 不翻墙/排查
Global 不判断,全部代理 全部走一个代理节点 临时全局
Rule 按规则逐条判断 分流处理 长期稳定使用
再讲一个很重要的工程级理解。
你现在截图里看到的:
GLOBAL
DIRECT
REJECT
这不是“模式”。
这是“策略组”。
模式是:
Rule / Global / Direct
策略组是:
具体走哪个出口。
比如在 Rule 模式下:
有一条规则写着:
MATCH → GLOBAL
那它最终会走 GLOBAL 这个策略组。
然后 GLOBAL 组里你可以选:
香港节点
日本节点
自动选择
DIRECT
这又是第二层决策。
所以:
模式决定“怎么判断”
策略组决定“具体走谁”
再用一句话帮你记住:
Direct = 全部不代理
Global = 全部代理
Rule = 智能分流
如果你平时只是正常使用:
建议一直用 Rule。
Global 只在测试节点时用。
Direct 只在排错时用。
最后给你一个工程师级记忆方式:
Direct → return origin
Global → proxy_all()
Rule → route_by_rules()
如果你愿意,我可以再给你讲:
规则是按什么顺序匹配的
为什么顺序错了会全部走代理
或者为什么有时明明是国内网站却走代理
那是 Rule 模式真正的核心。
发表评论: