Clash 规则分流配置实战:国内外分流场景的规则写法与匹配顺序

以国内外分流为目标,逐条讲解规则类型、匹配顺序与策略组搭配,附一段可直接套用的配置示例与分流结果验证方法。

分流目标:国内直连,国外走代理

Clash 的核心工作方式是基于规则的转发:每一个进入 Clash 的连接,都会带着目标地址去规则列表里逐条比对,命中哪条规则,就走那条规则指定的出口。所谓国内外分流,本质上是把「哪些流量直连、哪些流量走代理」翻译成一份顺序正确的规则列表。

规则的出口只有三类:DIRECT 表示直连,目标地址由本机网络直接访问;REJECT 表示直接拒绝,常用于拦截;第三类是代理节点或策略组的名字,表示交给代理通道转发。

国内外分流要达成的效果很具体:国内站点直连,延迟低、不占用节点流量;国外站点走代理出口;明确不想放行的请求直接拒绝。配好这件事只需要三样东西——一份覆盖国内外地址的规则、一个指向节点的策略组,以及正确的排列顺序。下面逐块拆开。

规则类型:每条规则在匹配什么

一条规则的写法是「类型,参数,出口」,三段用英文逗号分隔。类型决定这条规则拿什么去和请求比对,常见类型如下表。

规则类型匹配对象写法示例说明
DOMAIN精确域名DOMAIN,example.com,PROXY只匹配该域名本身,不含子域名
DOMAIN-SUFFIX域名后缀DOMAIN-SUFFIX,example.com,PROXY匹配主域与全部子域,最常用的域名写法
DOMAIN-KEYWORD域名关键词DOMAIN-KEYWORD,example,PROXY域名包含该字符串即命中,误伤面大,慎用
GEOSITE域名分类集合GEOSITE,cn,DIRECT一条覆盖整类域名,需 mihomo 内核
IP-CIDR目标 IP 段IP-CIDR,192.168.0.0/16,DIRECT,no-resolve按网段匹配,适合内网与固定地址段
GEOIP目标 IP 归属地GEOIP,CN,DIRECT查 IP 库判断国家地区,分流兜底用
DST-PORT目标端口DST-PORT,853,DIRECT按端口分流,适合单端口服务
PROCESS-NAME发起进程名PROCESS-NAME,chrome.exe,PROXY按进程分流,桌面平台可用
MATCH全部请求MATCH,PROXY规则列表末尾的兜底出口,必须放最后

选型的直觉很简单:能用域名后缀就不用关键词,能用 GEOSITE 分类就不用堆几百条 DOMAIN-SUFFIX,IP 类规则只放在域名规则之后做归属地兜底。DOMAIN-KEYWORD 最容易误伤,例如一个短关键词可能同时命中国内站点的子域,除非目标非常明确,否则不进国内外分流的主列表。

内核差异

GEOSITE 属于 Clash Meta / mihomo 内核能力,依赖对应 geodata 数据文件;原版 Clash 环境请改用 DOMAIN-SUFFIX、规则集或 GEOIP 组合。换内核前先看客户端关于页的内核名称,再决定规则写法。

匹配顺序:第一命中即停

Clash 按 rules 列表从上到下匹配,命中第一条就停止,后面的规则不再参与判断。因此顺序不是排版习惯,而是分流结果本身。国内外分流的稳定顺序是:本机与内网直连 → 明确要拒绝的目标 → 国内域名直连 → 国内 IP 直连 → 其余全部进代理。

  1. 先放行本机、局域网与保留地址段,避免路由器、NAS、打印机这类流量被送进代理。
  2. 再放精确的拦截规则,例如已知跟踪域名或不想放行的服务;拦截规则越靠前,越少触发后续解析。
  3. 然后放国内域名集合,GEOSITE,cn 一条顶一大批域名;没有 GEOSITE 的环境,用维护中的域名规则集替代。
  4. 接着放 GEOIP,CN,DIRECT,接住域名集合没覆盖到、但解析结果落在中国的目标。
  5. 最后只留一条 MATCH,PROXY。所有没有命中国内规则的请求,统一进入代理策略组。

no-resolve 只影响 IP 类规则:加上它,Clash 不会为了匹配这条规则而主动把域名解析成 IP。常见写法是内网网段一律带 no-resolve;GEOIP,CN 是否带 no-resolve 取决于你的域名规则覆盖率。域名集合足够全时,可写 GEOIP,CN,DIRECT,no-resolve 减少额外解析;域名集合偏旧时,保留解析能力更稳,但要配合正确的 DNS 走向,避免解析本身绕开代理通道。

顺序事故

MATCH,PROXY 误放到列表中段,会让它之后的国内直连规则全部失效;把 GEOIP,CN 放到 GEOSITE,cn 之前,会让大量本可按域名直连的请求先做一次 IP 归属判断。症状都是同一个:国内站点被送进节点,延迟和节点流量同时上升。

策略组搭配:出口只暴露一个名字

