Clash 分流规则详解与示例
Clash 的路由分流功能是其最强大的特性之一。通过配置 Rules(规则),你可以精确地控制每一个网络请求是走代理、直连还是拒绝。
规则基本语法
Clash 的规则配置按从上到下的顺序进行匹配,一旦匹配成功,就会执行指定策略,并忽略后续规则。
语法格式:
- TYPE,VALUE,PROXY- TYPE: 匹配类型(如域名、IP、进程名等)
- VALUE: 匹配的内容(如 google.com, US, 192.168.0.0/16)
- PROXY: 策略组名称(如 Proxy, DIRECT, REJECT)
常用匹配类型详解
1. 域名类 (Domain)
最常用的规则类型,用于根据请求的域名进行分流。
| 类型 | 描述 | 示例 | 说明 |
|---|---|---|---|
| DOMAIN-SUFFIX | 域名后缀匹配 | DOMAIN-SUFFIX,google.com,Proxy | 匹配 google.com 及其所有子域名(如 www.google.com),效率最高,最推荐。 |
| DOMAIN-KEYWORD | 域名关键词匹配 | DOMAIN-KEYWORD,google,Proxy | 只要域名中包含 google 字符串即匹配(如 ads-google.com)。效率略低,慎用。 |
| DOMAIN | 完整域名匹配 | DOMAIN,www.baidu.com,DIRECT | 必须完全一致才匹配,map.baidu.com 不会匹配。 |
2. IP 类 (IP-CIDR)
用于根据目标 IP 地址进行分流。
⚠️ 注意:如果规则中包含 IP 类规则,Clash 必须先进行 DNS 解析拿到 IP 后才能进行匹配(除非开启
no-resolve)。
| 类型 | 描述 | 示例 | 说明 |
|---|---|---|---|
| IP-CIDR | IPv4 网段匹配 | IP-CIDR,127.0.0.0/8,DIRECT | 匹配特定网段。 |
| IP-CIDR6 | IPv6 网段匹配 | IP-CIDR6,2620:0:2d0:200::7/32,Proxy | 匹配 IPv6。 |
| GEOIP | IP 地理位置匹配 | GEOIP,CN,DIRECT | 根据 IP 所属国家代码分流。需配合 Country.mmdb 数据库。 |
关于 no-resolve: 如果你希望在匹配 IP 规则时不触发 DNS 解析(例如只是想兜底匹配某些直接访问 IP 的请求),可以加上 no-resolve 选项:
- GEOIP,CN,DIRECT,no-resolve这意味着:如果请求本身就是域名(如 www.baidu.com),Clash 会先跳过这条规则(不解析 DNS),继续往下匹配。直到所有域名规则都匹配失败,最后不得不解析 DNS 时,或者请求本身就是直接访问 IP(如 114.114.114.114),才会回头来匹配这条规则。这能显著提高匹配速度并减少不必要的 DNS 查询。
3. 特殊类 (Process, Src-IP)
| 类型 | 描述 | 示例 |
|---|---|---|
| SRC-IP-CIDR | 源 IP 匹配 | SRC-IP-CIDR,192.168.1.101/32,DIRECT 指定局域网内某台设备直连或走特定代理。 |
| DST-PORT | 目标端口匹配 | DST-PORT,80,DIRECT |
| PROCESS-NAME | 进程名匹配 | PROCESS-NAME,nc.exe,DIRECT Windows/macOS/Linux 生效,Android 不支持。 |
4. 规则集 (Rule Providers) - 进阶推荐
将大量规则写在 config.yaml 中会导致文件臃肿。Clash Premium 和 Meta内核支持 RULE-SET,引用外部规则文件。
定义 Provider:
rule-providers:
google:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt"
path: ./ruleset/google.yaml
interval: 86400使用 Rule Set:
rules:
- RULE-SET,google,Proxy
- GEOIP,CN,DIRECT
- MATCH,Proxy极简配置模板 (Template)
一份适合大多数人的基础分流规则顺序:
rules:
# 1. 拦截广告(可选)
- DOMAIN-KEYWORD,adsite,REJECT
# 2. 局域网和私有地址直连
- DOMAIN-SUFFIX,local,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
# 3. 常见国内域名直连 (建议使用 Rule Provider 维护)
- DOMAIN-SUFFIX,cn,DIRECT
- DOMAIN-KEYWORD,baidu,DIRECT
- DOMAIN-SUFFIX,bilibili.com,DIRECT
# 4. 常见国外域名走代理
- DOMAIN-SUFFIX,google.com,Proxy
- DOMAIN-SUFFIX,github.com,Proxy
- DOMAIN-SUFFIX,telegram.org,Proxy
# 5. Telegram IP 规则 (因为 TG 经常直接使用 IP)
- IP-CIDR,91.108.4.0/22,Proxy,no-resolve
- IP-CIDR,149.154.160.0/20,Proxy,no-resolve
# 6. GeoIP 中国直连
- GEOIP,CN,DIRECT
# 7. 兜底规则(未匹配到的全走代理)
- MATCH,Proxy💡 提示
Clash Meta (Mihomo) 内核引入了更多高级规则,如 GEOSITE(基于域名的地理位置/类别数据库),比 DOMAIN-SUFFIX 列表更易维护:
rules:
- GEOSITE,category-ads-all,REJECT
- GEOSITE,cn,DIRECT
- GEOSITE,geolocation-!cn,Proxy
- MATCH,Proxy这需要配合 geosite.dat 文件使用。
- 策略组:配置了「自动选择」策略组,会自动选择延迟最低的节点。
- GeoIP/GeoSite:使用了 Meta 内核特有的 GEOSITE 规则,请确保你的客户端内核支持(Clash Meta / Mihomo)。
💡 提示
如果你使用的是 Clash for Windows 原版内核,可能不支持 GEOSITE 规则,建议改为标准的 DOMAIN-SUFFIX 等规则或更换内核。
