主题外观
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.cn | 162.105.131.11:443 | GEOIP,cn,DIRECT | DIRECT (本地直连) | 8 ms | Match GEOIP(CN) -> bypassed proxy |
chatgpt.com | 104.18.32.115:443 | DOMAIN-SUFFIX,chatgpt.com,🤖 AI专用 | 🤖 AI专用 (🇺🇸 美国01) | 148 ms | Match DomainSuffix -> routed via US node |
netflix.com | 198.45.62.90:443 | DOMAIN-SUFFIX,netflix.com,🎬 奈飞流媒体 | 🎬 奈飞流媒体 (🇸🇬 新加坡) | 58 ms | Match DomainSuffix -> unlocked streaming |
adservice.google.com | 142.250.66.170:443 | DOMAIN-KEYWORD,adservice,REJECT | REJECT (直接掐断) | 0 ms | Match 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 Verge Rev 教程
- 选购高速专线:搭配优质节点发挥规则威力,请查看 2026 机场推荐