Clash for Windows规则编写语法大全

发布于 2025年8月 | 阅读时间约 15 分钟

Clash for Windows的强大之处在于其灵活的规则系统,通过编写自定义规则,用户可以实现精细化的流量控制。本文将详细介绍Clash规则的编写语法和使用方法。

规则基本结构

Clash规则的基本结构由三个部分组成:

规则类型,匹配内容,策略

  • 规则类型:定义规则匹配的流量类型,如DOMAIN、IP-CIDR等
  • 匹配内容:具体的匹配条件,如域名、IP地址等
  • 策略:匹配成功后采取的行动,如使用特定代理节点或直连

常用规则类型详解

DOMAIN规则:匹配特定域名的流量

DOMAIN,example.com,Proxy

所有访问example.com的流量都将通过Proxy节点代理。

DOMAIN-SUFFIX规则:匹配特定域名后缀的流量

DOMAIN-SUFFIX,google.com,Proxy

所有以google.com结尾的域名(如mail.google.com)都将通过Proxy节点代理。

DOMAIN-KEYWORD规则:匹配包含特定关键词的域名

DOMAIN-KEYWORD,google,Proxy

所有包含"google"关键词的域名都将通过Proxy节点代理。

IP-CIDR规则:匹配特定IP地址段的流量

IP-CIDR,192.168.0.0/16,DIRECT

所有目标IP在192.168.0.0/16范围内的流量都将直连。

GEOIP规则:根据IP地理位置匹配流量

GEOIP,CN,DIRECT

所有目标IP地理位置为中国(CN)的流量都将直连。

高级规则类型

PORT规则:匹配特定端口的流量

PORT,80,Proxy

所有目标端口为80的流量都将通过Proxy节点代理。

PROCESS-NAME规则:匹配特定进程的流量(需要TUN模式)

PROCESS-NAME,telegram.exe,Proxy

所有由telegram.exe进程发起的流量都将通过Proxy节点代理。

RULE-SET规则:引用外部规则集

RULE-SET,apple,Proxy

引用名为apple的外部规则集,匹配的流量将通过Proxy节点代理。

规则匹配顺序和优先级

Clash规则按照从上到下的顺序进行匹配,一旦匹配成功就停止继续匹配。因此规则的排列顺序非常重要:

  • 具体规则应放在通用规则之前
  • 例外规则应放在常规规则之前
  • 常用的规则应放在前面以提高匹配效率

示例:

DOMAIN-SUFFIX,googleapis.cn,DIRECT
DOMAIN-SUFFIX,googleapis.com,Proxy
DOMAIN-SUFFIX,google.com,Proxy
DOMAIN-KEYWORD,google,Proxy
MATCH,DIRECT

在这个例子中,googleapis.cn会优先匹配并直连,而不会匹配到后面的google相关规则。

规则编写最佳实践

为了编写高效且易于维护的规则,建议遵循以下最佳实践:

  • 使用外部规则集来管理复杂的规则集合
  • 合理利用DOMAIN-SUFFIX减少重复规则
  • 将常用的规则放在前面以提高匹配效率
  • 使用注释说明复杂规则的作用
  • 定期清理过时或无效的规则

示例(带注释的规则):

# 谷歌服务
DOMAIN-SUFFIX,google.com,Proxy
DOMAIN-SUFFIX,googleapis.com,Proxy
DOMAIN-SUFFIX,gstatic.com,Proxy
# 国内网站
DOMAIN-SUFFIX,baidu.com,DIRECT
DOMAIN-SUFFIX,qq.com,DIRECT
# 默认规则
MATCH,Proxy

常见规则编写错误及解决方案

错误1:规则顺序不当导致匹配失败

解决方案:检查规则顺序,确保具体规则在通用规则之前。

错误2:规则语法错误导致配置文件无法加载

解决方案:仔细检查规则语法,确保逗号分隔正确,策略名称存在。

错误3:过度使用DOMAIN规则影响性能

解决方案:合理使用DOMAIN-SUFFIX规则,减少规则数量。

注意事项:在编写规则时,请确保遵守当地网络法律法规,仅将规则用于合法目的。

通过掌握Clash for Windows的规则编写语法,您可以实现高度定制化的网络流量控制。随着使用经验的积累,您可以创建更复杂和高效的规则集,以满足各种网络需求。