目录
什么是Clash自定义规则
Clash是一款功能强大的代理客户端软件,它除了提供基本的代理功能外,还支持丰富的自定义规则。通过自定义规则,用户可以根据自己的需求,灵活地控制流量的走向,实现各种功能,如绕过特定网站、分流特定类型流量、屏蔽广告等。
自定义规则语法
Clash的自定义规则使用特定的语法编写,主要包括基本语法和进阶语法两部分。
基本语法
Clash的自定义规则基本语法如下:
DOMAIN-SUFFIX,example.com,DIRECT
:匹配以example.com
结尾的域名,并直接访问(不经代理)DOMAIN,example.com,PROXY
:精确匹配域名example.com
,并通过代理访问IP-CIDR,192.168.1.0/24,DIRECT
:匹配IP地址段192.168.1.0/24
,并直接访问SRC-PORT,7890,DIRECT
:匹配来自本地端口7890的流量,并直接访问DST-PORT,80,PROXY
:匹配目标端口为80的流量,并通过代理访问DOMAIN-KEYWORD,example,PROXY
:匹配包含example
关键字的域名,并通过代理访问
进阶语法
Clash的自定义规则进阶语法如下:
GEOIP,CN,DIRECT
:匹配属于中国大陆的IP地址,并直接访问MATCH,PROXY
:作为兜底规则,匹配剩余的所有流量,并通过代理访问
常见自定义规则用途
绕过特定域名或IP
DOMAIN-SUFFIX,baidu.com,DIRECT DOMAIN-SUFFIX,google.com,DIRECT DOMAIN-SUFFIX,googleapis.com,DIRECT
分流特定类型流量
DOMAIN-SUFFIX,music.163.com,MUSIC DOMAIN-SUFFIX,youku.com,VIDEO DOMAIN-SUFFIX,iqiyi.com,VIDEO
屏蔽广告和追踪
DOMAIN-SUFFIX,doubleclick.net,REJECT DOMAIN-SUFFIX,googlesyndication.com,REJECT DOMAIN-SUFFIX,googleadservices.com,REJECT
如何编写自定义规则
确定规则目的
在编写自定义规则之前,首先要明确规则的具体目的,比如是要绕过某些网站,还是要分流特定类型的流量,或者是要屏蔽广告和追踪。这样有助于选择合适的语法。
选择合适语法
根据规则的目的,选择合适的语法。如果是匹配域名,可以使用DOMAIN-SUFFIX
或DOMAIN
语法;如果是匹配IP地址段,可以使用IP-CIDR
语法;如果是匹配端口,可以使用SRC-PORT
或DST-PORT
语法。
测试并调整规则
编写好规则后,需要在Clash中测试规则是否生效,如果不符合预期,可以适当调整规则语法。
如何应用自定义规则
配置文件中添加规则
用户可以在Clash的配置文件中的rules
字段中添加自定义规则,每条规则占一行。例如:
yaml rules:
- DOMAIN-SUFFIX,example.com,DIRECT
- DOMAIN,example.org,PROXY
- IP-CIDR,192.168.1.0/24,DIRECT
图形界面中添加规则
部分Clash的图形界面版本也支持在界面中直接添加自定义规则,操作方法因软件版本而异,可查阅使用文档。
常见问题解答
Q: 自定义规则的优先级如何?
A: Clash会按照规则列表的顺序依次匹配,匹配到第一条规则后就会停止匹配。因此,规则的顺序非常重要,一般将更具体的规则放在前面,将兜底规则放在最后。
Q: 如何查看自定义规则的生效情况?
A: 在Clash的日志中可以查看每个请求所匹配的规则情况,帮助确认规则是否生效。部分Clash图形界面版本也提供了规则匹配情况的实时监控。
Q: 自定义规则支持通配符吗?
A: Clash的自定义规则支持使用*
通配符,可以匹配多个域名或IP地址段。但需要注意通配符规则的优先级低于精确匹配的规则。
Q: 自定义规则支持正则表达式吗?
A: 目前Clash的自定义规则不支持直接使用正则表达式,但可以通过组合基本语法来实现类似的功能。如果有较复杂的匹配需求,可以考虑使用正则表达式引擎。