在前面的入门教程中,我们介绍了Clash规则的基础语法。本文将深入探讨Clash分流规则的高级用法,包括按应用程序分流、按域名精确匹配、使用规则集等进阶技巧,帮助您实现更精细化的网络管控。
一、按应用程序分流(PROCESS规则)
PROCESS-NAME规则允许根据发起连接的应用程序名称进行分流。这在桌面端特别有用,可以为不同应用指定不同的代理策略。
使用场景
- 让Telegram始终走代理,无论访问什么域名
- 让迅雷等下载工具直连,避免代理影响下载速度
- 让浏览器按照域名规则分流,而特定应用走固定策略
配置示例
PROCESS-NAME,Telegram,Proxy - Telegram所有连接走代理
PROCESS-NAME,BitComet,DIRECT - 迅雷直连
PROCESS-NAME,chrome,Google - Chrome浏览器走Google策略组
注意事项
PROCESS-NAME规则仅在系统代理模式下有效。在TUN模式下,需要使用PROCESS-PATH规则匹配完整进程路径。此外,某些应用的进程名可能与显示名称不同,需要通过日志确认实际进程名。
二、域名精确匹配
DOMAIN vs DOMAIN-SUFFIX
DOMAIN 规则精确匹配完整域名,如 DOMAIN,www.google.com,Proxy 仅匹配www.google.com,不匹配mail.google.com。
DOMAIN-SUFFIX 规则匹配域名后缀,如 DOMAIN-SUFFIX,google.com,Proxy 匹配所有以google.com结尾的域名,包括www.google.com、mail.google.com、apis.google.com等。
DOMAIN-KEYWORD
DOMAIN-KEYWORD 规则匹配域名中包含的关键词。例如 DOMAIN-KEYWORD,google,Proxy 会匹配所有域名中包含"google"的请求,包括google.com、googleapis.com、googletagmanager.com等。
性能提示:DOMAIN匹配速度最快,DOMAIN-SUFFIX次之,DOMAIN-KEYWORD最慢。在规则数量较多时,优先使用DOMAIN和DOMAIN-SUFFIX规则,减少DOMAIN-KEYWORD的使用。
三、IP-CIDR规则
IP-CIDR规则根据目标IP地址段进行分流。这在以下场景中很有用:
- 将特定IP段(如公司内网)设置为直连
- 屏蔽已知的恶意IP段
- 为特定服务器指定代理节点
配置示例:IP-CIDR,10.0.0.0/8,DIRECT 将所有10.x.x.x的内网地址直连。
四、GEOIP规则
GEOIP规则根据IP地址的地理位置进行分流。Clash使用MaxMind的MMDB数据库查询IP归属地。
配置示例:GEOIP,CN,DIRECT 将所有中国IP地址设置为直连。这是最常用的分流规则之一,可以有效区分国内外流量。
五、规则集(Rule Provider)进阶
规则集是管理大量规则的最佳方式。通过规则集,您可以将规则组织到独立文件中,实现模块化管理和自动更新。
远程规则集
远程规则集从URL自动下载规则文件,支持设置更新间隔。社区维护的规则集通常比个人维护的更全面和准确。常用的规则集包括广告拦截规则集、国内域名规则集、国外域名规则集等。
规则集合并
可以在一条规则中引用多个规则集,实现规则的灵活组合。例如同时引用广告规则集和追踪器规则集,统一使用REJECT策略。
六、SCRIPT规则
Clash Meta支持使用JavaScript脚本编写动态规则。脚本规则可以根据连接的各种属性(域名、IP、进程名等)进行复杂的逻辑判断,实现传统规则无法表达的分流逻辑。
脚本规则功能强大但性能开销较大,建议仅在传统规则无法满足需求时使用。
七、规则调试技巧
编写复杂规则后,需要验证规则是否按预期工作:
- 使用客户端的实时日志功能,观察每条连接的规则匹配结果
- 在规则中添加注释标记,方便在日志中识别
- 使用测试域名验证特定规则的匹配效果
- 定期检查规则匹配统计,发现未命中或错误命中的规则
总结
掌握Clash的高级规则用法,可以让您的网络分流更加精细化。从按应用分流到域名精确匹配,从规则集管理到脚本规则,Clash的规则引擎提供了丰富的可能性。建议从简单的规则开始,逐步增加复杂度,在实践中不断优化和完善您的分流策略。