首页/配置手册
Clash 配置文件完整参考
config.yaml 是 Clash 的唯一"大脑"。这一篇按顶层字段逐一拆解:每个字段是什么类型、默认值是多少、什么时候需要改它——把它当字典查,比翻源码快得多。
基础网络字段
这几项决定 Clash 在本机监听哪些端口、以什么方式接收流量,几乎每份配置都会用到。
HTTP 代理监听端口,例如 7890。设置系统代理时,HTTP/HTTPS 都会指向这个端口。
SOCKS5 代理监听端口。部分工具(下载器、命令行程序)只支持 SOCKS5,需要单独配置这个端口。
混合端口,同一个端口同时接受 HTTP 与 SOCKS5 连接。现代客户端一般只需要配置这一个端口,比分开写 port 和 socks-port 更省心。
是否允许局域网内的其他设备通过本机 IP 连接这个代理端口。想用手机连接电脑上跑的 Clash 时需要打开,同时建议配合下面的 authentication 使用,避免局域网内被陌生设备白嫖。
代理端口绑定的网卡地址,* 表示监听所有网卡。一般无需修改。
运行模式与日志
rule 按 rules 列表分流(推荐日常使用);global 强制所有流量走同一个代理组,常用于临时调试;direct 所有流量直连,等价于关闭代理但保留客户端运行。
日志详细程度。排查连接问题时可临时改成 debug,查看每条规则的具体匹配过程;日常使用建议保持 info,避免日志文件迅速膨胀。
是否启用 IPv6 支持。多数国内网络环境仍以 IPv4 为主,如果所在网络原生支持 IPv6 且部分节点也支持,可以开启以提升兼容性。
外部控制器与面板
开启一个 RESTful API 监听地址,配套的 Web 控制面板(Dashboard)就是通过这个接口读取代理状态、连接列表与实时流量的。绝大多数带界面的客户端会自动帮你配置好这一项。
访问 external-controller 接口所需的密钥。如果 allow-lan 开启、面板又暴露在局域网中,务必设置一个密钥,否则局域网内任何人都能读取/修改你的代理配置。
proxies:节点定义
proxies 是一份列表,每一项描述一个具体的代理节点,字段随协议不同而变化,但都包含这几个通用字段:
| 字段 | 说明 |
|---|---|
name | 节点显示名称,规则和代理组里引用的就是这个名字 |
type | 协议类型:ss / vmess / trojan / socks5 等 |
server | 服务器地址(域名或 IP) |
port | 服务器端口 |
| 其余字段 | 按协议不同,例如 Shadowsocks 需要 cipher 与 password,VMess 需要 uuid 与 alterId |
proxies:
- name: 香港01
type: ss
server: hk01.example.com
port: 443
cipher: aes-256-gcm
password: "your-password"
- name: 日本01
type: trojan
server: jp01.example.com
port: 443
password: "your-password"
sni: jp01.example.com
如果订阅链接是标准格式,客户端会自动把这一整段解析出来,你通常不需要手写——但理解结构有助于排查"某个节点连不上"时到底是哪个字段出了问题。
proxy-groups:调度组
四种类型(select / url-test / fallback / load-balance)的行为差异已经在进阶配置详细讲过,这里补充几个常用的通用字段:
| 字段 | 适用类型 | 说明 |
|---|---|---|
proxies | 全部 | 组内包含哪些具体节点或子分组的名字列表 |
use | 全部 | 引用一个 proxy-providers 远程节点集合,替代手写节点列表 |
url | url-test / fallback / load-balance | 用于健康检测的测速地址,一般用轻量的 generate_204 类接口 |
interval | url-test / fallback / load-balance | 健康检测间隔(秒) |
tolerance | url-test | 延迟容差(毫秒),避免节点在相近延迟间频繁切换 |
strategy | load-balance | consistent-hashing 或 round-robin,决定分配算法 |
rules:分流规则
完整的规则类型列表见进阶配置 · 规则类型详解。这里只强调格式:每一行都是逗号分隔的三段式 类型,值,动作(MATCH 例外,只有两段)。
rules:
- DOMAIN-SUFFIX,github.com,自动选择
- GEOIP,CN,DIRECT
- MATCH,自动选择
dns:域名解析
字段详解与 Fake-IP / Redir-Host 两种模式的取舍,见进阶配置 · DNS 与 Fake-IP。核心字段速查:
| 字段 | 类型 | 说明 |
|---|---|---|
enable | boolean | 是否启用内置 DNS 模块(TUN 模式下必须开启) |
enhanced-mode | fake-ip / redir-host | 域名解析策略,见进阶配置对比 |
fake-ip-range | string | Fake-IP 使用的虚拟地址段,需与本机局域网段不冲突 |
nameserver | string[] | 默认使用的上游 DNS 服务器 |
fallback | string[] | 当结果被判定为不可信时使用的备用 DNS |
fallback-filter | object | 决定何时启用 fallback 的判定条件,如按 geoip-code 判断 |
tun:虚拟网卡
底层原理见进阶配置 · TUN 模式底层原理。核心字段:
| 字段 | 类型 | 说明 |
|---|---|---|
enable | boolean | 是否启用 TUN 模式 |
stack | system / gvisor | 网络栈实现方式,见进阶配置对比 |
auto-route | boolean | 是否自动配置系统路由表指向虚拟网卡 |
auto-detect-interface | boolean | 自动探测物理网卡,避免手动指定出口接口 |
dns-hijack | string[] | 需要被劫持接管的 DNS 请求地址范围 |
profile:缓存策略
开启后,你在 select 类型代理组里手动切换的节点会被记住,下次启动客户端或更新订阅后依然保持你上次的选择,而不是重置回配置文件里写的默认节点。
是否缓存 Fake-IP 的域名映射关系。开启可以减少重启后的重复映射开销,但极少数场景下可能导致映射与真实解析结果暂时不一致。
一份最小可用配置
把以上内容拼起来,一份能实际跑起来的最小配置大致是这样(真实使用时 proxies 通常由订阅自动生成,无需手写):
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
proxies:
- name: 节点01
type: ss
server: example.com
port: 443
cipher: aes-256-gcm
password: "your-password"
proxy-groups:
- name: 自动选择
type: url-test
proxies: [节点01]
url: "https://www.gstatic.com/generate_204"
interval: 300
rules:
- GEOIP,CN,DIRECT
- MATCH,自动选择
把这份文件保存为 config.yaml 并导入客户端,就是一个能正常分流的最小系统。之后按需逐步加上 dns、tun、rule-providers 等模块即可。