Clash 配置文件怎么看?YAML 结构与常用字段讲解

先说结论

Clash 配置文件是一份 YAML 纯文本,包含端口与开关、dns、proxies、proxy-groups、rules 几块。拿到陌生配置时倒着读最省力:先看规则指向哪个组,再看组里有哪些节点,最后核对节点字段。

Clash 配置文件是一份用 YAML 写成的纯文本,从上到下依次排着端口与开关、DNS、节点、策略组和规则几大块。读懂它不必先背字段,倒着读更省力:先看规则把流量指向哪个组,再看组里有哪些节点,最后才核对节点本身。下面按这个思路,把每一块的作用、常用字段和写错的后果讲清楚。

一份 Clash 配置文件长什么样

先看一个只有占位内容的骨架,域名、密码和名称都是举例:

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info

dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver:
    - https://dns.example.com/dns-query

proxies:
  - name: "节点甲"
    type: trojan
    server: node.example.com
    port: 443
    password: "占位密码"
    sni: node.example.com

proxy-groups:
  - name: "手动选择"
    type: select
    proxies:
      - "节点甲"
      - DIRECT

rules:
  - DOMAIN-SUFFIX,example.org,手动选择
  - GEOIP,CN,DIRECT
  - MATCH,手动选择

这就是 clash配置文件格式的全貌:最外层是若干个顶层字段,有的是单个值(mode),有的是一段缩进的内容(dns),有的是用短横线开头的列表(proxies、rules)。真实订阅里的节点可能有几十条,但结构不会变。

读 clash yaml 先过三条语法关

多数“导入失败”其实不是内容问题,而是 YAML 语法问题。把这三条记住:

规矩 正确写法 常见错误 后果
缩进只用空格 同一层级空格数一致 混入 Tab,或者层级差一个空格 解析失败,或者字段被挂到别的层级下
冒号后面要有空格 mode: rule mode:rule 整行被当成普通字符串,解析报错或字段不生效
含特殊字符的值要加引号 name: "节点 A: 备用" 名称里带冒号、井号却没加引号 内容被截断或误当成注释

另外两个细节:# 开头是注释,- 开头是列表项。词典里有 YAML 的简要解释。聊天软件和文档编辑器常把英文引号自动替换成中文全角引号,YAML 认不出这种引号,从它们那里复制配置之后务必检查一遍。

顶层字段:端口、模式与开关

字段 作用 写错的后果
mixed-port 同时接受 HTTP 与 SOCKS5 的本地监听端口 与别的程序撞端口,客户端提示冲突,见 端口被占用怎么办
allow-lan 是否允许局域网内其他设备使用这个代理 误开为 true,同一网络里的设备都能连进来
mode 规则、全局或直连 写成全局后,规则看似“失效”,其实是被绕过了
log-level 日志详细程度 级别过低时,排错缺少线索
external-controller 与 secret 供图形界面控制内核的接口及其口令 监听地址放开却没有口令,等于把控制权交给同网络的人

这一层的字段是“全局开关”,改动影响面最大,所以也是新手最该克制的一层。

proxies、proxy-groups、rules、dns:四块各管什么

proxies:节点的清单

每个条目至少有名称、类型、服务器地址和端口,再加上协议自己的字段,比如密码或 uuid、传输方式、SNI。名称必须唯一,因为后面的策略组靠名字引用它。字段随协议而变,各协议的写法在 Mihomo 文档站按协议分页。要留意 skip-cert-verify 这类选项:设为 true 会跳过证书校验,意味着连接可能被中间人冒充,除非清楚原因,不要随手打开。

proxy-groups:把节点组织成可选的组

策略组决定“这批流量用哪个节点”:有的手动选,有的自动按延迟挑,有的按顺序故障转移。写错最典型的后果是名字对不上,比如组里引用了一个 proxies 中不存在的名称,配置加载时就会报错。类型怎么选,见 Clash 策略组是什么。

rules:流量去向的判决书

每条规则的格式是“类型,内容,去向”,从上往下匹配,命中就停。去向既可以是策略组名,也可以是 DIRECT 之类的内置动作。顺序错了,结果就错。没有命中任何规则时的默认去向,以内核文档为准,稳妥的做法是自己写好最后一条 MATCH。细节见 Clash 规则怎么写。

dns:内核自己的域名解析

决定域名怎么被解析、解析结果交给谁。模式选错,轻则个别程序拿到虚拟地址,重则出现 DNS 泄露。Fake-IP 的原理和取舍放在 Clash DNS 设置详解 单独讲。

拿到陌生配置,五分钟倒着读

  1. 翻到文件末尾的 rules,找最后一条 MATCH,看没被前面规则命中的流量交给谁。
  2. 记下规则里出现的去向名称,到 proxy-groups 里逐个找到它们,确认每个名称都存在。
  3. 看每个组的类型和成员,成员里的名字再到 proxies 里核对。
  4. 数一数 proxies 里有多少条,扫一眼 server 字段,确认没有陌生的地址混进来。
  5. 最后回到顶部,看端口、allow-lan 和 external-controller,确认没有对外开放的设置。

