CordCloud - 高速网络服务

Clash Meta 配置文件怎么写?从 YAML 模板到导入排错

更新于 2026-10-26 · cordc.buzz

简答:Clash Meta 配置文件通常就是供 Mihomo 内核读取的 YAML 文件。先用最小模板确认文件能启动,再导入客户端;如果节点不显示,优先检查 YAML 缩进、内核兼容性、订阅返回内容和日志。排查完成后,你应能判断问题出在文件、节点还是客户端。

定义:Clash Meta 配置文件是按 YAML 结构编写、由 Mihomo 内核读取的配置,通常包含端口、运行模式、节点、代理组、DNS、规则等部分。

先试这一步:复制最小可运行配置,再逐项增加内容

如果你只是想先确认配置文件能否被客户端读取,不要一开始就加入复杂规则、TUN、DNS 覆写或大量代理组。下面这份骨架只保留常用的本地代理入口、规则模式、一个策略组和基础规则;其中没有虚构节点,后续可以把真实节点放入 proxies。

官方 Mihomo 文档将 mixed-port、mode、allow-lan 等列为全局配置,并将代理节点、代理组和规则分别放在独立配置段中。可先对照Mihomo 全局配置文档和Mihomo 配置总览检查字段名称。

mixed-port: 7890 mode: rule allow-lan: false log-level: info ipv6: false proxies: [] proxy-groups: - name: PROXY type: select proxies: - DIRECT rules: - DOMAIN,localhost,DIRECT - IP-CIDR,127.0.0.0/8,DIRECT,no-resolve - MATCH,PROXY

这份模板的含义是:本机使用端口号 7890,按规则模式处理请求;没有添加节点时,策略组仍可选择 DIRECT,因此适合先做 YAML 和端口检查。加入节点后,再把节点名称写入 proxy-groups.proxies,不要直接把不存在的名称填进策略组。

最小模板字段速查
字段作用新手建议
mixed-port同时提供 HTTP 和 SOCKS 代理入口先保留一个未被占用的端口号
mode决定直连、全局或规则匹配模式需要按规则分流时使用 rule
allow-lan是否允许局域网其他设备使用代理端口单机使用时设为 false
proxies定义具体代理节点节点名称必须唯一,节点类型和必填字段要匹配
proxy-groups把节点组织成可选择或自动测试的策略组组内只能引用已存在的节点或策略组
rules按顺序决定请求走哪个策略最后保留一条 MATCH 兜底规则

Clash Meta、Mihomo、客户端和配置文件分别是什么

这四个概念经常被混在一起:配置文件是 YAML 文本;Mihomo 是读取配置并处理流量的内核;Clash Verge Rev 等是带图形界面的客户端;Clash Meta 则是用户搜索配置文件时常用的旧称或生态称呼。实际导入前,最重要的是确认客户端当前使用的内核是否支持你写入的字段。

不要把“客户端能打开”理解成“配置一定能运行”。例如,客户端可能成功保存文件,但内核在激活时仍会因为 YAML 缩进、字段拼写、端口占用、策略组引用不存在或节点类型不完整而启动失败。Mihomo 的配置文档按全局设置、入站、代理节点、代理组、DNS 和规则分别说明字段,建议按照这个顺序定位。

本地 YAML 与远程订阅的区别
类型适合场景主要风险
本地 YAML学习字段、固定规则、手工维护节点修改后需要自己校验;节点变化不会自动同步
远程订阅 URL由服务端提供节点和配置,客户端定期更新更新可能覆盖本地改动;URL 返回内容不一定是有效 YAML
本地文件加覆写保留订阅节点,同时增加自己的规则或策略组覆写字段需符合客户端和内核支持范围

Clash Verge Rev 的公开界面文案包含 Import、Profile URL、Only YAML Files Supported、Edit File 和 Update 等入口。具体位置可能随版本变化,但导入逻辑可以按“配置文件页面—导入本地文件或 URL—激活配置—查看日志”执行,相关菜单名可参阅其Profiles 界面文案。

节点、代理组和规则应该怎样接起来

