Clash配置规则完全解析

目录

  1. Clash配置语法
    1. 配置文件结构
    2. 规则类型
    3. 规则匹配条件
  2. 规则编写技巧
    1. 合理利用注释
    2. 动态更新规则
    3. 规则优先级
  3. 常见规则场景示例
    1. 分流代理
    2. 广告屏蔽
    3. 域名重写
  4. 常见问题FAQ

Clash配置语法

配置文件结构

Clash配置文件主要包括以下几个部分:

  • proxies: 代理节点配置
  • proxy-groups: 代理组配置
  • rules: 流量规则配置

以下是一个典型的Clash配置文件示例:

yaml proxies:

  • name: Proxy1 type: vmess server: example.com port: 443 uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx alterId: 64

proxy-groups:

  • name: Proxy type: select proxies:
    • Proxy1

rules:

  • DOMAIN-SUFFIX,google.com,Proxy
  • DOMAIN-KEYWORD,advert,REJECT
  • IP-CIDR,192.168.1.0/24,DIRECT
  • GEOIP,CN,DIRECT
  • MATCH,Proxy

规则类型

Clash支持多种规则类型,常用的有:

  • DOMAIN-SUFFIX: 匹配域名后缀
  • DOMAIN-KEYWORD: 匹配域名关键词
  • DOMAIN: 完整匹配域名
  • IP-CIDR: 匹配IP段
  • GEOIP: 根据IP地理位置匹配
  • SRC-PORT: 匹配源端口
  • DST-PORT: 匹配目标端口

规则匹配条件

Clash的规则匹配采用最佳匹配原则,即从上到下逐条匹配,匹配到第一条规则即停止。规则匹配支持以下条件:

  • 域名匹配: 支持完整域名、域名后缀和关键词匹配
  • IP匹配: 支持IPv4和IPv6 CIDR格式
  • 地理位置: 根据IP地理位置进行匹配
  • 端口匹配: 支持源端口和目标端口匹配

规则编写技巧

合理利用注释

在编写Clash配置规则时,适当添加注释可以大大提高规则的可读性和可维护性。注释可以解释规则的用途、适用场景等信息,帮助管理员更好地理解和管理规则。

yaml

  • DOMAIN-SUFFIX,google.com,Proxy
  • DOMAIN-KEYWORD,advert,REJECT

动态更新规则

Clash支持通过远程URL动态更新规则,这对于一些频繁更新的规则非常有用,如广告屏蔽、国内外分流等。只需在配置文件中添加对应的URL即可,Clash会定期自动更新规则。

yaml rules:

  • DOMAIN-SUFFIX,google.com,Proxy
  • DOMAIN-KEYWORD,advert,REJECT
  • EXTERNAL,https://example.com/rules.yaml,RULE

规则优先级

Clash的规则匹配采用最佳匹配原则,即从上到下逐条匹配,匹配到第一条规则即停止。因此,规则的顺序会影响最终的匹配结果。通常将更具体的规则放在前面,将通用规则放在后面,以确保规则的正确应用。

yaml rules:

  • DOMAIN-SUFFIX,google.com,Proxy # 更具体的规则
  • DOMAIN-KEYWORD,advert,REJECT
  • GEOIP,CN,DIRECT # 通用规则
  • MATCH,Proxy

常见规则场景示例

分流代理

利用Clash的规则,可以实现对不同类型的流量进行分流代理。例如,将所有访问Google的流量转发到代理组Proxy中:

yaml rules:

  • DOMAIN-SUFFIX,google.com,Proxy
  • MATCH,DIRECT # 其他流量直连

广告屏蔽

Clash可以通过匹配广告相关的域名或关键词,将这些流量直接屏蔽或转发到REJECT规则:

yaml rules:

  • DOMAIN-KEYWORD,advert,REJECT
  • DOMAIN-SUFFIX,tracking.com,REJECT
  • MATCH,DIRECT

域名重写

Clash支持通过规则对域名进行重写,例如将example.com重写为example.org:

yaml rules:

  • DOMAIN,example.com,example.org
  • MATCH,DIRECT

常见问题FAQ

Q1: Clash配置文件中的各个部分有什么区别?

A1: Clash配置文件主要包括以下三个部分:

  • proxies: 定义代理节点的具体配置,如服务器地址、端口、协议等
  • proxy-groups: 定义代理组,可以将多个代理节点组合成一个代理组
  • rules: 定义流量规则,可以根据域名、IP、地理位置等条件对流量进行分流和处理

Q2: Clash支持哪些规则类型?

A2: Clash支持多种规则类型,常用的有:

  • DOMAIN-SUFFIX: 匹配域名后缀
  • DOMAIN-KEYWORD: 匹配域名关键词
  • DOMAIN: 完整匹配域名
  • IP-CIDR: 匹配IP段
  • GEOIP: 根据IP地理位置匹配
  • SRC-PORT: 匹配源端口
  • DST-PORT: 匹配目标端口

Q3: 如何合理设置规则优先级?

A3: Clash的规则匹配采用最佳匹配原则,即从上到下逐条匹配,匹配到第一条规则即停止。因此,规则的顺序会影响最终的匹配结果。通常将更具体的规则放在前面,将通用规则放在后面,以确保规则的正确应用。

Q4: Clash如何实现动态更新规则?

A4: Clash支持通过远程URL动态更新规则,这对于一些频繁更新的规则非常有用,如广告屏蔽、国内外分流等。只需在配置文件中添加对应的URL即可,Clash会定期自动更新规则。

Q5: 如何利用注释提高Clash配置的可读性?

A5: 在编写Clash配置规则时,适当添加注释可以大大提高规则的可读性和可维护性。注释可以解释规则的用途、适用场景等信息,帮助管理员更好地理解和管理规则。

正文完