Clash自定义规则集编写指南:从零掌握分流规则
Clash自定义规则集编写指南:从零掌握分流规则
规则(Rules)是 Clash 配置中最核心的部分之一,它决定了每一条网络请求走哪个代理节点还是直连。虽然大多数订阅都自带一套默认规则,但默认规则往往无法完全满足个人需求。掌握自定义规则集的编写方法,可以让你实现更精准的流量管理,既能提升访问速度,又能节省流量。本文将系统讲解 Clash 自定义规则的语法与编写技巧。
Clash 规则的基本结构
规则的三要素
一条完整的 Clash 规则由三个部分组成,缺一不可:
- 规则类型:决定匹配方式,如 DOMAIN、DOMAIN-SUFFIX、IP-CIDR 等
- 匹配内容:要匹配的具体域名、IP 或进程名
- 策略目标:匹配后流量走哪个策略组(PROXY、DIRECT、REJECT 等)
一条规则在配置文件中的典型写法如下:
rules:
- DOMAIN-SUFFIX,google.com,PROXY
- DOMAIN-SUFFIX,baidu.com,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT
规则匹配的优先级
Clash 按照从上到下的顺序依次匹配规则,命中第一条符合条件的规则后即停止匹配。因此,规则的排列顺序至关重要:
- 越具体、越特殊的规则越靠前
- 越宽泛、兜底性质的规则越靠后
- 最后一条通常使用
MATCH作为兜底规则
常用规则类型详解
域名类规则
域名类规则是最常用的规则类型,适合按网站进行分流:
| 规则类型 | 匹配方式 | 示例 |
|---|---|---|
| DOMAIN | 精确匹配单个域名 | DOMAIN,www.google.com,PROXY |
| DOMAIN-SUFFIX | 匹配域名及所有子域名 | DOMAIN-SUFFIX,google.com,PROXY |
| DOMAIN-KEYWORD | 匹配包含关键词的域名 | DOMAIN-KEYWORD,google,PROXY |
IP 类规则
IP 类规则用于按 IP 地址或网段进行匹配,适合局域网和特定 IP 分流:
IP-CIDR:匹配单个 IP 或网段,如IP-CIDR,10.0.0.0/8,DIRECTIP-CIDR6:匹配 IPv6 地址或网段GEOIP:按 IP 地理位置匹配,如GEOIP,CN,DIRECT
其他实用规则类型
除域名和 IP 外,Clash 还支持以下规则类型:
PROCESS-NAME:按进程名匹配,如PROCESS-NAME,Telegram,PROXYMATCH:匹配所有请求,通常作为最后一条兜底规则RULE-SET:引用外部规则集,实现规则的模块化管理
构建自定义规则的实战步骤
明确分流需求
编写规则前,先梳理清楚自己的分流需求。常见的需求包括:
- 国内网站直连:百度、淘宝、B站等国内网站走直连,降低延迟
- 国外网站走代理:Google、YouTube、GitHub 等走代理节点
- 特定应用单独分流:如游戏走低延迟节点,下载走大带宽节点
- 广告域名拦截:将广告、追踪域名指向 REJECT
编写规则集
以“国内直连、国外代理”为目标的经典规则集示例如下:
rules:
# 局域网与内网直连
- DOMAIN-SUFFIX,local,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT
# 国内常用网站直连
- DOMAIN-SUFFIX,baidu.com,DIRECT
- DOMAIN-SUFFIX,taobao.com,DIRECT
- DOMAIN-SUFFIX,qq.com,DIRECT
# 国外网站走代理
- DOMAIN-SUFFIX,google.com,PROXY
- DOMAIN-SUFFIX,youtube.com,PROXY
- DOMAIN-SUFFIX,github.com,PROXY
# 兜底规则
- MATCH,DIRECT
规则调试与验证
编写完成后,需要验证规则是否生效:
- 在 Clash 客户端中重新加载配置
- 打开“连接”面板,观察具体请求命中的规则
- 访问目标网站,确认流量走向符合预期
- 对未按预期分流的请求,检查域名拼写和规则顺序
规则集(RULE-SET)的使用
为什么使用规则集
当规则数量较多时,直接写在主配置中会让文件变得臃肿。Clash 支持通过 RULE-SET 引用外部规则集:
- 便于维护:规则集可以独立更新,无需改动主配置
- 模块化管理:按功能拆分,如广告拦截、国内直连、国外代理等
- 共享复用:多个配置可引用同一套规则集
规则集的引用方式
rule-providers:
reject:
type: http
behavior: domain
url: "https://example.com/reject.yaml"
path: ./ruleset/reject.yaml
interval: 86400
rules:
- RULE-SET,reject,REJECT
- MATCH,PROXY
编写规则时的常见误区
规则顺序错误
最常见的错误是把宽泛规则放在具体规则之前。例如,如果 MATCH 或 GEOIP,CN 出现在前面,后面的具体域名规则就永远不会生效。务必保证具体规则在前、兜底规则在后。
域名拼写错误
规则中的域名必须与真实域名完全一致。注意区分:
DOMAIN需要完整域名(如www.example.com)DOMAIN-SUFFIX只需根域名(如example.com)- 不要误写多余的空格或特殊字符
忽略规则集更新
如果使用了外部规则集,需要定期关注其更新。过期的规则集可能导致部分网站无法正常分流。
总结
掌握 Clash 自定义规则的编写方法,能让你真正把流量管理掌控在自己手中。从理解规则三要素开始,熟悉常用规则类型,再到实战编写和调试,整个过程并不复杂。建议从“国内直连、国外代理”的基础规则集入手,逐步根据实际使用需求扩展和优化。随着经验的积累,你会发现自己配置的规则集比任何默认规则都更贴合个人习惯。
这篇教程有帮助吗?立即下载Clash入门试试吧!
全平台支持 · 安全无毒 · 官方最新版