Skip to content

Clash 配置文件教程:从 YAML 基础到规则分流

最后更新于

2026-07-23

Clash 配置文件是一个 YAML 文本文件,用来告诉 Clash 或 Mihomo 监听哪个端口、连接哪些代理节点、如何组织策略组,以及每一类流量应该直连、拒绝还是经过代理。本教程以当前仍在维护的 Mihomo 内核为准,示例可用于理解配置结构,也适合排查订阅文件为什么无法加载。

如果你只是使用机场订阅,通常不需要从零编写完整配置。先在 Clash Verge Rev 中导入订阅,再用本文检查或追加规则,会更稳妥。

Clash YAML 配置包含哪些部分?

一份常见配置由六个部分组成。字段名称必须顶格,子项通常使用两个空格缩进,不能混用 Tab。

配置区块作用常见字段
基础设置定义本地端口、运行模式和日志mixed-portmodelog-level
proxies保存单个代理节点nametypeserverport
proxy-groups把节点组成可选择或自动测速的策略组selecturl-test
rules按顺序决定流量出口DOMAIN-SUFFIXIP-CIDRMATCH
dns控制域名解析和 Fake-IPnameserverenhanced-mode
tun通过虚拟网卡接管更多应用流量stackauto-routedns-hijack

Mihomo 官方配置文档列出了当前内核支持的全部字段。修改前应先确认客户端使用的是 Mihomo,旧版 Clash 内核可能不认识新字段。

一个可读的最小配置示例

下面的示例展示配置之间的引用关系。serverport、密码等内容只是占位符,不能直接用于连接。

yaml
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 配置文件?

  1. 先备份原文件:复制一份当前可用的 YAML,避免修改失败后无法恢复。
  2. 确认策略组名称:规则最后一列必须与 proxy-groups 中的 name 完全一致,包括大小写和表情符号。
  3. 把具体规则放在前面:Clash 从上到下匹配,命中后不会继续检查后面的规则。
  4. 保留兜底规则:通常把 MATCH,策略组名 放在最后,避免未匹配流量没有出口。
  5. 保存并重新加载:在客户端中重新激活配置;如果客户端提示错误,先查看日志中的行号。

Mihomo 使用 YAML 作为配置格式,规则和规则集语法可参考官方语法说明

规则分流怎么写?

最常用的规则类型如下:

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 的下载地址可访问,并核对 behaviordomainipcidr 还是 classical。类型与规则内容不匹配时,配置可能加载成功但分流结果不正确。

DNS 配置与 Fake-IP

DNS 异常常表现为“节点测速正常,但网页打不开”或“只有部分域名无法访问”。下面是便于理解的基础配置:

yaml
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-query

default-nameserver 用于解析 DNS 服务器自身的域名,应该填写 IP。nameserver 才是常规查询使用的解析器。Fake-IP 与个别局域网设备或应用冲突时,可使用 fake-ip-filter 排除对应域名。完整字段以Mihomo DNS 官方文档为准。

TUN 模式什么时候需要开启?

浏览器能走代理,但游戏、命令行或商店应用不生效时,可以考虑 TUN 模式。常见基础配置如下:

yaml
tun:
  enable: true
  stack: mixed
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53
    - tcp://any:53

TUN 需要虚拟网卡和系统权限。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 或脚本功能中,并保留原订阅作为数据源。

为什么规则写了却没有命中?

先检查规则顺序。更宽泛的规则如果排在前面,后面的精确规则永远不会执行;策略组名称拼写不一致也会导致加载失败。

ruleglobaldirect 模式有什么区别?

rulerules 分流,适合日常使用;global 让所有流量进入同一个策略组,常用于临时测试;direct 不使用代理。

配置里需要保留 MATCH 吗?

通常需要。MATCH 负责处理前面规则都没有覆盖的流量,应放在规则列表最后。

所有安装包均来自官方 Release 备份,纯净安全。