Clash 配置文件教程:从 YAML 基础到规则分流
最后更新于
2026-07-23
Clash 配置文件是一个 YAML 文本文件,用来告诉 Clash 或 Mihomo 监听哪个端口、连接哪些代理节点、如何组织策略组,以及每一类流量应该直连、拒绝还是经过代理。本教程以当前仍在维护的 Mihomo 内核为准,示例可用于理解配置结构,也适合排查订阅文件为什么无法加载。
如果你只是使用机场订阅,通常不需要从零编写完整配置。先在 Clash Verge Rev 中导入订阅,再用本文检查或追加规则,会更稳妥。
Clash YAML 配置包含哪些部分?
一份常见配置由六个部分组成。字段名称必须顶格,子项通常使用两个空格缩进,不能混用 Tab。
| 配置区块 | 作用 | 常见字段 |
|---|---|---|
| 基础设置 | 定义本地端口、运行模式和日志 | mixed-port、mode、log-level |
proxies | 保存单个代理节点 | name、type、server、port |
proxy-groups | 把节点组成可选择或自动测速的策略组 | select、url-test |
rules | 按顺序决定流量出口 | DOMAIN-SUFFIX、IP-CIDR、MATCH |
dns | 控制域名解析和 Fake-IP | nameserver、enhanced-mode |
tun | 通过虚拟网卡接管更多应用流量 | stack、auto-route、dns-hijack |
Mihomo 官方配置文档列出了当前内核支持的全部字段。修改前应先确认客户端使用的是 Mihomo,旧版 Clash 内核可能不认识新字段。
一个可读的最小配置示例
下面的示例展示配置之间的引用关系。server、port、密码等内容只是占位符,不能直接用于连接。
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
ipv6: false
proxies:
- name: 示例节点
type: ss
server: example.com
port: 443
cipher: aes-128-gcm
password: replace-me
proxy-groups:
- name: 节点选择
type: select
proxies:
- 示例节点
- DIRECT
rules:
- DOMAIN-SUFFIX,example.org,节点选择
- GEOIP,CN,DIRECT
- MATCH,节点选择这份配置的执行逻辑是:example.org 经过“节点选择”,中国大陆 IP 直连,前两条都没有命中的流量由最后的 MATCH 处理。
如何修改 Clash 配置文件?
- 先备份原文件:复制一份当前可用的 YAML,避免修改失败后无法恢复。
- 确认策略组名称:规则最后一列必须与
proxy-groups中的name完全一致,包括大小写和表情符号。 - 把具体规则放在前面:Clash 从上到下匹配,命中后不会继续检查后面的规则。
- 保留兜底规则:通常把
MATCH,策略组名放在最后,避免未匹配流量没有出口。 - 保存并重新加载:在客户端中重新激活配置;如果客户端提示错误,先查看日志中的行号。
Mihomo 使用 YAML 作为配置格式,规则和规则集语法可参考官方语法说明。
规则分流怎么写?
最常用的规则类型如下:
rules:
- DOMAIN,api.example.com,节点选择
- DOMAIN-SUFFIX,example.com,节点选择
- DOMAIN-KEYWORD,example,节点选择
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- GEOIP,CN,DIRECT
- MATCH,节点选择DOMAIN只匹配完整域名。DOMAIN-SUFFIX匹配域名及其子域名,日常使用最多。DOMAIN-KEYWORD范围较宽,容易误伤,应少量使用。IP-CIDR匹配 IP 网段;不需要域名解析时可加no-resolve。MATCH是最终兜底规则,通常只出现一次并放在最后。
如果你使用远程规则集,先确认 rule-providers 的下载地址可访问,并核对 behavior 是 domain、ipcidr 还是 classical。类型与规则内容不匹配时,配置可能加载成功但分流结果不正确。
DNS 配置与 Fake-IP
DNS 异常常表现为“节点测速正常,但网页打不开”或“只有部分域名无法访问”。下面是便于理解的基础配置:
dns:
enable: true
ipv6: false
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
default-nameserver:
- 223.5.5.5
nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-querydefault-nameserver 用于解析 DNS 服务器自身的域名,应该填写 IP。nameserver 才是常规查询使用的解析器。Fake-IP 与个别局域网设备或应用冲突时,可使用 fake-ip-filter 排除对应域名。完整字段以Mihomo DNS 官方文档为准。
TUN 模式什么时候需要开启?
浏览器能走代理,但游戏、命令行或商店应用不生效时,可以考虑 TUN 模式。常见基础配置如下:
tun:
enable: true
stack: mixed
auto-route: true
auto-detect-interface: true
dns-hijack:
- any:53
- tcp://any:53TUN 需要虚拟网卡和系统权限。Windows 防火墙、其他 VPN、虚拟机网卡都可能与它冲突。图形客户端已经提供 TUN 开关时,优先用客户端界面管理,不要同时在多处重复修改。各平台参数差异可查看Mihomo TUN 文档。
常见 YAML 报错怎么解决?
| 报错或现象 | 常见原因 | 检查方法 |
|---|---|---|
yaml: line ... | 缩进错误、缺少冒号、Tab 混入 | 查看报错行及上一行,统一用空格 |
proxy group ... not found | 规则引用了不存在的策略组 | 对照 proxy-groups.name 逐字检查 |
unsupported proxy type | 内核过旧,不支持订阅中的协议 | 更新 Mihomo 客户端或换兼容协议 |
| 配置加载后无法上网 | 节点不可用、兜底规则错误或 DNS 异常 | 先测试节点,再检查 MATCH 和 DNS |
| 修改后没有变化 | 编辑的不是当前激活配置 | 回到客户端确认配置文件名称并重新加载 |
更完整的按症状排查流程见 Clash 连接失败与常见报错解决方法。
Clash 配置文件常见问题
Clash 配置文件一般保存在哪里?
不同客户端的目录不同。最可靠的方法是在客户端的“配置”或“Profiles”页面选择“打开配置目录”,不要依赖网上给出的固定路径。
可以直接编辑机场订阅生成的 YAML 吗?
可以,但下次更新订阅时手动修改通常会被覆盖。长期规则更适合放入客户端的 Merge、Mixin 或脚本功能中,并保留原订阅作为数据源。
为什么规则写了却没有命中?
先检查规则顺序。更宽泛的规则如果排在前面,后面的精确规则永远不会执行;策略组名称拼写不一致也会导致加载失败。
rule、global 和 direct 模式有什么区别?
rule 按 rules 分流,适合日常使用;global 让所有流量进入同一个策略组,常用于临时测试;direct 不使用代理。
配置里需要保留 MATCH 吗?
通常需要。MATCH 负责处理前面规则都没有覆盖的流量,应放在规则列表最后。
