配置文件使用 YAML 格式,对缩进非常敏感 —— 只能使用空格,不能使用 Tab。 一个完整的配置文件大致分为五块:基础设置、DNS、节点、代理组、规则。
加载位置与生效方式
内核通过 -d 参数指定工作目录,其中必须有 config.yaml:
clash-meta -d /etc/clash
# 目录内至少包含
/etc/clash/config.yaml
/etc/clash/Country.mmdb # 首次运行自动下载
基础端口设置
mixed-port: 7890 # HTTP 与 SOCKS5 共用端口
allow-lan: false # 是否允许局域网设备接入
bind-address: "*" # 允许接入时监听的地址
mode: rule # rule / global / direct
log-level: info # silent / error / warning / info / debug
ipv6: false # 是否启用 IPv6
external-controller: 127.0.0.1:9090 # 控制接口
secret: "" # 控制接口鉴权密码
| 字段 | 作用 |
|---|---|
mixed-port | 同时接受 HTTP 与 SOCKS5 请求,最常用 |
mode | 全局流量策略,rule 为按规则分流 |
allow-lan | 手机、电视等设备共用电脑代理时才需要开启 |
external-controller | 面板与 API 的入口,不要暴露到公网 |
proxies:节点定义
每个节点是一个列表项,通过 type 区分协议:
proxies:
- name: "东京-01"
type: ss
server: 203.0.113.10
port: 8388
cipher: aes-256-gcm
password: "your-password"
- name: "新加坡-01"
type: trojan
server: sg.example.com
port: 443
password: "your-password"
sni: sg.example.com
skip-cert-verify: false
name 是节点在规则里被引用的唯一标识,建议保持唯一且可读。
skip-cert-verify 原则上都应设为 false,跳过证书校验会带来中间人风险。
proxy-groups:代理组
代理组把若干节点聚合成一个逻辑出口,规则里引用的是组名而不是节点名。
proxy-groups:
- name: "🚀 节点选择"
type: select
proxies: ["东京-01", "新加坡-01", "♻️ 自动选择"]
- name: "♻️ 自动选择"
type: url-test
url: "http://www.gstatic.com/generate_204"
interval: 300
tolerance: 50
proxies: ["东京-01", "新加坡-01"]
四种常用类型的区别在 代理组与负载均衡策略 中有详细说明。
rules:分流规则
规则自上而下匹配,命中第一条即停止,因此顺序非常重要。
rules:
- DOMAIN-SUFFIX,local,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- DOMAIN-SUFFIX,example.cn,DIRECT
- GEOIP,CN,DIRECT
- MATCH,🚀 节点选择
记住两件事:内网与本地地址必须直连,否则会出现访问路由器后台失败;MATCH 是兜底规则,必须放在最后一行。
dns 与 tun 字段
dns:
enable: true
listen: 0.0.0.0:1053
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- https://1.1.1.1/dns-query
tun:
enable: true
stack: system # system / gvisor / mixed
auto-route: true
auto-detect-interface: true
DNS 的细节较多,单独放在 DNS 配置与防泄漏实践 中展开。
校验与热重载
改完配置后不要直接重启服务,先做语法校验:
# 语法校验,通过则不会有报错输出
clash-meta -d /etc/clash -t
# 服务方式运行时重载
systemctl reload clash
# 或通过 API 触发重载
curl -X PUT http://127.0.0.1:9090/configs \
-H "Content-Type: application/json" \
-d '{"path":"/etc/clash/config.yaml"}'
热重载不会中断已有连接,是日常调试的首选方式。
配置结构清楚之后,建议继续阅读 规则引擎与分流规则详解。
配置
← 返回教程列表