一个可用的分流配置至少要满足三层引用关系:节点先定义在 proxies;策略组通过 proxies 引用节点或其他策略组;规则最后把请求交给策略组、DIRECT 或 REJECT。Mihomo 文档要求代理节点名称唯一,代理组则通过节点名或策略组名建立引用。

下面是脱敏后的结构示例。它没有填入具体服务商节点,避免把无法核实的节点参数当成通用配置:

proxies: - name: 节点名称 type: ss server: example.com port: 443 cipher: aes-128-gcm password: 替换为密码 proxy-groups: - name: PROXY type: select proxies: - 节点名称 - DIRECT rules: - DOMAIN-SUFFIX,example.com,DIRECT - DOMAIN-KEYWORD,office,PROXY - MATCH,PROXY

上面只是字段结构示例,type: ss 对应的认证字段必须与实际协议匹配,不能把其他协议的字段照搬进来。代理节点的通用字段、必填的名称、类型、服务器和端口,可对照Mihomo 代理节点字段文档。

规则按从上到下的顺序匹配,顶部规则优先级更高。官方Mihomo 路由规则文档也说明了 DOMAIN、DOMAIN-SUFFIX、IP-CIDR、GEOIP 和 MATCH 等写法。实践中可以把明确的直连或拒绝规则放在前面,把分流规则放在中间,最后用 MATCH 兜底。

导入配置文件:本地 YAML、订阅 URL 与更新覆盖

  1. 准备文件。将内容保存为 config.yaml 或其他以 .yaml 结尾的文件,编码使用 UTF-8,缩进使用空格,不要混用 Tab。
  2. 导入本地文件。在客户端的配置或 Profiles 页面选择导入文件,选择 YAML 文件后等待解析完成。
  3. 导入远程订阅。选择添加 URL 或 Profile URL,粘贴订阅地址并保存。不要把订阅地址公开到截图、日志或示例文件中。
  4. 激活配置。导入成功不等于正在使用,仍需选择该配置并执行激活或切换。
  5. 再测试代理端口。先确认客户端显示内核运行,再用浏览器或系统代理设置连接;如果端口号已经被其他程序占用,先修改 mixed-port。
  6. 更新前备份本地改动。远程订阅更新可能重新生成或替换配置。需要保留的规则、策略组和 DNS 设置,应使用客户端支持的覆写或合并功能,而不是直接修改会被覆盖的订阅正文。

如果导入 URL 后得到的是 HTML 错误页、登录页或空内容,客户端可能提示格式错误。可在不暴露订阅凭据的前提下检查返回状态和内容类型;不要在输出中打印完整订阅地址、Cookie 或 token。

DNS 与 TUN:先解决基础配置,再启用高级功能

DNS 和 TUN 都会改变连接路径,建议在基础 YAML 能启动、策略组能显示后再开启。Mihomo 官方 DNS 文档列出了 fake-ip 与 redir-host 两种增强模式,并说明了 fake-ip-filter、nameserver 等字段。若某些局域网设备、企业域名或应用出现解析异常,可以先关闭复杂 DNS 覆写,回到基础配置进行对照。

一个较小的 DNS 片段可以写成:

dns: enable: true ipv6: false enhanced-mode: redir-host nameserver: - https://dns.alidns.com/dns-query

这是字段示例,不代表任何特定网络环境下的最佳 DNS。完整字段请参阅Mihomo DNS 配置文档。如果 DNS 片段导致内核无法启动,先暂时删除整个 dns 段,确认基础配置恢复后再逐行加入。

TUN 适合需要接管系统流量、自动路由或 DNS 劫持的场景,但它不是“节点不通”的第一修复手段。Mihomo 的TUN 配置文档列出了 stack、dns-mode、dns-hijack、auto-route 和 auto-detect-interface 等字段;其中 dns-mode: hijack 的平台行为有差异,Windows 还涉及 strict-route,Linux 的 DNS 劫持还涉及 auto-redirect。因此不要把一段 TUN 配置不加修改地复制到所有系统。

配置文件报错排查:按文件、内核、端口、节点顺序查