倒着读的好处是始终沿着流量的实际路径走:请求先撞上规则,规则指向组,组里挑出节点。顺着读更像在背字典,看完也不知道改哪里。

clash配置文件url 是什么:远程地址与本地文件

客户端里常见的“配置文件 URL”,指的是一个能返回配置内容的网址,客户端用它拉取内容并定期更新;对应的另一种来源是本地文件,导入后不会自己变化。两者的差别在于更新方式:

来源 内容从哪来 改动会怎样
远程 URL 客户端按设定的间隔去拉取 你在本地的修改容易被下一次拉取覆盖
本地文件 你自己放进去的文件 不会自动更新,节点变了需要手动替换

另外,配置内部还可以再引用网址:节点集合(proxy-providers)和规则集(rule-providers)都能写成从某个网址拉取。这些网址决定了你的内核会采纳谁写的内容,来源要可信。带有密钥参数的 URL 等同账号凭证,不要发给别人。订阅链接的更新和导入步骤,见 Clash 订阅怎么导入。

怎么确认 Clash 配置文件没有写错

  • 看客户端的报错:导入或重载失败时,客户端的日志里通常会指出出错的行或名称,把原文记下来。
  • 用内核自带的检查:内核的命令行里有检查配置是否合法的启动参数,名称以所用版本的帮助信息和 README 为准。
  • 拿骨架对照:用 Clash 最小配置生成器 生成一份最小配置,与你手上的逐块比对,缺了哪一块一目了然。
  • 改一处试一处:每次只动一个字段,改完重载并确认效果。

字段拿不准的时候,别靠搜索引擎里的旧文章猜,直接翻 官方文档导航 里的 Mihomo 文档,它分简介、安装、手册、配置和 API 几块。

下一步:从读懂走到会改

  1. 先拿自己正在用的 Clash 配置文件,按“倒着读”的五步走一遍,把看不懂的字段记下来去查文档。
  2. 想改分流,读 Clash 规则怎么写;想搞懂组的类型,读 Clash 策略组是什么。
  3. 对内核本身还不熟,看 Mihomo 内核是什么。
  4. 想在图形客户端里把这些概念对应起来,配合 Clash Verge Rev 使用教程 看。

这篇没有覆盖的

  • 本文按 Mihomo 内核的写法讲结构,字段的完整清单和默认值请查所用内核的文档。
  • 在配置之外加工订阅的脚本与覆写机制,本文没有展开。
  • 文中的域名、密码和名称都是占位示例,不能直接拿去使用。

本文引用的官方来源

  1. Mihomo(Clash Meta)文档(wiki.metacubex.one)
  2. Mihomo 内核官方仓库(github.com)
  3. Clash Verge Rev 官方文档(www.clashverge.dev)

以上链接均为官方页面,梯子岛在 2026-10-09 核对过;个别网站会拦截自动化访问,用浏览器直接打开即可。平台规则可能随时调整,以官方页面当前内容为准。

Clash 配置文件常见问题

Clash 配置文件的扩展名必须是 .yaml 吗?

常见的写法是 .yaml 或 .yml,但决定能不能用的是文件内容是否为合法的 YAML,以及客户端的导入要求,而不是扩展名本身。把扩展名改成别的并不能修好内容里的错误,导入失败时应当先检查缩进和冒号。

配置文件里的缩进可以用 Tab 吗?

不可以。YAML 规定缩进只能用空格,用 Tab 会直接解析失败。在编辑器里把 Tab 显示出来,或者设置成按下 Tab 时输入空格,可以避免这个错误。同一层级的缩进空格数要保持一致,常见写法是每层两个空格。

订阅链接和配置文件是同一个东西吗?

不完全是。订阅链接是一个网址,客户端访问它会拿回内容;如果拿回的是 YAML 配置,那份内容才是配置文件。有的订阅返回的是 Base64 编码的节点链接列表,这种内容不是 Clash 配置文件,需要先转换。

能直接复制网上别人分享的配置来用吗?

不建议。别人的配置里的节点是别人的,规则集和节点集合的网址也由对方指定,你的客户端会定期去拉取。只导入来源可信的配置,并先通读一遍里面的网址和 proxies 条目,再决定要不要用。

同一个字段在 Clash 原版和 Mihomo 里写法一样吗?

不一定。Mihomo 在原版基础上增加了不少字段和协议,也调整过部分默认值,网上较老的教程可能不再适用。写配置时以你实际使用的内核的官方文档为准,不确定时先在小范围改一处试试。

接着读

文中出现的术语

相关专题

接下来去哪儿?

找官方入口去网址导航,想核对仓库和版本看GitHub 项目导航;需要现成的机场,机场目录收了 28 家的价格与线路资料,性价比机场、便宜机场、VPN 机场分别有专项页。