Clash for Windows 高级配置:自定义规则和协议的深度探讨
入门会用 Clash 之后,想进一步提升就得折腾高级配置了。规则系统、协议参数这些搞懂了,能玩出不少花样。今天聊聊 Clash 高级配置的一些东西,适合想深入了解的朋友。

Clash 规则系统是怎么回事
规则类型
Clash 的规则系统是它的核心,主要有这几种规则:
- DOMAIN:精确匹配某个域名
- DOMAIN-SUFFIX:匹配域名后缀,比如
.cn匹配所有中文域名 - DOMAIN-KEYWORD:域名里包含某个关键词就匹配
- IP-CIDR:匹配某个 IP 地址段
- GEOIP:根据 IP 地理位置判断
- PROCESS-NAME:匹配特定进程名
每条规则都包含「条件」和「动作」两部分,符合条件就执行对应动作。
规则是怎么一条条执行的
Clash 处理请求的时候,是按照规则列表从上往下一条条匹配的:
- 排在前面的规则先执行
- 匹配到了就按规则处理,不会继续往下看
- 都没匹配到就走默认规则
所以规则顺序很重要,精确的放前面,笼统的放后面。
怎么配置自定义规则
基础规则怎么写
举几个常见的例子:
rules:
# 精确匹配某个网站,走指定节点
- DOMAIN,specific-site.com,节点名称
# 匹配域名后缀,国内站点直连
- DOMAIN-SUFFIX,cn,DIRECT
- DOMAIN-SUFFIX,baidu.com,DIRECT
# 域名包含关键词就走代理
- DOMAIN-KEYWORD,google,自动选择
# IP段匹配,直连
- IP-CIDR,192.168.0.0/16,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
# 中国的IP就直连
- GEOIP,CN,DIRECT规则集是个好东西
规则集就是把同类规则打包成单独的文件:
- 把相关规则写进一个文件
- 在主配置里引用这个文件
- 以后更新规则只需要改文件就行
这种做法好处是配置更清晰,规则多的时候特别有用。
策略组是什么
策略组就是决定「符合规则的流量交给谁处理」:
- DIRECT:直连,不走代理
- REJECT:拒绝连接
- 节点名称:指定某个节点
- 策略组名称:引用另一个策略组
常见的策略组有自动选择、手动选择、负载均衡这些。
各种协议怎么配置
Shadowsocks
SS 协议配置最简单:
proxies:
- name: "SS节点"
type: ss
server: 服务器地址
port: 端口
cipher: aes-256-gcm
password: 密码V2Ray (VMess)
VMess 配置麻烦一点,参数比较多:
proxies:
- name: "V2Ray节点"
type: vmess
server: 服务器地址
port: 端口
uuid: 你的UUID
alterId: 0
cipher: auto
level: 0要注意 alterId 必须和服务端一致,不然连不上。
Trojan
Trojan 配置简单,但要保证证书有效:
proxies:
- name: "Trojan节点"
type: trojan
server: 服务器地址
port: 端口
password: 你的密码
sni: 伪装域名一些高级功能
TUN 模式配置
TUN 模式配置示例:
tun:
enable: true
stack: system
dns-hijack:
- 8.8.8.8
- 1.1.1.1
auto-route: true
auto-detect-interface: trueDNS 配置
防止 DNS 泄露的配置:
dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- 1.1.1.1
- 8.8.8.8流量伪装
有些协议支持流量伪装,更隐蔽:
- TLS 伪装:把代理流量伪装成正常 HTTPS
- WebSocket:通过 WS 协议传输
- HTTP/2:利用多路复用
配置文件管理
多配置切换
用多个机场的话可以准备多套配置:
- 不同目录放不同配置文件
- 程序里可以快速切换
- 命令行也能指定用哪个配置
备份很重要
每次改配置之前先备份一下:
- 备份整个配置目录
- 重要改动用云存储同步
- 记录改了什么地方
最后说两句
高级配置内容比较多不可能一口气全学会,建议先从简单的自定义规则开始,改着改着就熟悉了。协议配置也是,先把一种搞懂,其他操作相似一通百通。
