梯子学堂

规则分流是什么:国内直连、国外代理是怎么实现的

2026-10-20 更新约 6 分钟读完
先说结论

规则分流是客户端把每个请求拿去和一份有序的规则列表逐条比对,命中第一条就按它指定的方式处理:直连、走某个策略组,或者拒绝。国内站点直连、国外站点走代理,就是靠这份列表实现的。规则集会随时间过期,所以需要更新,顺序则决定谁优先。

规则分流,指的是客户端用一份写好的规则,去判断每一个请求“该直接出去,还是该走代理”。你能一边打开国内视频网站不绕路、一边访问海外服务走代理,靠的就是它。这件事看起来像魔法,其实只是“按名单办事”:名单怎么写、谁排前面、名单是不是最新的,决定了分流是否准确。这篇把原理拆开讲,并教你在分流出错时怎么一步步验证。

规则分流是什么:一份有序的名单

可以把它想成门口的保安拿着一本名册:来一个人,他从第一页开始逐条对照,对上哪一条就按那条的指示放行或带走,后面的页就不翻了。客户端处理请求同理:

  1. 取出请求的特征,比如目标域名、目标 IP、发起请求的程序;
  2. 从规则列表的第一条开始逐条比对;
  3. 命中某一条,就按这条指定的处理方式办:直连、交给某个策略组,或者拒绝;
  4. 如果前面都没命中,最后一条兜底规则会接手。

“第一条命中即停止”这个特点非常关键,后面讲顺序时会用到。分流之后具体用哪个节点,是策略组的事,见 策略组是什么。

分流规则按什么来匹配

一条分流规则通常由“匹配类型、匹配内容、处理方式”三部分组成。常见的匹配类型如下,具体支持情况以内核文档为准:

匹配依据 判断的是什么 适合的场景
域名 目标网站的域名,可以精确,也可以匹配后缀或关键词 最常用,大多数网站都能靠域名区分
IP 段 目标服务器的 IP 地址范围 域名不好区分、直接访问 IP 的情况
进程名 发起请求的程序 让某个软件固定直连或固定走代理
地理归属 目标 IP 属于哪个地区 做“国内直连”这类粗粒度分流
兜底 前面都没命中的全部请求 作为最后一条,决定默认怎么办

多数用户不需要自己写这些,订阅里通常自带了一份规则,其中还会引用若干“规则集”。

规则集:为什么要更新

规则集是把成千上万个域名或 IP 段整理成一份列表,让规则只需要写一行引用。它的好处是方便统一维护,坏处是它会“过期”:新网站不断出现,旧地址不断更换,一份很久没更新的规则集,会漏掉不少新条目。

漏掉的后果有两种:

  • 该直连的被当成其他流量,走了代理,国内网站变慢、白白消耗机场流量;
  • 该走代理的没被识别,直接走了直连,于是打不开。

所以要留意规则集有没有自动更新的设置,更新周期不必太短,但也别几个月不动。想看更完整的规则模式说明,读 Clash 规则模式怎么选。

规则顺序:为什么靠前的优先

下面用一个假设的例子演示顺序的作用,规则内容是举例:

顺序 规则(举例) 处理
1 某个具体的视频网站域名 走“视频”策略组
2 某类视频网站的通用后缀 走“视频”策略组
3 国内常见网站 直连
4 兜底 走“默认”策略组

如果把第 3 条放到最前面,而它又恰好把那个视频网站也覆盖了,那么第 1 条就永远不会生效。所以经验是:越具体的越靠前,越宽泛的越靠后,兜底永远在最后。

国内外分流,和 TUN、DNS 是什么关系

分流只负责“怎么处理进来的请求”,至于有多少请求能进来,是另外两件事决定的:

  • **系统代理与 TUN 模式。**它们决定哪些程序的流量会交给客户端,详见 TUN 模式是什么意思;
  • **DNS。**域名解析的结果和位置,会影响规则按域名还是按 IP 命中,也关系到是否泄露访问记录,见 DNS 泄露是什么。

把三者的分工记清楚:系统代理和 TUN 管“进来多少”,规则管“进来之后去哪”,DNS 管“域名解析成什么”。分流出问题时,要逐层排查,而不是只盯着规则。

订阅更新之后,规则分流为什么会“回到从前”

