1. 顶层基础控制参数(General Options)
配置文件的首部用于定义内核的全局运行行为:
```yaml
# 混合代理端口(同时接管 HTTP 与 SOCKS5 流量)
mixed-port: 7890
# 是否允许局域网其他设备连接本机的代理端口
allow-lan: false
# 绑定局域网 IP(若机器有多张网卡,可指定绑定网卡地址)
bind-address: "*"
# 运行模式: rule (规则分流) / global (全局代理) / direct (直连跳过)
mode: rule
# 日志输出等级: silent / error / warning / info / debug
log-level: info
# 是否启用 IPv6 (若本地网络无 IPv6 环境建议关闭以降低解析延迟)
ipv6: false
# RESTful 外部控制器地址与鉴权密钥
external-controller: 0.0.0.0:9090
secret: "MySecret2026"
```
### 重点提示:
- **mixed-port**:已全面取代旧版 Clash 的 `port: 7890` 与 `socks-port: 7891`,单端口自适应协议握手,简化系统代理设置;
- **allow-lan**:若仅在个人电脑运行务必设为 `false`;若作为旁路由或家庭网关共享代理,需设为 `true`。
💡 在公共 Wi-Fi 环境下开启 allow-lan 且未设置密码认证,会导致同一局域网下的陌生设备盗用你的代理流量。
2. proxies(物理代理节点定义)
`proxies` 是一个数组列表,每一项代表一台远程代理服务器的物理连接参数:
每个节点必须包含以下三个基础字段:
- **`name`**:节点的唯一显示名称,不允许重名;
- **`type`**:协议类型(如 `ss`, `vmess`, `trojan`, `vless`, `hysteria2`);
- **`server`**:服务器域名或 IPv4/IPv6 地址;
- **`port`**:远程服务端口。
yaml
# 多协议节点标准定义范例
proxies:
# 经典 Shadowsocks 节点
- name: "香港 01 | SS 专线"
type: ss
server: hk1.clashwiki.example.com
port: 8388
cipher: 2022-blake3-aes-128-gcm
password: "PasswordExample=="
# 现代 VLESS Reality 节点
- name: "日本 01 | VLESS Reality"
type: vless
server: jp1.clashwiki.example.com
port: 443
uuid: "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d"
network: tcp
tls: true
flow: xtls-rprx-vision
servername: www.microsoft.com
reality-opts:
public-key: "8mN_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
short-id: "abcd1234ef56"
client-fingerprint: chrome 3. proxy-groups(策略组逻辑拓扑)
`proxy-groups` 负责将分散的底层节点组织为具备分流控制能力的逻辑实体:
### 四大主流策略组类型:
1. **`select`**:手动选择模式,在 Web 界面或客户端 UI 中由用户自主点击勾选节点;
2. **`url-test`**:自动延迟测速优选,内核定期向测试 URL 发送 HTTP GET 请求,自动切换至延迟最低的节点;
3. **`fallback`**:故障熔断备灾模式,按顺序优先使用第一个节点,若第一个节点离线自动顺延至第二个可用节点;
4. **`load-balance`**:负载均衡模式,将请求分发至不同节点。
yaml
# 常用策略组嵌套设计
proxy-groups:
# 总控代理选择组
- name: "PROXY"
type: select
proxies:
- "AUTO-BEST"
- "香港 01 | SS 专线"
- "日本 01 | VLESS Reality"
- DIRECT
# 自动测速优选组
- name: "AUTO-BEST"
type: url-test
proxies:
- "香港 01 | SS 专线"
- "日本 01 | VLESS Reality"
url: "https://www.gstatic.com/generate_204"
interval: 300
tolerance: 50 4. rules(分流路由规则链)
`rules` 决定了数据包的最终走向,自上而下逐行单向匹配:
yaml
rules:
# 1. 域名精准匹配
- DOMAIN,google.com,PROXY
# 2. 域名后缀匹配 (匹配所有子域名)
- DOMAIN-SUFFIX,youtube.com,PROXY
- DOMAIN-SUFFIX,github.com,PROXY
# 3. 域名关键字匹配
- DOMAIN-KEYWORD,twitter,PROXY
# 4. 国内局域网与常用直连
- GEOIP,LAN,DIRECT
- GEOIP,CN,DIRECT
# 5. 最终兜底规则 (必须置于最后一行)
- MATCH,PROXY ❓ 常见疑问与排查步骤
YAML 中缩进可以用 Tab 键吗?
绝对禁止。YAML 规范严禁使用 Tab 制表符作为缩进,必须使用空格(推荐使用 2 个空格),使用 Tab 会直接导致内核反序列化失败。
MATCH 规则可以写在 rules 的最开头吗?
不能。MATCH 是无条件通配命中规则,一旦置于顶部,所有数据包在第一行就会被直接捕获,后续所有细分规则将全部失效。
如何给节点批量引用 YAML 锚点(Anchors)?
可以使用 `&default-opts` 定义模板,并在具体节点使用 `<<: *default-opts` 展开引用,极大减少重复字段的冗余度。