在前面的入门教程中,我们介绍了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、进程名等)进行复杂的逻辑判断,实现传统规则无法表达的分流逻辑。

脚本规则功能强大但性能开销较大,建议仅在传统规则无法满足需求时使用。

七、规则调试技巧

编写复杂规则后,需要验证规则是否按预期工作:

  1. 使用客户端的实时日志功能,观察每条连接的规则匹配结果
  2. 在规则中添加注释标记,方便在日志中识别
  3. 使用测试域名验证特定规则的匹配效果
  4. 定期检查规则匹配统计,发现未命中或错误命中的规则

总结

掌握Clash的高级规则用法,可以让您的网络分流更加精细化。从按应用分流到域名精确匹配,从规则集管理到脚本规则,Clash的规则引擎提供了丰富的可能性。建议从简单的规则开始,逐步增加复杂度,在实践中不断优化和完善您的分流策略。