分流规则是Clash最强大的功能之一,它可以根据目标网站、IP地址、进程名称等条件,自动决定流量是直连还是走代理。合理配置分流规则,不仅能节省流量,还能提升访问速度。本文将详细讲解Clash分流规则的各种类型和配置方法。
为什么需要分流规则?
如果不使用分流规则,要么全部流量走代理(浪费流量,国内网站变慢),要么全部直连(无法访问国外网站)。分流规则解决了这个痛点:
- 节省流量:国内网站直连,不消耗机场流量
- 提升速度:国内网站直连速度更快,无额外延迟
- 智能分配:根据需求为不同网站选择不同线路
- 自动化:无需手动切换,一次配置长期使用
Clash规则类型详解
1. DOMAIN规则 - 精确域名匹配
语法:DOMAIN,域名,策略
示例:
DOMAIN,google.com,PROXY
DOMAIN,baidu.com,DIRECT
说明:精确匹配域名,只对完全一致的域名生效。例如DOMAIN,google.com只匹配google.com,不匹配www.google.com或mail.google.com。
适用场景:针对特定域名设置策略,通常用于特殊需求。
2. DOMAIN-SUFFIX规则 - 域名后缀匹配
语法:DOMAIN-SUFFIX,域名后缀,策略
示例:
DOMAIN-SUFFIX,google.com,PROXY
DOMAIN-SUFFIX,githubusercontent.com,PROXY
DOMAIN-SUFFIX,cn,DIRECT
说明:匹配域名及其所有子域名。DOMAIN-SUFFIX,google.com会匹配google.com、www.google.com、mail.google.com等所有子域名。
适用场景:最常用的规则类型,适合为整个网站及其子域名设置统一策略。
3. DOMAIN-KEYWORD规则 - 域名关键词匹配
语法:DOMAIN-KEYWORD,关键词,策略
示例:
DOMAIN-KEYWORD,google,PROXY
DOMAIN-KEYWORD,youtube,PROXY
DOMAIN-KEYWORD,gov,DIRECT
说明:只要域名中包含关键词就匹配。DOMAIN-KEYWORD,google会匹配google.com、google.co.jp、googlevideo.com等所有包含google的域名。
适用场景:批量匹配相关网站,但要注意可能误匹配,例如DOMAIN-KEYWORD,ad会匹配广告域名,但也会匹配loading.com。
4. GEOIP规则 - IP地理位置匹配
语法:GEOIP,国家代码,策略
示例:
GEOIP,CN,DIRECT
GEOIP,US,PROXY
GEOIP,PRIVATE,DIRECT
说明:根据目标IP的地理位置判断。GEOIP,CN表示所有中国大陆的IP地址直连。Clash内置GeoIP数据库,会自动查询IP归属地。
适用场景:作为兜底规则,处理没有被域名规则匹配的流量。配合域名规则使用效果最佳。
5. IP-CIDR规则 - IP段匹配
语法:IP-CIDR,IP段,策略
示例:
IP-CIDR,192.168.0.0/16,DIRECT
IP-CIDR,10.0.0.0/8,DIRECT
IP-CIDR,8.8.8.8/32,PROXY
说明:匹配特定IP段。使用CIDR表示法,/16表示前16位是网络位,/32表示单个IP地址。
适用场景:为特定IP或IP段设置专属策略,常用于内网地址直连。
6. PROCESS-NAME规则 - 进程名匹配(仅部分客户端支持)
语法:PROCESS-NAME,进程名,策略
示例:
PROCESS-NAME,Telegram.exe,PROXY
PROCESS-NAME,WeChat.exe,DIRECT
PROCESS-NAME,chrome.exe,PROXY
说明:根据发起请求的进程名称匹配。只有Clash Premium等高级版本支持。
适用场景:为特定应用程序设置专属策略,例如让Telegram始终走代理,微信始终直连。
7. MATCH规则 - 兜底规则
语法:MATCH,策略
示例:
MATCH,PROXY
# 或
MATCH,DIRECT
说明:匹配所有未被前面规则匹配的流量,必须放在规则列表的最后。相当于默认策略。
适用场景:作为最后一条规则,处理所有遗漏的流量。
规则优先级
Clash按照配置文件中规则的从上到下的顺序匹配,一旦匹配成功就不再继续匹配。因此规则顺序非常重要:
- 特殊规则在前:将需要特殊处理的域名、IP放在最前面
- 常规规则在中:大量域名后缀、关键词规则放在中间
- 地理规则在后:GEOIP规则放在域名规则之后
- 兜底规则最后:MATCH规则必须是最后一条
GeoIP分流深度解析
GeoIP分流是Clash分流的核心,它通过查询IP地址的地理位置实现自动分流。
GeoIP工作原理
- 客户端发起请求到某个域名
- Clash的DNS解析器查询该域名的IP地址
- 查询GeoIP数据库,确定IP所属国家/地区
- 根据GEOIP规则决定该IP是直连还是代理
GeoIP数据库更新
Clash内置的GeoIP数据库会定期更新。如果发现某些IP判断不准确,可以手动更新:
- Clash for Windows:在General页面点击"Update GeoIP Database"
- 手动更新:下载最新的Country.mmdb文件替换Clash目录下的旧文件
GeoIP分流最佳实践
# 先匹配特殊域名
DOMAIN-SUFFIX,github.com,PROXY
DOMAIN-SUFFIX,githubusercontent.com,PROXY
# 然后是国内域名
DOMAIN-SUFFIX,cn,DIRECT
DOMAIN-SUFFIX,baidu.com,DIRECT
DOMAIN-SUFFIX,qq.com,DIRECT
# 接着用GeoIP处理IP流量
GEOIP,CN,DIRECT
GEOIP,PRIVATE,DIRECT
# 最后是兜底规则
MATCH,PROXY
实战案例:配置一套完整的分流规则
以下是一套适合大多数用户的分流规则配置:
rules:
# 局域网地址直连
- DOMAIN-SUFFIX,local,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
- IP-CIDR,172.16.0.0/12,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT
# 常见广告域名拦截(可选)
- DOMAIN-KEYWORD,adservice,REJECT
- DOMAIN-SUFFIX,googleads.g.doubleclick.net,REJECT
# 必须走代理的服务
- DOMAIN-SUFFIX,google.com,PROXY
- DOMAIN-SUFFIX,youtube.com,PROXY
- DOMAIN-SUFFIX,facebook.com,PROXY
- DOMAIN-SUFFIX,twitter.com,PROXY
- DOMAIN-SUFFIX,instagram.com,PROXY
- DOMAIN-SUFFIX,telegram.org,PROXY
- DOMAIN-SUFFIX,github.com,PROXY
- DOMAIN-SUFFIX,githubusercontent.com,PROXY
# 流媒体服务
- DOMAIN-SUFFIX,netflix.com,PROXY
- DOMAIN-SUFFIX,disney.com,PROXY
- DOMAIN-SUFFIX,hulu.com,PROXY
# 国内常见域名直连
- DOMAIN-SUFFIX,cn,DIRECT
- DOMAIN-SUFFIX,baidu.com,DIRECT
- DOMAIN-SUFFIX,taobao.com,DIRECT
- DOMAIN-SUFFIX,qq.com,DIRECT
- DOMAIN-SUFFIX,jd.com,DIRECT
- DOMAIN-SUFFIX,163.com,DIRECT
- DOMAIN-SUFFIX,alipay.com,DIRECT
# 中国大陆IP直连
- GEOIP,CN,DIRECT
- GEOIP,PRIVATE,DIRECT
# 其他流量走代理
- MATCH,PROXY
混合配置:多订阅源与策略组
Clash支持策略组(Proxy Groups),可以为不同类型的流量选择不同的节点组。
常见策略组类型
- select:手动选择,用户可以在多个节点中选择一个
- url-test:自动测速选择,定期测试节点延迟,选择最快的
- fallback:故障转移,主节点不可用时自动切换到备用节点
- load-balance:负载均衡,将流量分散到多个节点
策略组配置示例
proxy-groups:
- name: PROXY
type: select
proxies:
- 自动选择
- 香港节点
- 美国节点
- 日本节点
- name: 自动选择
type: url-test
proxies:
- 香港-01
- 香港-02
- 美国-01
url: 'http://www.gstatic.com/generate_204'
interval: 300
- name: 香港节点
type: select
filter: '香港|HK|Hong Kong'
- name: 流媒体
type: select
proxies:
- 美国节点
- 日本节点
然后在规则中引用策略组:
rules:
- DOMAIN-SUFFIX,netflix.com,流媒体
- DOMAIN-SUFFIX,youtube.com,PROXY
- GEOIP,CN,DIRECT
- MATCH,PROXY
常见问题与解决
1. 某网站分流不正确
排查方法:
- 在Clash日志中查看该请求匹配了哪条规则
- 检查规则顺序,可能被前面的规则误匹配
- 手动添加该域名的专属规则,放在最前面
2. GeoIP判断不准确
解决方法:
- 更新GeoIP数据库到最新版本
- 对于特定IP,使用IP-CIDR规则强制指定策略
- 使用域名规则代替IP规则,因为域名更稳定
3. 规则太多导致性能下降
优化建议:
- 删除重复和冗余的规则
- 用DOMAIN-SUFFIX代替多条DOMAIN规则
- 尽量使用GeoIP而不是大量IP-CIDR规则
- 使用规则集(Rule Providers)引用外部规则文件
高级技巧:使用Rule Providers
Rule Providers允许你从外部文件或URL加载规则,避免配置文件过于臃肿:
rule-providers:
reject:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
path: ./ruleset/reject.yaml
interval: 86400
proxy:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
path: ./ruleset/proxy.yaml
interval: 86400
rules:
- RULE-SET,reject,REJECT
- RULE-SET,proxy,PROXY
- GEOIP,CN,DIRECT
- MATCH,PROXY
这样规则会自动从网络更新,无需手动维护。
总结
Clash的分流规则功能强大且灵活,掌握以下要点可以配置出高效的分流方案:
- 理解规则类型:域名规则处理已知网站,GeoIP规则处理IP流量
- 注意规则顺序:特殊规则在前,通用规则在后,兜底规则最后
- 合理使用策略组:为不同场景配置不同的节点组
- 定期维护更新:删除无效规则,更新GeoIP数据库
- 善用外部规则集:减少配置文件体积,实现自动更新
通过合理配置分流规则,你可以让Clash自动判断哪些流量走代理、哪些直连,既节省流量又提升速度,真正实现智能科学上网。