Clash 配置生成:节点与订阅转 Mihomo YAML,生成、导入、校验一步到位
简答:Clash 配置生成先按输入选择路径:订阅 URL 优先直接导入客户端,单条或多条节点链接再本地转换为 Mihomo YAML,已有 YAML 用 mihomo -t 校验,最后在 Clash Verge Rev 中选中并启用配置。
定义:Clash 配置生成,是把单节点链接、批量节点、Base64 订阅或订阅 URL 转换为客户端能够读取的 Clash/Mihomo YAML,并补齐代理组、规则或 DNS 等配置结构。
30 秒速查:先判断你要生成什么
本文与 Clash 项目及其开发者无隶属关系。先看你手里的内容,再决定是否需要生成 YAML;很多人其实只需要在客户端直接添加订阅,不必把远程订阅转换成新文件。
| 现有内容 | 优先路径 | 生成结果 | 先检查什么 |
|---|---|---|---|
一个 vmess://、vless://、trojan://、ss:// 等链接 | 本地转换为单节点 YAML | proxies 中包含一个节点 | 服务器、端口、认证字段和 TLS 参数是否完整 |
| 多条节点分享链接 | 逐行输入本地转换工具 | 批量节点 YAML | 每行一个链接,删除空行和不明参数 |
| Base64 订阅或订阅 URL | 客户端直接导入;需要筛选时再本地转换 | 远程 Profile 或本地 YAML | 订阅地址是否仍然有效,返回内容是否为配置而非登录页 |
| 已有 YAML | 先用 Mihomo 校验,再导入客户端 | 可修正的 Clash/Mihomo 配置 | 缩进、冒号、节点名称和代理组引用是否一致 |
最短结论:订阅 URL → 直接导入;单条或多条节点链接 → 本地转换;已有 YAML → mihomo -t 校验。需要合并多个订阅、筛选节点、修改代理组或统一规则时,才值得生成新的 YAML。
如果不想手写,可以优先选择本地运行的 SubConv 开源仓库。仓库说明它用于把订阅转换为 Mihomo 兼容配置,并支持 Clash 配置和 Base64 格式输入;具体安装方式、模板和协议支持以仓库当前说明为准。不要把真实订阅、UUID、密码或密钥直接粘贴到不明在线页面。
生成前先选目标:Mihomo YAML 还是旧 Clash 格式
“Clash 配置”并不是所有客户端都完全通用。生成前应先确认目标客户端使用的内核,再把目标写成“面向 Mihomo 的 YAML”。Mihomo 配置文档列出了多种出站代理类型和配置结构,字段名称必须以对应协议文档为准。Mihomo 配置文档
原版 Clash 核心的维护和协议兼容性不能默认等同于 Mihomo。SubConv 仓库 README 明确提示原始 Clash 核心已不再获得支持,并建议使用 Mihomo;如果旧客户端导入后提示未知字段、节点数量为零或配置加载成功但全部不可用,应先检查客户端内核,而不是立刻重写 YAML。SubConv 项目说明
| 协议 | 常见关键字段 | 容易出错的地方 | 核对文档 |
|---|---|---|---|
| VMess | server、port、uuid、alterId、cipher、传输层、TLS | UUID、端口、传输层、TLS 与服务端不匹配 | Mihomo VMess 配置 |
| VLESS | server、port、uuid、network、TLS 或 Reality 参数 | servername、public-key、short-id、Path 或 gRPC 服务名填错 | Mihomo VLESS 配置 |
| Trojan | server、port、password、TLS 参数 | 密码、SNI、证书校验或端口不一致 | Mihomo Trojan 配置 |
| Shadowsocks | server、port、cipher、password | 加密方式、密码、端口或插件参数不一致 | Mihomo Shadowsocks 配置 |
| Hysteria2 | server、port、password、TLS、SNI、可选混淆参数 | 把 Hysteria v1 字段套用到 Hysteria2,或漏填密码、TLS、端口 | Mihomo Hysteria2 配置 |
| TUIC | server、port、UUID、密码、TLS、ALPN 和拥塞控制相关参数 | 认证方式、ALPN、SNI、证书校验或版本不匹配 | Mihomo TUIC 配置 |
servername、证书校验、Reality 公钥和短 ID 都属于连接参数,不能拿示例值替换真实值。TLS 相关字段应对照 Mihomo 的 TLS 配置说明填写;如果只是排查语法,不要把 skip-cert-verify 当成默认修复方法。Mihomo TLS 配置
不想手写:两条可照做的生成路径
路径一:订阅 URL 直接导入
- 复制完整订阅地址,保留所有参数,不要截断问号后的内容。
- 打开支持远程 Profile 的客户端,选择添加远程配置或订阅链接。
- 粘贴 URL,保存并等待配置下载完成。
- 回到配置列表,选中刚添加的 Profile,再进入代理页面选择节点或策略组。
- 如果提示下载成功但节点为空,用浏览器或命令行查看响应内容,确认不是 HTML 登录页、JSON 报错或空白文件。
订阅地址应按权限凭据处理。Clash Verge Rev 的隐私说明指出,远程 Profile 更新会向你填写的订阅地址发起请求,订阅提供方能够看到请求来源 IP;自动更新开启后还会按设置重复请求。Clash Verge Rev 隐私说明
路径二:用 SubConv 本地转换
- 先阅读 SubConv 仓库中的安装说明,并按当前文档准备运行环境。
- 逐行粘贴节点分享链接,或输入订阅内容;真实 URL、UUID、密码和端口只使用自己的值。
- 目标选择 Mihomo 兼容配置,第一次建议使用仓库提供的通用模板,不要同时叠加复杂规则、TUN、Fake-IP 和大量远程规则集。
- 生成后保存为
config.yaml,用文本编辑器确认缩进没有被压平,再执行配置测试。 - 如果需要修改规则或代理组,先备份原文件,每次只改一类字段,便于定位问题。
SubConv 仓库列出了通用模板和自部署方式,但不会替你核验节点来源、服务端参数或配置安全性。生成成功只代表转换流程完成,不代表每个节点都能连接。
最小 YAML 结构示例
下面只演示结构,示例中的域名、端口、加密方式和密码都必须替换为你自己的真实值:
mode: rule
log-level: info
mixed-port: 7890
proxies:
- name: "替换为节点名称"
type: ss
server: "替换为服务器域名或 IP"
port: 443
cipher: "替换为服务端加密方式"
password: "替换为密码"
proxy-groups:
- name: PROXY
type: select
proxies:
- "替换为节点名称"
rules:
- MATCH,PROXY最小配置的判定标准是:能通过 Mihomo 语法测试,客户端能看到一个节点和一个代理组。先完成这一步,再逐项加入 TLS、传输层、DNS 和规则,避免一次修改多个变量。
Clash Verge Rev 导入 YAML:Windows、macOS、Linux 桌面端
Clash Verge Rev 的配置文档将导入方式分为远程订阅和本地配置:远程配置可以使用订阅链接导入或订阅链接配置,本地配置可以新建配置文件或拖拽配置文件。拖拽导入的最低版本要求以当前文档说明为准,文档目前写明为 v1.6.2。Clash Verge Rev 配置文档
- 打开 Clash Verge Rev,进入 Profiles/配置 页面。
- 导入订阅:选择远程订阅或导入订阅链接,粘贴以
http://或https://开头的地址并保存。 - 导入本地 YAML:选择新建本地配置文件,再选择
config.yaml;如果使用拖拽入口,把 YAML 文件拖入配置页面。 - 等待解析结束,点击该配置使其成为当前配置;不要只停留在“文件已导入”状态。
- 进入代理页面,选择节点或代理组,再按需要开启系统代理。
- 只有在需要接管非代理端口流量时才启用 TUN;如果开启后全机断网,先关闭 TUN,回到普通系统代理验证。
如果出现 client error(Connect),配置文档建议尝试其他导入方式;如果导入成功但看不到配置,可重新刷新配置列表。导入后应检查节点数量、代理组引用和规则内容,而不是直接开始修改 DNS。
Android、iOS 和其他客户端的边界
Android 端可通过应用内 Profile 页面添加远程配置或本地 YAML;公开仓库还记录了 clash://install-config?url= 和 clashmeta://install-config?url= 两种导入 Scheme,但菜单和权限提示可能随版本变化,优先使用客户端自己的配置页面。Clash Meta for Android 仓库
iOS、macOS 其他客户端的菜单名称不能统一套用。本文不把不同客户端的入口混写;如果你使用 sing-box,可参阅本站的sing-box 订阅导入步骤,如果使用 Windows 的 v2rayN,可参阅本站的v2rayN TUN、路由与 DNS 排查。无法核实具体客户端入口时,以该客户端当前文档为准。
生成后校验:先查 YAML,再查节点和规则
第一层:用 mihomo -t 检查配置
如果本机已经安装 Mihomo,把路径替换为实际配置文件路径:
mihomo -t -f "./config.yaml"这条命令的目的,是让 Mihomo 读取配置并检查结构。判定标准是命令正常返回;如果输出行号、字段名或缺少列表项,优先修正缩进、冒号、引号和字段拼写。当前 Mihomo 相关公开复现记录也使用 -t 进行配置测试,并结合 -d 指定运行目录;不同发行包的命令名可能不同,先用 mihomo -v确认可执行文件可用。Mihomo CLI 参数使用记录
如果配置依赖同目录的 GeoIP、GeoSite 或其他资源文件,建议建立独立配置目录,再使用目录模式启动:
mkdir -p ./mihomo-data
cp ./config.yaml ./mihomo-data/config.yaml
mihomo -t -d "./mihomo-data"命令中的目录和文件名只是示例,必须替换为实际路径。-d 适合需要同时读取配置和资源文件的场景;如果只验证一个独立 YAML,-t -f更直接。判断是否正常仍以命令返回和错误行号为准,不要仅凭窗口没有弹窗判断成功。
第二层:检查引用关系
- 节点为空:确认存在
proxies:,且节点下有name、type、服务器和端口。 - 代理组无可选节点:检查代理组中的节点名称是否与
proxies中的name完全一致,包括大小写和空格。 - 语法通过但连接失败:按协议表核对服务器、端口、UUID、密码、TLS、SNI、Path、Host 和传输层。
- TLS 握手失败:先检查
tls、servername、证书校验和 Reality 参数,不要先用关闭证书校验的方式掩盖字段错误。 - 规则不生效:先切换到全局或最小规则测试,再检查代理组和规则顺序;Mihomo 的运行模式和规则配置应分别核对。Mihomo 通用配置
第三层:最后处理 DNS、TUN 和规则集
DNS、TUN 和节点本身是三个不同问题。先用最小配置确认节点可用,再逐项增加 nameserver、fallback、nameserver-policy、TUN 和远程规则集。Mihomo 文档对 DNS 字段和 TUN 配置分别有说明,不建议把所有高级选项一次性加入生成模板。Mihomo DNS 配置 Mihomo TUN 配置
默认模板怎么选:先简单,再按需求增加功能
| 使用场景 | 建议模板 | 先启用 | 暂时不要启用 |
|---|---|---|---|
| 只想确认单节点能否连接 | 最小节点模板 | 一个节点、一个选择组、最简单规则 | TUN、Fake-IP、远程规则集、复杂 DNS |
| 日常多节点使用 | 通用规则模板 | 选择组、基本 Rule 模式、必要 DNS | 未经核对的脚本、陌生远程资源 |
| 合并多个订阅 | 本地转换加代理组模板 | 节点命名、来源分组、手动选择 | 自动更新频率过短、无来源规则集 |
| 办公网络排查 | 最小配置加系统代理 | 固定节点、日志、明确端口 | 一开始就启用 TUN 和复杂路由 |
如果只是把一个已有订阅放进客户端,默认选择“直接导入远程 Profile”。如果必须得到本地 YAML,默认选择“通用模板”,但先删去不需要的 DNS、TUN 和远程规则。这样可以把问题拆成“配置解析失败、节点握手失败、规则未命中、系统接管失败”四个阶段。
生成器显示“成功”并不等于节点可用。Mihomo 的 API 文档把代理状态、类型、是否存活和延迟历史作为运行时信息,因此连接验证应在客户端实际启动后再观察,而不是把 YAML 文件生成结果当作测速或可用性结论。Mihomo API 文档
安全检查与失败降级顺序
- 不要公开完整订阅 URL。它可能包含可直接访问订阅内容的权限信息。
- 不要把 UUID、密码、私钥、服务器地址和完整日志一起发到公开 Issue 或群聊。
- 导入远程 YAML 后,检查
proxies、proxy-groups、rules、dns、tun和远程资源地址。 - 如果不信任某个在线生成页面,改用客户端原生订阅导入,或在本机部署并运行开源转换项目。
- 如果配置生成失败,先只保留一个节点;如果导入失败,先运行
mihomo -t;如果语法通过但不通,再回到协议字段核对。 - 如果 Windows 能用而 Android 或 iOS 不能用,保持同一份最小 YAML,分别检查客户端内核、VPN 权限、TUN 和 DNS,不要同时换配置和节点。
这套顺序的目的,是区分转换工具、YAML 语法、客户端内核、系统权限和节点参数。若原始订阅可以直接导入,而转换后的 YAML 不能使用,优先回到原始订阅,再只转换一个节点做对照。
常见问题
Clash 配置生成应该输入节点链接还是订阅链接?
单个节点链接适合生成最小 YAML;多条分享链接适合批量转换;订阅 URL 通常优先直接导入客户端。只有需要合并订阅、筛选节点或修改规则时,才建议转换为本地 YAML。
为什么 YAML 生成成功,导入 Clash 后却没有节点?
常见原因是生成结果不是有效 YAML、代理组引用了不存在的节点名称、客户端内核不支持该协议,或订阅返回的是 HTML、登录页或错误信息。先用 mihomo -t 校验,再检查 proxies、proxy-groups 和返回内容。
在线生成 Clash 配置安全吗?
不能默认认为安全。订阅 URL、UUID、密码和节点地址可能属于敏感信息;更稳妥的路径是直接在客户端导入,或使用可信项目在本地转换,并在导入后检查规则、DNS、TUN 和远程资源。
UUID、SNI、Path 和 Host 在配置里有什么作用?
UUID通常用于部分协议的身份认证;SNI或servername用于 TLS 握手中的服务器名称;Path 是部分传输层使用的路径;Host 是部分传输层发送的主机名。它们必须与服务端参数匹配,不能照抄示例值。
为什么同一份配置在 Windows 能用,Android 或 iOS 却不能用?
不同平台的客户端、内核、VPN 权限、TUN 实现和协议支持可能不同。先用一个最小节点配置测试,再分别检查当前内核、系统 VPN 权限、Private DNS、TUN 和 DNS 设置。