Clash YAML 配置文件是整个代理系统的核心,掌握其结构与字段规范是进阶使用的必经之路。订阅链接提供的配置往往是通用模板,并不针对具体场景优化。本文为 Clash 官方配置文件完整说明,系统讲解每个核心字段的定义与官方推荐的最佳实践写法。
配置文件整体结构
一份完整的 Clash 配置文件由六个主要部分组成:全局参数、DNS 配置、代理节点(proxies)、策略组(proxy-groups)、规则(rules)以及可选的 TUN 配置。这六个部分共同决定了 Clash 如何处理你的每一条网络请求。
port: 7890
socks-port: 7891
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
dns:
enable: true
enhanced-mode: fake-ip
nameserver: [223.5.5.5, 119.29.29.29]
proxies: [ ... ]
proxy-groups: [ ... ]
rules: [ ... ]
全局参数详解
全局参数控制 Clash 的基本运行行为,以下是最常用的几个字段:
port与socks-port:分别是 HTTP 代理和 SOCKS5 代理的监听端口,默认 7890/7891。也可以用mixed-port: 7890合并为一个端口同时支持两种协议。allow-lan:设为true后,局域网内的其他设备也可以将 Clash 作为代理服务器,适合路由器级别的共享代理场景。mode:全局代理模式,可选rule(智能分流)、global(全部走代理)、direct(全部直连)。external-controller:开放 RESTful API 的地址和端口,各类 Dashboard(如 Yacd、MetaCubeXD)通过此接口与 Clash 通信,实现图形化控制。
proxies:代理节点配置
proxies 数组中的每个对象代表一个代理服务器节点。不同协议的必填字段不同,但 name、type、server、port 是所有协议通用的必填项。
Clash(Mihomo 内核)支持 Shadowsocks、VMess、VLESS、Trojan、Hysteria2、TUIC 等二十余种协议。以下是三种最常见协议的示例配置:
proxies:
- name: "🇭🇰 香港-01"
type: ss
server: hk.example.com
port: 8388
cipher: chacha20-ietf-poly1305
password: "your-password"
udp: true
- name: "🇺🇸 美国-01"
type: vmess
server: us.example.com
port: 443
uuid: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
alterId: 0
cipher: auto
tls: true
network: ws
ws-opts:
path: /ray
headers:
Host: us.example.com
- name: "🇯🇵 日本-01"
type: trojan
server: jp.example.com
port: 443
password: "your-password"
sni: jp.example.com
udp: true
proxy-groups:策略组
策略组是 Clash 区别于其他代理工具的核心优势。它将多个节点组合成一个逻辑代理单元,支持手动选择、自动测速、故障转移、负载均衡四种工作方式,并且策略组之间可以相互嵌套引用,构建出灵活的分层代理架构。
proxy-groups:
- name: "🚀 节点选择"
type: select
proxies: ["♻️ 自动选择", "🇭🇰 香港-01", "🇺🇸 美国-01", DIRECT]
- name: "♻️ 自动选择"
type: url-test
url: http://www.gstatic.com/generate_204
interval: 300
tolerance: 50
proxies: ["🇭🇰 香港-01", "🇯🇵 日本-01", "🇺🇸 美国-01"]
- name: "🎬 流媒体"
type: select
proxies: ["🇺🇸 美国-01", "🇯🇵 日本-01"]
上面的配置构建了一个两层结构:「节点选择」策略组作为对外暴露的入口,用户可以在这里手动选择具体节点或选择「自动选择」策略组;「自动选择」策略组会在后台持续测速,自动切换到延迟最低的节点。
rules:分流规则
规则列表按从上到下的顺序逐条匹配,一旦某条规则命中,立即执行对应动作并停止继续匹配。规则格式为 类型,匹配值,策略,最后一条必须是 MATCH 兜底规则。
rules:
- DOMAIN,google.com,🚀 节点选择
- DOMAIN-SUFFIX,youtube.com,🎬 流媒体
- DOMAIN-KEYWORD,facebook,🚀 节点选择
- GEOIP,CN,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,🚀 节点选择
RULE-SET 引用社区维护的规则集,如 Loyalsoldier/clash-rules,包含了精心整理的国内直连域名和代理域名列表,开箱即用且定期更新。
配置最佳实践
在实际使用中,有几个配置建议可以显著提升体验:第一,将常用的流媒体平台(Netflix、Disney+、YouTube)单独设置策略组,方便根据需要解锁不同地区的内容;第二,为 url-test 策略组设置合理的 tolerance(容差值),避免延迟差异很小时频繁切换节点;第三,使用 external-controller 配合 Yacd 或 MetaCubeXD 等 Dashboard,可以在浏览器中实时监控连接状态和流量,大大方便排查问题。