YAML语法入门,Clash配置编写实战指南

本文详细介绍YAML语法核心规则,包括键值对、数组、锚点等基础语法,并结合Clash代理配置实例演示代理组类型选择与分流规则写法,帮助快速掌握配置文件编写技能。

什么是YAML语法

YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化格式,在Clash代理配置中用于定义代理节点、代理组和分流规则,相较于JSON,YAML语法更简洁,缩进层级清晰,非常适合配置文件编写。

基础语法规则

YAML使用缩进表示层级关系,冒号后需加空格:

# 键值对
proxy-providers:
  myprovider:
    type: http
    url: "https://example.com/sub"
    interval: 86400
# 数组(列表)
proxies:
  - name: "节点1"
    type: ss
    server: 192.168.1.1
    port: 8388
  - name: "节点2"
    type: vmess
    server: 10.0.0.2
    port: 10086

Clash代理组配置详解

代理组是Clash的核心功能,决定流量如何分配到不同节点。

三种代理组类型对比

类型 名称 适用场景
select 手动选择 需要手动切换节点
url-test 自动测速 根据延迟自动选择最优节点
fallback 故障转移 主节点不可用时自动切换备用节点

代理组配置示例

proxy-groups:
  # 手动选择组
  - name: "手动节点"
    type: select
    proxies:
      - 节点A
      - 节点B
      - DIRECT
  # 自动测速组
  - name: "自动选择"
    type: url-test
    url: "http://www.gstatic.com/generate_204"
    interval: 300
    tolerance: 50
    proxies:
      - 节点A
      - 节点B
  # 故障转移组
  - name: "备用线路"
    type: fallback
    url: "http://www.gstatic.com/generate_204"
    interval: 300
    proxies:
      - 主线路
      - 备用线路

分流规则写法

规则决定哪些流量走代理、哪些直连,匹配顺序从上到下。

常见规则类型

rules:
  # 域名匹配
  - DOMAIN,www.google.com,自动选择
  - DOMAIN-SUFFIX,facebook.com,手动节点
  - DOMAIN-KEYWORD,youtube,自动选择
  # IP CIDR匹配
  - IP-CIDR,172.16.0.0/12,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT
  # 地理位置匹配
  - GEOIP,CN,DIRECT
  - GEOIP,US,自动选择
  # 其他规则
  - PROCESS-NAME,WeChat,DIRECT
  - RULE-SET,ads-block,REJECT

规则优先级说明

  1. DOMAIN(精确域名)优先级最高
  2. DOMAIN-SUFFIX(域名后缀)次之
  3. DOMAIN-KEYWORD(关键词)再次
  4. IP-CIDR(IP段)用于内网和CDN
  5. GEOIP(地区)作为兜底

完整配置示例

port: 7890
socks-port: 7891
allow-lan: true
mode: rule
external-controller: 127.0.0.1:9090
proxies:
  - name: "日本节点"
    type: ss
    server: jp.example.com
    port: 8388
    cipher: aes-256-gcm
    password: your-password
proxy-groups:
  - name: "国际网络"
    type: url-test
    url: "http://www.gstatic.com/generate_204"
    interval: 300
    proxies:
      - 日本节点
      - 美国节点
rules:
  - DOMAIN-SUFFIX,google.com,国际网络
  - DOMAIN-SUFFIX,github.com,国际网络
  - GEOIP,CN,DIRECT
  - MATCH,国际网络

常见问题FAQ

现象:配置文件解析报错"invalid yaml"

原因:缩进不一致(必须用空格不能用Tab)、冒号后缺少空格、引号未成对出现

解决方法:使用VS Code安装YAML插件检查语法,确保缩进统一为2或4个空格


掌握YAML语法是配置Clash代理的基础,理解代理组类型(select/url-test/fallback)的适用场景,合理编写分流规则,能够显著提升跨境办公和学术资源访问的体验,建议从简单配置开始,逐步添加代理组和规则,根据实际使用场景调整测速间隔和故障转移策略。

您可以还会对下面的文章感兴趣: