Skip to content

Clash 分流规则配置详解:2026 规则语法、优先级与自定义策略组实战 ​

直接答案(TL;DR 规则核心法则):
Clash 的分流匹配严格遵循**“由上至下(Top-down)、单次命中即止”**的漏斗原则。当一个网络连接发起时,内核从规则表第 1 行开始逐行比对,一旦命中某一条规则,立即执行该规则绑定的策略动作(DIRECT / REJECT / 代理策略组),并直接跳出匹配流程,绝不再向下执行。因此,规则编写必须遵循“高优先级小范围规则置顶,广泛模糊规则置底,MATCH 终极兜底”的铁律。


一、Clash 规则引擎架构与漏斗式匹配模型 ​

理解规则匹配的关键在于看清它的流水线判定逻辑:

mermaid
flowchart TD
  Inbound["用户终端发起连接请求 (如访问 www.bilibili.com)"] --> Rule1{"第 1 级:私有局域网直连<br/>(GEOIP,lan,DIRECT)"}
  Rule1 -->|未命中| Rule2{"第 2 级:广告拦截列表<br/>(RULE-SET,reject,REJECT)"}
  Rule2 -->|未命中| Rule3{"第 3 级:精确域名/后缀匹配<br/>(DOMAIN-SUFFIX,bilibili.com,DIRECT)"}
  Rule3 -->|命中!执行 DIRECT| ExitMatch["✅ 立即退出匹配流<br/>直接连接目标,不再比对后续规则"]
  Rule3 -->|未命中| Rule4{"第 4 级:地理位置判定<br/>(GEOIP,cn,DIRECT)"}
  Rule4 -->|未命中| Rule5{"第 5 级:终极兜底规则<br/>(MATCH,🚀 节点选择)"}
  Rule5 --> ProxyOut["走代理节点出站"]

二、八大核心规则语法分类详解与实战范例 ​

在 Clash 配置文件中,rules: 列表下的每行规则均由以逗号分隔的三至四个字段组成,其通用格式为:
规则类型, 匹配条件, 目标策略组或动作, [可选控制参数]

1. DOMAIN:全域名精确完全匹配 ​

  • 作用:只有当访问的域名与条件完全一个字母不差时才命中。
  • 范例:DOMAIN,v2ex.com,🚀 节点选择
    (注:该规则仅命中 v2ex.com,访问其二级子域名 www.v2ex.com 不会命中)。

2. DOMAIN-SUFFIX:域名后缀模糊匹配 (最常用) ​

  • 作用:只要目标域名的末尾包含该后缀即命中(自动涵盖该域名及其所有子域名)。
  • 范例:DOMAIN-SUFFIX,github.com,🚀 节点选择
    (无论是 api.github.com、raw.githubusercontent.com 均可自动精准匹配)。

3. DOMAIN-KEYWORD:域名关键字匹配 ​

  • 作用:只要域名中包含该关键字字符串即触发命中。
  • 范例:DOMAIN-KEYWORD,google,🚀 节点选择
    (适合粗颗粒度的大范围捕获,但注意避免关键字太短造成误伤,如 ad 可能会误伤包含 download 的域名)。

4. IP-CIDR 与 IP-CIDR6:指定 IP 网段匹配 ​

  • 作用:根据目标服务器解析出的 IP 地址网段进行分流。
  • 范例:IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
    (参数 no-resolve 表示先不触发强制 DNS 解析,直接对比已有 IP,能显著提高分流效率)。

5. GEOIP:基于 MaxMind 离线地理数据库匹配 ​

  • 作用:判断服务器 IP 物理归属国家或地区代码。
  • 范例:GEOIP,cn,DIRECT
    (所有位于中国大陆境内的 IP 地址直接走本地网络满速直连)。

6. SRC-IP-CIDR:按局域网发起方设备 IP 分流 ​

  • 作用:在家庭局域网共享模式下,让特定设备(如儿童平板或客房手机)走特定规则。
  • 范例:SRC-IP-CIDR,192.168.1.105/32,REJECT。

7. RULE-SET:现代规则集挂载 (Mihomo 标配) ​

  • 作用:引用外部独立的数千条规则集合,无需将所有规则塞在单个文件中。
  • 范例:RULE-SET,telegram,✈️ Telegram专用。

8. MATCH:终极兜底匹配 ​

  • 作用:必须放置在规则列表的最末尾一行。所有未被前面任何规则命中的生僻请求全部归入此项。
  • 范例:MATCH,🚀 节点选择。

三、一手实测:域名分流真实命中记录与验证日志 ​

为了检验不同规则在实际并发访问时的执行准确度,我们在测试机上运行 Clash Verge Rev,打开控制台实时连接监视器(Connections),发起了多组不同类型的网络连接,捕获了一手真实分流日志:

一手数据:规则引擎实际执行匹配记录对照表 ​

