规则(rules)是 Clash 配置的灵魂:每一条新连接都会拿着自己的目标域名/IP,从规则列表的第一条开始逐条匹配,命中即停止。写好规则,分流就成功了一大半。
规则语法
rules:
- 类型,匹配内容,出口
# 例如:
- DOMAIN-SUFFIX,youtube.com,节点选择
- GEOIP,CN,DIRECT
- MATCH,节点选择
“出口”可以是某个代理组名、DIRECT(直连)或 REJECT(拦截)。
常用规则类型
| 类型 | 匹配对象 | 示例 |
|---|---|---|
DOMAIN | 完整域名 | DOMAIN,www.google.com,PROXY |
DOMAIN-SUFFIX | 域名及其子域 | DOMAIN-SUFFIX,google.com,PROXY |
DOMAIN-KEYWORD | 域名包含关键词 | DOMAIN-KEYWORD,google,PROXY |
IP-CIDR | 目标 IPv4 网段 | IP-CIDR,8.8.8.8/32,PROXY |
GEOIP | IP 的地理归属 | GEOIP,CN,DIRECT |
PROCESS-NAME | 发起连接的进程 | PROCESS-NAME,Telegram.exe,PROXY |
RULE-SET | 外部规则集 | RULE-SET,ads,REJECT |
MATCH | 兜底,匹配一切 | MATCH,PROXY |
顺序为什么重要
考虑下面两条规则的顺序差异:
- DOMAIN-SUFFIX,cn.example.com,DIRECT
- DOMAIN-SUFFIX,example.com,PROXY
这样写,cn.example.com 会直连,其余 example.com 走代理。若两条对调,DOMAIN-SUFFIX,example.com 会先命中一切(包括 cn 子域),第二条永远轮不到。原则:具体的规则放前面,宽泛的规则放后面。
MATCH 兜底
列表最后应有且仅有一条 MATCH 规则,处理前面全部未命中的流量。没有 MATCH 时未命中流量默认直连。把 MATCH 指向代理组(“漏网”流量走代理)还是 DIRECT(“漏网”直连),决定了你的分流策略是“黑名单”还是“白名单”思路。
调试技巧:不确定某个网站命中了哪条规则时,打开 Connections 页面看 Rule 列即可,比盯着配置猜快得多。