首页/配置手册

Clash 配置文件完整参考

config.yaml 是 Clash 的唯一"大脑"。这一篇按顶层字段逐一拆解:每个字段是什么类型、默认值是多少、什么时候需要改它——把它当字典查,比翻源码快得多。

🕒 建议收藏随查 🧭 涉及行为差异见进阶配置 🔄 最近更新:2026 年 7 月

基础网络字段

这几项决定 Clash 在本机监听哪些端口、以什么方式接收流量,几乎每份配置都会用到。

portnumber默认无

HTTP 代理监听端口,例如 7890。设置系统代理时,HTTP/HTTPS 都会指向这个端口。

socks-portnumber默认无

SOCKS5 代理监听端口。部分工具(下载器、命令行程序)只支持 SOCKS5,需要单独配置这个端口。

mixed-portnumber默认无

混合端口,同一个端口同时接受 HTTP 与 SOCKS5 连接。现代客户端一般只需要配置这一个端口,比分开写 portsocks-port 更省心。

allow-lanboolean默认 false

是否允许局域网内的其他设备通过本机 IP 连接这个代理端口。想用手机连接电脑上跑的 Clash 时需要打开,同时建议配合下面的 authentication 使用,避免局域网内被陌生设备白嫖。

bind-addressstring默认 *

代理端口绑定的网卡地址,* 表示监听所有网卡。一般无需修改。

运行模式与日志

moderule | global | direct默认 rule

rulerules 列表分流(推荐日常使用);global 强制所有流量走同一个代理组,常用于临时调试;direct 所有流量直连,等价于关闭代理但保留客户端运行。

log-levelsilent | error | warning | info | debug默认 info

日志详细程度。排查连接问题时可临时改成 debug,查看每条规则的具体匹配过程;日常使用建议保持 info,避免日志文件迅速膨胀。

ipv6boolean默认 false

是否启用 IPv6 支持。多数国内网络环境仍以 IPv4 为主,如果所在网络原生支持 IPv6 且部分节点也支持,可以开启以提升兼容性。

外部控制器与面板

external-controllerstring如 127.0.0.1:9090

开启一个 RESTful API 监听地址,配套的 Web 控制面板(Dashboard)就是通过这个接口读取代理状态、连接列表与实时流量的。绝大多数带界面的客户端会自动帮你配置好这一项。

secretstring默认空

访问 external-controller 接口所需的密钥。如果 allow-lan 开启、面板又暴露在局域网中,务必设置一个密钥,否则局域网内任何人都能读取/修改你的代理配置。

proxies:节点定义

proxies 是一份列表,每一项描述一个具体的代理节点,字段随协议不同而变化,但都包含这几个通用字段:

字段说明
name节点显示名称,规则和代理组里引用的就是这个名字
type协议类型:ss / vmess / trojan / socks5
server服务器地址(域名或 IP)
port服务器端口
其余字段按协议不同,例如 Shadowsocks 需要 cipherpassword,VMess 需要 uuidalterId
config.yamlyaml
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 远程节点集合,替代手写节点列表
urlurl-test / fallback / load-balance用于健康检测的测速地址,一般用轻量的 generate_204 类接口
intervalurl-test / fallback / load-balance健康检测间隔(秒)
toleranceurl-test延迟容差(毫秒),避免节点在相近延迟间频繁切换
strategyload-balanceconsistent-hashinground-robin,决定分配算法

rules:分流规则

完整的规则类型列表见进阶配置 · 规则类型详解。这里只强调格式:每一行都是逗号分隔的三段式 类型,值,动作MATCH 例外,只有两段)。

config.yamlyaml
rules:
  - DOMAIN-SUFFIX,github.com,自动选择
  - GEOIP,CN,DIRECT
  - MATCH,自动选择

dns:域名解析

字段详解与 Fake-IP / Redir-Host 两种模式的取舍,见进阶配置 · DNS 与 Fake-IP。核心字段速查:

字段类型说明
enableboolean是否启用内置 DNS 模块(TUN 模式下必须开启)
enhanced-modefake-ip / redir-host域名解析策略,见进阶配置对比
fake-ip-rangestringFake-IP 使用的虚拟地址段,需与本机局域网段不冲突
nameserverstring[]默认使用的上游 DNS 服务器
fallbackstring[]当结果被判定为不可信时使用的备用 DNS
fallback-filterobject决定何时启用 fallback 的判定条件,如按 geoip-code 判断

tun:虚拟网卡

底层原理见进阶配置 · TUN 模式底层原理。核心字段:

字段类型说明
enableboolean是否启用 TUN 模式
stacksystem / gvisor网络栈实现方式,见进阶配置对比
auto-routeboolean是否自动配置系统路由表指向虚拟网卡
auto-detect-interfaceboolean自动探测物理网卡,避免手动指定出口接口
dns-hijackstring[]需要被劫持接管的 DNS 请求地址范围

profile:缓存策略

profile.store-selectedboolean默认 false

开启后,你在 select 类型代理组里手动切换的节点会被记住,下次启动客户端或更新订阅后依然保持你上次的选择,而不是重置回配置文件里写的默认节点。

profile.store-fake-ipboolean默认 false

是否缓存 Fake-IP 的域名映射关系。开启可以减少重启后的重复映射开销,但极少数场景下可能导致映射与真实解析结果暂时不一致。

一份最小可用配置

把以上内容拼起来,一份能实际跑起来的最小配置大致是这样(真实使用时 proxies 通常由订阅自动生成,无需手写):

config.yamlyaml
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 并导入客户端,就是一个能正常分流的最小系统。之后按需逐步加上 dnstunrule-providers 等模块即可。