规则详解(Rules)
规则(rules)是 Clash 配置文件的分流核心:每一条网络请求自上而下逐条匹配,命中第一条就停止,未命中任何规则时按兜底规则处理。代理组的组织方式见 代理组详解。
语法结构
每条规则的格式:
TYPE,ARGUMENT,POLICY(,no-resolve)TYPE:规则类型ARGUMENT:匹配参数(域名、IP 段等)POLICY:命中后走哪里——某个代理组、某个节点、DIRECT(直连)或REJECT(拒绝)no-resolve(可选):对 IP 类规则跳过 DNS 解析,避免不必要的解析开销
常用规则类型
| 类型 | 说明 | 示例 |
|---|---|---|
DOMAIN | 完整域名匹配 | DOMAIN,www.google.com,代理组 |
DOMAIN-SUFFIX | 匹配域名后缀(含子域名) | DOMAIN-SUFFIX,github.com,代理组 |
DOMAIN-KEYWORD | 域名包含关键字即命中 | DOMAIN-KEYWORD,google,代理组 |
IP-CIDR / IP-CIDR6 | 匹配目标 IP 网段 | IP-CIDR,192.168.0.0/16,DIRECT |
GEOIP | 按 IP 归属地匹配 | GEOIP,CN,DIRECT |
DST-PORT | 按目标端口匹配 | DST-PORT,80,DIRECT |
PROCESS-NAME | 按发起进程名匹配(部分模式支持) | PROCESS-NAME,ssh.exe,代理组 |
MATCH | 兜底规则,必须放最后 | MATCH,代理组 |
典型的规则顺序
一份健康的配置文件通常长这样(自上而下):
yaml
rules:
# 1. 局域网直连
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- DOMAIN-SUFFIX,local,DIRECT
# 2. 广告域名拒绝
- DOMAIN-KEYWORD,doubleclick,REJECT
# 3. 需要走代理的域名
- DOMAIN-SUFFIX,google.com,代理组
- DOMAIN-SUFFIX,github.com,代理组
# 4. 国内域名和 IP 直连
- DOMAIN-SUFFIX,cn,DIRECT
- GEOIP,CN,DIRECT
# 5. 兜底:剩余全部走代理
- MATCH,代理组要点:精确域名放最前,GEOIP 类兜底直连靠后,MATCH 永远在最后一行。
自定义规则怎么加
订阅更新会整体覆盖配置文件,所以自定义规则不能直接写在订阅生成的规则段里(会被冲掉),正确做法:
- 写在订阅规则之前:利用配置处理功能(Clash for Windows 的
设置 → 配置文件预处理或 Mixin),把自定义条目插入到规则列表顶部,优先级最高 - 使用独立覆盖配置:mihomo 内核支持
override或rule-providers引用本地规则集,订阅更新不影响
常用操作示例——让某个网站强制直连:
yaml
- DOMAIN-SUFFIX,example.com,DIRECT让某个域名强制走代理(放在 GEOIP,CN 之前才生效):
yaml
- DOMAIN-SUFFIX,example.org,代理组修改规则后点击 配置 页重新载入即可生效。配置不生效或订阅被覆盖时,按订阅导入排查的思路检查更新逻辑。