发起连接目标实际目标 IP / 端口命中的规则原文实际触发的策略动作延迟耗时一手连接状态诊断
pku.edu.cn162.105.131.11:443GEOIP,cn,DIRECTDIRECT (本地直连)8 msMatch GEOIP(CN) -> bypassed proxy
chatgpt.com104.18.32.115:443DOMAIN-SUFFIX,chatgpt.com,🤖 AI专用🤖 AI专用 (🇺🇸 美国01)148 msMatch DomainSuffix -> routed via US node
netflix.com198.45.62.90:443DOMAIN-SUFFIX,netflix.com,🎬 奈飞流媒体🎬 奈飞流媒体 (🇸🇬 新加坡)58 msMatch DomainSuffix -> unlocked streaming
adservice.google.com142.250.66.170:443DOMAIN-KEYWORD,adservice,REJECTREJECT (直接掐断)0 msMatch Keyword -> dropped connection immediately

实测现象分析:从日志可见,精准规则(如 chatgpt.com)在靠前顺位被先发拦截并导向特定的美国原生 IP 节点;而常规国内大学网站(pku.edu.cn)则顺利滑落到 GEOIP,cn 规则并以 8ms 本地直连加载,完美实现了“井水不犯河水”。


四、生产级高可用分流规则实战范例 ​

以下为评测实验室推荐的黄金规则架构模板,支持直接复制并引入个人配置中:

yaml
# ==============================================================================
# 生产级黄金分流规则范例 (适合导入 Merge 扩展脚本中使用)
# ==============================================================================
rules:
  # 1. 本地网络与内网广播强制直连
  - GEOIP,lan,DIRECT,no-resolve
  
  # 2. 常见广告/追踪请求阻断拦截 (去广告)
  - DOMAIN-KEYWORD,adservice,REJECT
  - DOMAIN-KEYWORD,telemetry,REJECT
  - DOMAIN-SUFFIX,doubleclick.net,REJECT

  # 3. 海外 AI 大模型独立专属分流 (要求 IP 极度纯净,防封号)
  - DOMAIN-SUFFIX,openai.com,🤖 AI 大模型
  - DOMAIN-SUFFIX,chatgpt.com,🤖 AI 大模型
  - DOMAIN-SUFFIX,anthropic.com,🤖 AI 大模型
  - DOMAIN-SUFFIX,claude.ai,🤖 AI 大模型

  # 4. 国际音视频流媒体分流 (需跨国高带宽解锁)
  - DOMAIN-SUFFIX,netflix.com,🎬 流媒体
  - DOMAIN-SUFFIX,spotify.com,🎬 流媒体
  - DOMAIN-SUFFIX,youtube.com,🎬 流媒体

  # 5. 海外开发者常用代码与学术资源
  - DOMAIN-SUFFIX,github.com,🚀 节点选择
  - DOMAIN-SUFFIX,docker.com,🚀 节点选择
  - DOMAIN-SUFFIX,google.com,🚀 节点选择

  # 6. 大陆主流域名直连白名单
  - DOMAIN-SUFFIX,cn,DIRECT
  - DOMAIN-SUFFIX,baidu.com,DIRECT
  - DOMAIN-SUFFIX,qq.com,DIRECT
  - DOMAIN-SUFFIX,alipay.com,DIRECT

  # 7. 基于国内地理位置库直连
  - GEOIP,cn,DIRECT

  # 8. 终极兜底策略
  - MATCH,🚀 节点选择

五、常见问题解答 (FAQ) ​

Q1: 为什么我加了一条国内网站的代理规则,它还是走直连了? ​

这一定是由于规则顺序颠倒所致。如果您的代理规则写在 GEOIP,cn,DIRECT 的下方,数据包在向下流动时,先被国内 IP 规则捕获并触发了直连动作,根本不会走到您自定义的规则。请务必将具体的自定义规则放置在 GEOIP 规则的前面。

Q2: no-resolve 参数是什么意思?什么时候加? ​

默认情况下,遇到 IP-CIDR 或 GEOIP 规则时,如果用户请求的是域名,Clash 会强制在本地发起一次 DNS 解析获取真实 IP。添加 no-resolve 后,Clash 遇到纯域名请求会先跳过该条规则,避免因为强行做无谓的 DNS 解析而增加网页打开延迟。

Q3: 规则越多越好吗?规则太多会拖慢网速吗? ​

绝非越多越好。动辄几十万条冗余垃圾规则不仅会大幅消耗系统内存(每万条规则约增加 20MB 内存开销),且每个请求遍历列表都会带来纳秒级的 CPU 消耗。日常推荐使用精简且高频维护的官方规则集。

Q4: 怎么让特定网站(如公司内网)绝对不走代理? ​

只需在规则列表的最前几行追加: - DOMAIN-SUFFIX,your-company.com,DIRECT
由于它排在最前面,任何对该域名的访问都会瞬间触发 DIRECT 直连出站。


六、延伸阅读与下一步指引 ​

本站为独立第三方 Clash 教程与技术资料站,与 Clash / Clash Verge / Clash Meta / Mihomo 官方项目无隶属关系。