规则里不建议直接写死某个节点名,而是写策略组名。这样换节点、做测速、加备用出口时,规则列表不用动。国内外分流最少需要两个组:一个手动选择的 PROXY,一个自动测速的 AUTO

策略组类型行为适用位置
select在客户端手动选择出口主出口组,适合放最终决策
url-test按周期测速,自动切到延迟最低节点嵌进 select 组,作为自动选项
fallback按顺序探测,故障时切到下一个可用节点更看重可用性而不是最低延迟
load-balance按策略把连接分摊到多个节点多线负载,不适合作为默认排错入口

推荐结构是 PROXYselect,候选里放 AUTO、若干节点和 DIRECT;AUTOurl-test,只放真正可用的代理节点。规则统一指向 PROXY,客户端里切到自动或手动节点都只改组内选择,不改规则。

可直接套用的配置示例

下面是一段最小可用骨架,重点看 proxy-groupsrules 的对应关系。节点是明显假值,只用于展示字段位置;订阅场景请把节点与组交给订阅转换或覆写机制维护,手改转换结果会在下次更新时被覆盖。

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
ipv6: false

proxies:
  - name: "示例节点-勿用"
    type: ss
    server: node1.example.invalid
    port: 443
    cipher: aes-128-gcm
    password: "demo-pass-000"

proxy-groups:
  - name: PROXY
    type: select
    proxies:
      - AUTO
      - 示例节点-勿用
      - DIRECT

  - name: AUTO
    type: url-test
    proxies:
      - 示例节点-勿用
    url: http://example.invalid/generate_204
    interval: 300
    tolerance: 50

rules:
  - DOMAIN-SUFFIX,localhost,DIRECT
  - DOMAIN-SUFFIX,local,DIRECT
  - IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - IP-CIDR,169.254.0.0/16,DIRECT,no-resolve
  - GEOSITE,cn,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

如果客户端使用订阅,优先查找「覆写 / Mixin / 配置补丁」入口,把上面 rules 的顺序思路套进订阅生成的规则之前或之后;不要直接编辑客户端每次更新都会重建的成品配置。需要拦截时,在 GEOSITE,cn 之前插入独立的 REJECT 规则或规则集,保持国内直连规则仍然连续。

判定标准

这份配置成功的标志不是「能上网」,而是连接面板里国内目标命中 GEOSITE,cnGEOIP,CN 且出口为 DIRECT;国外目标只命中 MATCH,出口进入 PROXY 组内当前选中的节点。

分流结果验证方法

验证分三层做,顺序不要反。第一层看模式:客户端处于规则模式,系统代理或 TUN 已接管流量;浏览器插件代理、应用内代理会绕过 Clash,先排除。第二层看命中:打开客户端的连接或日志页,发起一次国内请求和一次国外请求,核对每条连接右侧显示的规则链与出口,而不是凭网页打开速度猜。第三层看命令行:用显式代理发请求,确认流量确实从 Clash 端口进入。

curl -x http://127.0.0.1:7890 -I https://你的目标域名/

命令行只证明请求进入了 Clash;分到哪边仍要回到连接面板看 rulechains 字段。国内请求应显示直连链,国外请求应显示节点链。若国外请求显示 DIRECT,多半是有更靠前的 DOMAIN-SUFFIX 或关键词规则误命中;若国内请求进了节点,优先检查 MATCH 是否位置过前、GEOSITE 数据是否缺失、客户端是否实际运行原版内核。

开启 TUN 或增强 DNS 模式时,还要确认系统流量真的进入 Clash 虚拟网卡;否则规则写得再对,也只对手动设置代理的应用生效。排障时先关掉 TUN,用系统代理验证规则,再恢复 TUN,能把「规则问题」和「接管问题」分开。

高频错误清单

  • 规则顺序倒置:把兜底规则放前面,后面所有精细规则失效;保存前只看 rules 第一屏和最后一屏,能挡住大部分事故。
  • 关键词误伤:DOMAIN-KEYWORD 命中面过宽,国内站点被带进代理;改成 DOMAIN-SUFFIX 或交给 GEOSITE 分类。
  • 节点名写进规则:订阅更新后节点改名,规则直接落空;规则只引用策略组名。
  • GEOIP 单独扛分流:只靠 GEOIP,CN 会漏掉 CDN 与海外镜像,域名集合与 IP 归属要一起用。
  • 手改订阅成品:更新后被覆盖,表现为配置「自己变回去」;改用覆写入口维护自定义段。
  • 忽略 IPv6:本机有可用 IPv6 而配置关闭或漏配时,部分请求会走系统网络;要么在内核与系统侧一致开启并补 IP-CIDR6 规则,要么明确关闭。

把规则当作里程标来维护:每条只标一个去向,顺序只按从具体到兜底排列。国内直连、国外代理、异常可拦截,三件事各就各位,后续换节点、换客户端、加规则集都只是替换局部,不必重写整份配置。

下载 Clash 客户端

规则分流需要客户端先接管流量。到下载中心按平台选择客户端,再回到教程完成系统代理或 TUN 接管。

下载Clash