更新于:2026年7月14日

Clash配置文件YAML语法详解:从基础结构到自定义分流规则编写

YAML基础语法

Clash配置文件使用YAML格式,这是一种以数据为中心的配置标记语言。YAML使用缩进表示层级关系,冒号表示键值对,短横线表示列表项。掌握这些基础语法是修改配置文件的前提。

缩进必须使用空格而非Tab,且同一层级的缩进量必须一致(通常使用2个空格)。键值对的格式为"key: value",冒号后必须有空格。字符串值一般不需要引号,但如果包含特殊字符(冒号、井号等)则需要用单引号或双引号包裹。

配置文件基础结构

一个完整的Clash配置文件包含以下顶级字段:mixed-port(混合代理端口)、allow-lan(是否允许局域网连接)、mode(运行模式)、log-level(日志级别)、proxies(代理节点列表)、proxy-groups(代理组定义)和rules(分流规则)。

mixed-port通常设为7890,这是HTTP和SOCKS5代理共用的端口。allow-lan设为true时,局域网内其他设备可以通过电脑IP使用代理。mode可选rule(规则模式)、global(全局模式)和direct(直连模式)。

代理节点定义

proxies字段是一个列表,每个元素定义一个代理节点。一个典型的VMess节点配置包含:name(节点名称)、type(协议类型,如vmess)、server(服务器地址)、port(端口)、uuid(用户ID)、alterId(额外ID)、cipher(加密方式)和tls(是否启用TLS)。

节点名称建议使用英文和数字组合,避免使用特殊字符。如果名称包含中文或空格,需要用引号包裹。alterId建议设为0以启用AEAD加密,提升安全性。

代理组定义

proxy-groups字段将多个代理节点组织成组,方便管理和切换。常用的代理组类型有:select(手动选择)、url-test(自动测速选择)、fallback(故障转移)和load-balance(负载均衡)。

url-test类型会自动测试组内节点的延迟,选择最快的节点。配置参数包括url(测试地址,建议使用http://www.gstatic.com/generate_204)和interval(测试间隔秒数)。推荐interval设为300(5分钟),既保证节点质量又不会过于频繁。

自定义分流规则

rules字段定义流量分流规则,格式为"类型,参数,策略"。常用类型包括:DOMAIN(精确域名匹配)、DOMAIN-SUFFIX(域名后缀匹配)、IP-CIDR(IP段匹配)、GEOIP(地理位置匹配)和MATCH(兜底规则)。

规则按从上到下的顺序匹配,先匹配到的规则优先生效。建议的规则排列顺序是:广告拦截规则在前,国内直连规则居中,国外代理规则在后,MATCH兜底设为DIRECT或Proxy。

自定义规则的编写技巧:使用DOMAIN-KEYWORD可以匹配包含特定关键词的域名,如DOMAIN-KEYWORD,google,Proxy匹配所有包含google的域名。使用SRC-IP-CIDR可以按源IP分流,实现不同设备使用不同代理策略。