Clash Meta 配置文件怎么写?从模板到导入排错
简答:Clash Meta 配置文件本质是供 mihomo 客户端读取的 YAML,包含端口、节点、代理组和规则。先导入订阅或模板,再检查缩进、端口与策略组引用,确认配置通过校验后启用。
定义:Clash Meta 配置文件是由 mihomo 兼容客户端读取的 YAML 文件,用来定义代理入口、节点来源、代理组、DNS 与分流规则。
先分清:配置文件、订阅、节点和客户端
搜索“Clash Meta 配置文件”时,最容易混淆的是四个对象:客户端负责提供界面,mihomo 负责读取和执行配置,Profile 是客户端管理的一份配置,订阅则通常是远程地址或节点集合。配置文件不是客户端安装包,也不等于单独的一条节点信息。
本文把“Clash Meta 配置文件”按当前 mihomo 配置语法处理。配置字段、代理组和规则应以 mihomo 配置文档为准;不同客户端的菜单名称可能变化,导入时应以当前版本界面为准。wiki.metacubex.one
| 对象 | 作用 | 常见形式 | 是否能单独使用 |
|---|---|---|---|
| 客户端 | 提供导入、启用、日志和代理选择界面 | 桌面或 Android 应用 | 不能,通常需要配置 |
| mihomo | 解析 YAML 并执行代理、DNS、规则和 TUN | 内核或核心程序 | 需要配置文件或启动参数 |
| 配置文件 | 定义端口、代理组、规则等运行参数 | YAML 文件 | 可以本地导入,但可能没有节点 |
| 订阅 | 远程提供节点或配置内容 | HTTPS 地址 | 需要客户端或 provider 定期更新 |
如果你只想先验证 YAML 能否被解析,下面模板可以复制检查;它是“可校验模板”,不是带真实节点的完整可用配置。模板中的订阅地址为空,不能据此获得代理节点。
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
ipv6: false
proxies:
- name: DIRECT
type: direct
udp: true
proxy-groups:
- name: PROXY
type: select
proxies:
- DIRECT
rules:
- DOMAIN-SUFFIX,example.com,DIRECT
- MATCH,PROXY
mixed-port同时接受 HTTP(S) 和 SOCKS5 代理请求;mode: rule表示按规则匹配;proxy-groups中的名称必须能引用到节点或其他代理组;rules按从上到下的顺序匹配。相关字段可分别核对 代理端口文档、通用配置文档、代理组文档和 规则文档。wiki.metacubex.one
三种获取 Clash Meta 配置文件的方法
- 导入远程订阅:适合节点由服务端维护的情况。将订阅 URL 添加为远程 Profile,后续由客户端按设置更新。不要把包含个人 token 的订阅地址发布到论坛、截图或公开仓库。
- 导入本地 YAML:适合手动维护端口、DNS、规则或测试模板。保存为 UTF-8 编码的
.yaml文件,再通过客户端的本地配置入口导入。 - 使用 proxy-providers:适合把节点来源与主配置分开。mihomo 文档显示,HTTP provider 至少需要
type: http、url,并可设置本地path、更新间隔和健康检查。wiki.metacubex.one
provider 的最小结构可以这样写,但其中的地址必须替换为你已核实的订阅地址:
proxy-providers:
my-provider:
type: http
url: https://example.invalid/subscription
path: ./proxy-providers/my-provider.yaml
interval: 3600
health-check:
enable: true
url: https://www.gstatic.com/generate_204
interval: 300
上例只展示字段关系,不代表 example.invalid 是可用服务。真实订阅地址应从服务提供方的账户页面复制,并按官方说明确认格式、有效期和访问权限。
如果你要保留自己的代理组和规则,不要直接把所有修改写进每次都会被更新的远程文件。可以把节点放进 proxy-providers,主配置保留代理组与规则;provider 的 override 还可以对载入的节点统一设置名称前缀、UDP 或 IP 版本等字段,具体以 proxy-providers 文档为准。wiki.metacubex.one
Clash Meta 配置文件怎么导入和启用
Windows 桌面端:以 Clash Verge Rev 为例
- 打开客户端的 Profiles 页面,选择 Import。
- 远程配置使用 Profile URL 输入框,粘贴以
http://或https://开头的地址;本地配置选择 Local 类型并读取 YAML 文件。 - 导入完成后先查看配置内容或运行校验,再选择该 Profile,使其成为当前配置。
- 如果启用后无网络,先检查本地代理端口是否被其他软件占用,再查看客户端日志。
Clash Verge Rev 的界面资源中明确包含 Profiles、Import、Profile URL、Remote、Local,以及“只支持 YAML 文件”等提示;实际菜单可能随版本调整。github.com
Android:从文件或 URL 添加 Profile
- 在 Android 客户端中打开配置或 Profile 管理页面。
- 本地文件选择 YAML;远程方式粘贴订阅 URL,并确认地址未被截断。
- 导入后先选中该 Profile,再启动服务;不要只完成下载而忘记切换当前配置。
- 若使用系统调用,官方 Android 项目记录了
clash://install-config?url=和clashmeta://install-config?url=两种安装配置 URI,但调用方需要对 URL 参数进行编码。github.com
导入失败时不要直接反复点击更新:先把远程地址用浏览器或带正确 User-Agent 的 GET 请求检查返回内容,再确认返回的是 YAML、节点列表或其他格式。订阅内容可能包含个人 token,命令输出和日志中不要公开完整 URL。
如果启用 DNS 或 TUN,先从普通 mixed-port 配置开始。TUN 涉及系统路由、DNS 劫持和权限,mihomo 文档将其列为高级配置;Windows、macOS 与 Android 对 DNS 劫持也存在不同限制。wiki.metacubex.one
导入后报错:按这个顺序排查

