规则、全局与直连:Clash 分流模式怎么选
一句话结论
日常用规则模式:国内域名直连、国外域名走节点,既省流量也不拖慢国内网站。全局模式把所有流量塞进节点,只适合排查问题或规则没覆盖某个站点时临时使用。直连模式相当于关闭代理但保留客户端运行。开了 Clash 后国内网站变慢,多数是误用了全局模式或规则集过期。
「模式」这个词被放在 Clash 主界面最显眼的位置,却很少有人说清它到底在决定什么。它决定的不是速度,也不是哪些程序会被代理接管,而是一个更靠前的问题:一个已经被客户端接住的请求,下一步往哪儿走——直接从本地网络出去,还是交给某个节点转发。
规则模式是三者中唯一会逐条判断目标地址的模式。访问国内域名时它让流量原路直出,只有被规则判定为境外的目标才丢给节点。全局模式跳过全部判断,把所有请求一律塞进当前选中的节点;直连模式反过来,谁都不走节点,客户端还在运行,接管关系也还在,但效果等同于没开代理。
最常见的误操作,是某个网站打不开就顺手切到全局。这个动作确实经常「有效」,代价却是把一个补一条规则就能解决的局部问题,换成了全部流量绕远路:国内网站变慢、套餐流量翻倍消耗,部分银行、政务和运营商自助站点还会因为出口 IP 在境外而直接拒绝服务。留在规则模式、找出没命中的那一条,才是成本更低的路。
三种模式分别把流量送去了哪里
| 模式 | 判断依据 | 国内域名 | 境外域名 | 适合什么时候用 | 主要副作用 |
|---|---|---|---|---|---|
| 规则(Rule) | 逐条匹配规则集 | 直连 | 走节点 | 日常长期使用 | 规则没收录的站点会走错 |
| 全局(Global) | 不判断,一律代理 | 走节点 | 走节点 | 临时排查、规则缺失时应急 | 国内站变慢、流量翻倍、部分站点拒绝服务 |
| 直连(Direct) | 不判断,一律不代理 | 直连 | 直连 | 排除代理干扰、临时下大文件 | 境外站点全部不可访问 |
这张表里最容易被忽略的是最后一列。三种模式的差别不在「哪个更强」,而在各自的失败方式不同:规则模式的失败是个别站点走错通道,全局模式的失败是全体绕路,直连模式的失败是境外全断。选模式,本质上是在选你更能接受哪一种失败。
为什么日常应该一直待在规则模式
理由有三条,分量依次递减。
第一条是流量成本。多数套餐按用量计费,国内视频、网盘、系统更新这类大流量动作一旦被送进节点,消耗的是你花钱买来的额度,而它们本来一分不用花。第二条是速度。国内网站绕一圈境外再回来,链路长度直接翻倍,晚高峰尤其明显。第三条是可用性:一部分对出口地区敏感的服务,看到境外 IP 会直接拦截或要求二次验证。
规则模式的前提是「这份规则集是活的」。规则集长期不更新,新域名不会被自动收录,表现出来就是「以前好好的网站突然要手动处理」。更新节奏可以参考订阅与规则的更新策略。
策略组和规则集是什么关系
把它们理解成两次接力,顺序不能颠倒:
- 规则集回答「这个域名交给谁」。它是一长串匹配条目,自上而下逐条比对,命中即停,剩下的规则不再执行。
- 策略组回答「拿到之后用哪个节点」。它是一个可切换的容器,里面可能放着一批节点,也可能放着另一个策略组。
下面是一段结构示例,服务器地址一律用 example.invalid 占位,不是可用配置:
# 结构示例,仅用于说明匹配顺序,不可直接使用
proxy-groups:
- name: '国外流量'
type: select
proxies: ['自动选择', '香港-01', '日本-01']
- name: '自动选择'
type: url-test
proxies: ['香港-01', '日本-01']
url: 'http://www.example.invalid/generate_204'
rules:
- DOMAIN-SUFFIX,example.invalid,国外流量
- GEOIP,CN,DIRECT
- MATCH,国外流量
读这段配置的关键在于顺序:第一条命中就不会再看第二条。所以判断「某个网站为什么走错了」,永远是先看它命中了哪一条,而不是先看策略组里选了哪个节点。节点好不好用是另一个层面的问题,判断方法在节点延迟测试怎么看里单独讲。
某个网站没走代理,该怎么补一条规则
- 先取证。访问一次这个网站,打开客户端的连接页,按域名筛选。这条记录会告诉你它命中了哪条规则、被交给了哪个策略组。没有这一步,后面全是猜。
- 分清两种情况。命中兜底规则(通常是
MATCH)说明规则集里根本没有它;命中了某条直连类规则,说明它被判定成了国内目标。前者是漏收录,后者是误判,修法不同。 - 补规则要写在前面。在规则段的靠前位置加一条精确匹配,比如按域名后缀指向你想要的策略组。写在已有规则后面,等于永远轮不到它。
- 重载配置。多数客户端有单独的重载按钮,改完文件不重载,运行中的配置不会变。
- 清掉旧连接再验证。浏览器会复用已经建立好的连接,不关标签页重开,你看到的还是改动前的行为。
- 回连接页复核。看到这条记录命中了新规则、进了正确的策略组,才算真的改完;页面能打开只能说明「现在通了」,不能说明原因已定位。
一个域名往往牵着好几个子域和 CDN 域名。只补主域名而漏掉资源域名,常见表现是页面框架能加载、图片和视频转圈。遇到这种情况,回连接页把这次访问涉及的所有域名都看一遍。
开了 Clash 之后国内网站变慢,是谁的锅
| 现象 | 更可能的原因 | 先做的动作 |
|---|---|---|
| 所有国内网站集体变慢 | 误切到全局模式 | 切回规则模式再测 |
| 少数国内站点变慢或打不开 | 规则集过期,这些域名没被收录为直连 | 更新订阅与规则集 |
| 国内网站首次打开慢、之后正常 | 域名解析走了远端 | 检查 DNS 分流设置 |
| 只有某个软件慢,浏览器正常 | 它命中了不合适的策略组 | 连接页查这条记录 |
| 时快时慢并伴随中断 | 与其他网络软件抢接管 | 逐个退出可疑软件复测 |
第三行经常被误判成分流问题。域名往哪儿解析和流量往哪儿走是两件独立的事,解析层的排查思路在 Clash 的 DNS 怎么设里有单独说明。至于「哪些程序会被客户端接住」这个更靠前的问题,属于系统代理到底代理了谁的范围,和本文讨论的走向决策不是同一层。
全局模式在什么时候才是正确选择
它不是没用,只是用途窄:
- 做二分排查。怀疑某个站点是分流问题时,切到全局试一下:全局能通、规则不通,基本就锁定在规则集上了。确认完立刻切回。
- 规则集明显滞后。刚上线或刚换域名的服务还没被任何规则集收录,补规则前先用全局顶一会儿是合理的过渡。
- 临时用一台不做长期配置的设备。只用十几分钟,不值得为它整理规则。
除此之外的场景,全局都属于用高成本手段解决低成本问题。尤其要避免的是长期挂全局:它会掩盖规则集过期这件事,等到你真正需要精细分流时,已经没人知道哪些规则还有效。
机场自带规则和第三方规则集怎么取舍
| 对比项 | 机场下发的配置 | 第三方规则集 |
|---|---|---|
| 更新方式 | 随订阅自动刷新 | 需要自己配置更新源或手动拉取 |
| 覆盖范围 | 通常够用,偏向常见站点 | 更细,常按用途分组 |
| 与节点的匹配度 | 策略组和节点名严格对应 | 需要自己映射,改错就整组失效 |
| 出问题时的排查成本 | 低,可直接找机场客服 | 高,得自己定位是哪一条 |
| 适合谁 | 绝大多数人 | 有明确定制需求且愿意维护的人 |
一个务实的做法是分层:主体沿用机场下发的配置,只在最前面挂几条自己的精确规则。这样既保留了自动更新的好处,又能覆盖个人需求,出问题时也容易回滚——把自己加的那几条注释掉即可。想按用途挑选订阅源时,Clash 使用指南专题里汇总了导入、更新与排查的完整链条。
小结
模式决定的是流量走向,不是速度上限。规则模式逐条判断、国内直连境外走节点,是唯一适合长期使用的选择;全局只在二分排查和规则缺失时短暂顶用;直连用于排除代理干扰。规则集回答「交给谁」,策略组回答「用哪个节点」,两者调错层面就会白折腾。遇到某个站点走错,标准动作是去连接页看它命中了哪条规则,再在规则段最前面补一条,重载后清掉旧连接复核。国内网站变慢先看模式,其次看规则集是不是很久没更新了。
常见问题
规则模式下某个网站打不开,是不是切到全局就行了?
能解决,但代价过大。全局会把国内流量也一起送出境,国内网站变慢、流量翻倍,部分银行和政务站点还会因为出口在境外直接拒绝服务。正确做法是留在规则模式,给这一个域名补一条规则。
规则集多久更新一次比较合适?
跟着订阅走就够了,多数机场配置里的规则集会随订阅一起刷新。手动维护的第三方规则集建议一周到两周更新一次,更新太频繁没有收益,超过一个月则容易出现新域名没被收录的情况。
策略组和规则集,改哪个才会影响某个网站走不走代理?
规则集决定这个域名交给哪个策略组,策略组决定这个组当前用哪个节点。网站走没走代理是规则集的事,走得快不快才是策略组的事,两者不要混着调。
直连模式和退出客户端有什么区别?
直连模式下客户端仍在运行,系统代理和 TUN 的接管关系还在,只是所有流量都不走节点。退出客户端则会拆掉接管关系。需要临时排除代理干扰又不想重新配置时,用直连模式更省事。
为什么我加了规则,却还是没生效?
最常见的三个原因:规则写在了已有的匹配规则后面被提前命中、改完没有重载配置、以及浏览器还在复用改动前建立的旧连接。按这个顺序检查一遍通常就能找到。