教程简介
规则配置是 Clash 的核心功能之一,通过规则可以实现智能分流,让不同的网络请求走不同的代理路径。本教程将深入讲解规则配置的各个方面。
通过本教程,您将学会:
- 规则的基本概念和工作原理
- 各种规则类型的详细说明
- 规则匹配顺序和优先级
- 如何编写自定义规则
- 规则集的使用方法
规则基础
Clash 规则由三部分组成:规则类型、匹配条件和动作。基本格式为:
规则类型,匹配条件,动作
例如:
DOMAIN-SUFFIX,google.com,Proxy
这表示:如果域名以 google.com 结尾,则使用 Proxy 代理组。
规则类型详解
DOMAIN(域名精确匹配)
精确匹配完整域名:
DOMAIN,www.google.com,Proxy
DOMAIN-SUFFIX(域名后缀匹配)
匹配域名后缀:
DOMAIN-SUFFIX,google.com,Proxy
DOMAIN-KEYWORD(域名关键词匹配)
匹配域名中的关键词:
DOMAIN-KEYWORD,google,Proxy
GEOIP(地理位置匹配)
根据 IP 地理位置匹配:
GEOIP,CN,DIRECT
表示中国大陆 IP 直连。
IP-CIDR(IP 段匹配)
匹配 IP 地址段:
IP-CIDR,192.168.0.0/16,DIRECT
MATCH(兜底规则)
匹配所有其他请求:
MATCH,Proxy
规则匹配顺序
Clash 按照配置文件中的顺序从上到下匹配规则,一旦匹配成功就停止。因此规则的顺序非常重要:
- 将最具体的规则放在前面
- 将通用规则放在后面
- MATCH 规则放在最后作为兜底
示例配置:
rules:
# 具体规则优先
- DOMAIN,www.google.com,Proxy
# 通用规则
- DOMAIN-SUFFIX,google.com,Proxy
# 地理位置规则
- GEOIP,CN,DIRECT
# 兜底规则
- MATCH,Proxy
自定义规则编写
编写自定义规则时,建议:
- 优先使用精确匹配(DOMAIN)
- 使用后缀匹配(DOMAIN-SUFFIX)处理子域名
- 避免过度使用关键词匹配(性能较低)
- 合理使用 GEOIP 规则简化配置

规则集使用方法
规则集(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
- GEOIP,CN,DIRECT
- MATCH,Proxy
常见问题 FAQ
Q: 规则不生效怎么办?
A: 检查规则顺序,确认规则格式正确,查看日志排查匹配问题。
Q: 如何提高规则匹配性能?
A: 将常用规则放在前面,避免过多正则表达式,使用规则集减少规则数量。