很多人辛辛苦苦改了几条规则,订阅一更新,修改就不见了。原因很简单:订阅更新会用服务商提供的新配置整体替换旧文件,你手动改在文件里的内容自然被覆盖。比较稳妥的做法是:

  1. 不直接改订阅生成的配置文件,而是使用客户端的覆写或扩展配置功能,把自己的规则放在单独的地方;
  2. 覆写里的规则通常能在订阅更新之后继续生效,同时不影响服务商后续对节点的调整;
  3. 改完之后,到连接日志里确认新规则确实被命中,而不是只看配置文件里有没有那几行字;
  4. 如果长期需要一批自定义的国内外分流条目,把它们整理成自己的规则集,更新起来更省事。

这样处理,规则分流就既能跟上服务商的变化,也保留了你自己的偏好。

怎么验证分流有没有生效

不要凭感觉,按下面几步查:

  1. **先看模式。**确认当前是规则模式,而不是全局或直连;
  2. **看连接日志。**多数客户端能显示每个请求命中了哪条规则、用了哪个策略组;
  3. **对比出口。**打开一个能显示出口位置的页面,国外服务应显示节点所在地区,国内服务应显示你本地的出口;
  4. **看流量。**规则模式下,国内网站不应当明显消耗机场流量;
  5. **隔离变量。**把可疑网站单独用全局模式访问一次,能打开,说明问题多半在规则覆盖,而不是节点。

遇到“开了代理后国内网站变慢”,对照这几步基本能定位。

常见的误解

  • **“规则越多越准确。”**规则多只会增加维护负担,关键是顺序和规则集的新鲜度;
  • **“订阅自带的规则一定是对的。”**质量取决于服务商的配置,爱梯子无法替任何一份订阅担保;
  • **“改了规则文件就行。”**订阅更新可能覆盖你的改动,需要用客户端提供的覆写功能;
  • **“分流出错一定是机场的问题。”**多数时候是模式、规则集或 DNS 的问题。

下一步:先弄懂,再动手调

如果你只是日常使用,保持规则模式、定期更新规则集,就足够了。想进一步理解策略组如何接力,读 策略组是什么;想挑一家支持 Clash 订阅的机场,可以用 选机场向导 筛选,再翻 机场推荐榜 核对资料;导入订阅的具体步骤,见 Clash 订阅怎么导入。

这篇没有覆盖的
  • 本文讲原理和排错思路,不提供规则文件,也无法判断某份订阅自带规则的质量。
  • 规则的具体语法与匹配类型以内核官方文档为准,不同内核版本支持的类型可能不同。
  • 分流是否准确还取决于 DNS 与规则集更新情况,本文只列出需要核对的几处,不替你诊断具体网络。

资料里明确写了支持 Clash 的几家

把 Clash 写进客户端栏的品牌很少。没写不等于不能用,多数机场都能给 Clash 格式的订阅,只是档案里找不到可以核对的说法。

名次机场最低一档流量线路
第 1 名无忧链接¥6.6/月 按年付费40GB/月IPLC、IEPL官网入口

看 Clash 上手手册 → 数据来自机场档案,价格以官网结账页为准。

本文引用的官方来源

这篇的几个常见问题

规则分流和全局模式有什么区别?

全局模式不看规则,所有流量都交给你选的节点;规则分流则对每个请求逐条匹配,该直连的直连,该走代理的才走代理。日常上网用规则分流,国内网站更快也不消耗机场流量,全局模式多用于临时排查。

规则集是什么,为什么要更新?

规则集是把大量域名或 IP 段整理成的一份列表,可以被规则引用,便于统一维护。网站和地址会不断变化,旧的规则集可能漏掉新出现的域名,导致该直连的走了代理或相反,所以需要定期更新。更新方式取决于客户端和订阅的配置。

规则的顺序真的有那么重要吗?

重要。客户端从上往下匹配,命中第一条就停止,后面的规则不再看。如果一条宽泛的规则排在具体规则前面,具体规则就永远没机会生效。通常把更具体的规则放前面,兜底规则放最后。

为什么有的网站明明是国内的,却走了代理?

常见原因有:规则集没更新、该域名没被任何直连规则覆盖、DNS 解析结果让匹配结果不同,或者当前其实处于全局模式。先确认模式,再更新规则集,最后检查 DNS 相关设置。