常见症状与处理顺序
症状优先检查处理方法
导入时提示不是 YAML文件扩展名、编码、缩进改为 UTF-8,删除 Tab,检查冒号后的空格和列表缩进
配置导入但无法激活字段是否被当前 Mihomo 内核支持先删除最近新增的字段,再按官方字段页逐项恢复
节点列表为空订阅返回内容或 proxies 段确认返回的确是配置或受支持的节点格式,不要只看 HTTP 状态
策略组为空组内名称是否与节点名称完全一致检查大小写、空格、特殊字符,以及是否误加了过滤条件
客户端启动失败端口号是否被占用更换 mixed-port,并在客户端日志面板查看具体报错
有节点但请求不走代理规则顺序、当前策略组、系统代理/TUN 状态先切到明确的策略组,再查看规则命中和内核日志

排查时不要一次修改多个部分。建议先保留最小模板,确认内核可启动;然后加入节点,再加入代理组,最后加入 DNS、规则集或 TUN。每次只改一段,出现错误后立即回退。

如果使用带面板的客户端,优先打开客户端的日志页面,查看配置解析错误、内核退出原因和连接失败信息。若是独立运行 Mihomo 服务,可根据启动方式查看服务日志;官方服务文档给出了 journalctl -u mihomo -o cat -e 等查看方式。不要把日志中的订阅 URL、密钥或认证信息原样发布。

最后核对:一份配置文件是否真的可用

  • 文件扩展名是 YAML,编码正常,缩进只使用空格。
  • mixed-port 使用未被占用的端口号。
  • allow-lan 在单机使用时保持关闭,只有明确需要局域网共享时才开启。
  • 代理节点名称唯一,策略组引用的每个名称都真实存在。
  • 规则从上到下排列,最后有明确的兜底规则。
  • DNS、TUN 和复杂覆写在基础配置稳定后再加入。
  • 远程订阅更新前,先备份本地规则和策略组改动。
  • 出现错误时查看客户端日志面板或 Mihomo 服务日志,而不是只凭“节点显示在线”判断。

本站是第三方使用指南站,不是 CordCloud 官方;涉及具体服务的订阅格式、节点字段和更新行为,应以对应服务提供的实际内容及官方说明为准。本文只说明 Mihomo 配置文件的通用结构,无法核实的节点参数不作保证。

常见问题

Clash Meta 配置文件和 Mihomo 配置文件是同一个东西吗?

在实际使用中,用户常把面向 Clash Meta 生态的 YAML 称为 Clash Meta 配置文件,而当前应以客户端实际使用的 Mihomo 内核字段为准。能否使用,最终取决于字段、版本和客户端是否支持。

为什么 YAML 文件导入成功,但节点和策略组不显示?

先确认订阅或本地文件返回的确是受支持的配置内容,再检查 proxies 是否为空、策略组是否引用了不存在的名称,以及是否设置了过滤条件。导入成功只代表文件被保存,不代表内容已经通过内核校验。

Clash Meta 配置文件中的 allow-lan 要不要打开?

单机使用通常不需要打开,保持 false 更容易控制暴露范围。只有需要让同一局域网的其他设备使用本机代理端口时,才考虑开启,并同时检查绑定地址、防火墙和访问范围。

配置文件启动失败时,应该先删掉哪一段?

先保留端口、mode、基础策略组和 rules,暂时删除 DNS、TUN、规则集、复杂代理组和覆写内容。确认最小配置能启动后,再按一次增加一段的方法恢复。

远程订阅更新后,自己改的规则不见了怎么办?

先确认更新是否重新生成了配置,再从备份恢复规则。长期需要保留的改动,应使用客户端提供的覆写、合并或编辑功能;不要假设直接修改订阅正文会在下次更新后保留。

相关阅读

参考资料

  1. Mihomo 配置总览
  2. Mihomo 全局配置文档
  3. Mihomo 代理节点字段文档
  4. Mihomo 路由规则文档
  5. Mihomo DNS 配置文档
  6. Mihomo TUN 配置文档
  7. Clash Verge Rev Profiles 界面文案
  8. Mihomo 服务启动与日志文档