| 现象 | 优先检查 | 处理方法 |
|---|---|---|
| YAML 解析失败 | 缩进、Tab、冒号后的空格、引号 | 统一使用空格缩进,不要混用 Tab;先删除最近新增的区块,再逐段恢复。 |
| 端口被占用 | mixed-port是否已被其他程序使用 | 换一个未占用的端口号,或关闭占用该端口的程序;不要只修改系统代理而不修改客户端端口。 |
| 策略组引用不存在 | proxy-groups.proxies与节点名称是否完全一致 | 检查大小写、空格和标点;规则最后的策略名也必须存在。 |
| 订阅导入成功但没有节点 | 返回内容格式、订阅权限和 provider 类型 | 确认远程内容是否为 YAML、URI 或 Base64,不能把不同格式直接混在同一配置文件中。 |
| 启用后无网络 | 当前模式、代理组选择、DNS 和系统代理 | 先切换到 mode: direct或选择 DIRECT测试,再恢复规则模式;日志中查看具体连接失败原因。 |
| TUN 启动失败 | 管理员权限、系统路由、DNS 模式和防火墙 | 先关闭 TUN 验证普通代理是否正常,再按当前系统权限重新启用;不要同时修改多个网络参数。 |
日志位置因客户端而异:优先查看客户端的日志页面或 Settings、Logs 一类入口;Clash Verge Rev 项目说明其配置、Profile 和日志文件可能包含订阅 token、代理地址以及请求域名,提交日志前应脱敏。github.com
规则排查要特别注意顺序。mihomo 按从上到下匹配,前面的规则优先级更高;如果把 MATCH 放在前面,后面的规则就不会生效。可以先保留一条明确的 DOMAIN-SUFFIX 规则和最后的 MATCH,确认命中后再逐步增加复杂规则。wiki.metacubex.one
更新于 2026 年 10 月 26 日。配置字段和客户端入口仍可能随版本变化,升级后应重新核对当前 mihomo 文档和客户端提示。
最后核对:导入前的安全与可用性清单
- 来源:只使用你能确认来源的本地 YAML 或订阅地址。
- 隐私:不要公开订阅 URL、密码、UUID、
external-controller和secret。 - 格式:文件扩展名、编码、YAML 缩进和字段层级正确。
- 引用:代理组名称、规则目标和 provider 名称逐字一致。
- 网络:先用 mixed-port 验证,再增加 DNS、规则和 TUN。
- 备份:修改前复制一份本地配置,订阅更新后比较差异。
如果你只是想快速完成一次导入,优先选择“远程订阅 + 客户端 Profile”;如果你要长期维护规则,选择“主配置 + proxy-providers”更容易避免订阅更新覆盖自定义内容。
本站是技术教程站,与文中客户端项目并非同一主体;如需继续排查具体连接问题,可先按日志和配置字段逐项核对。
常见问题
Clash Meta 配置文件和 mihomo 配置文件有什么区别?
在本文语境中,两者都指供 mihomo 兼容客户端读取的 YAML 配置。Clash Meta 是用户常用搜索说法,实际字段应以当前 mihomo 文档为准;不同客户端仍可能有自己的 Profile 管理方式。
Clash Meta 配置文件可以直接下载使用吗?
可以导入本地 YAML,但能否直接工作取决于文件是否包含有效节点、代理组和规则。只有端口与 DIRECT 的模板可以用于格式校验,不能提供真实代理连接;含订阅地址的文件还要核对来源和权限。
订阅更新后,为什么自己改的规则不见了?
如果你直接修改了远程 Profile,更新时可能被远程内容覆盖。更稳妥的做法是把节点放入 proxy-providers,把自定义代理组和 rules 保留在主配置中,并按 mihomo 文档使用 provider 的 override 或其他合并方式。
配置文件导入成功但启用后无网络怎么办?
先确认当前 Profile 已选中,再检查 mixed-port、代理组选择和系统代理;随后查看日志。若仍无网络,临时选择 DIRECT 或切换直连模式测试,以区分配置解析问题、节点问题和 DNS/TUN 问题。
YAML 配置里能不能同时写节点 URI、Base64 和 proxies?
不要把不同格式直接混在同一文件中。mihomo 的 provider 内容文档说明,YAML、URI 和 Base64 的写法有不同结构;使用前应先确认订阅返回格式,再选择对应导入方式。