客户端观察 · Clash 技术博客

Mihomo、Clash Meta 和原版 Clash 有什么区别?配置兼容与迁移指南

Mihomo 是 Clash Meta 后来采用的名称,图形客户端与内核版本需要分别确认。比较原版 Clash 和当前项目的字段、协议与维护状态,用配置检查和实际规则结果判断迁移是否可用。

  • Mihomo
  • Clash Meta
  • 配置兼容
  • 内核
本文目录

阅读教程时遇到不同项目名,最容易误把界面程序、代理内核和旧名称当成几个互相替代的工具。判断配置是否适合当前设备,真正要看实际运行的内核及版本。名称关系可以帮你读懂旧文档,兼容性还要靠配置检查和真实连接确认。

Clash Meta 与 Mihomo 是同一项目的不同名称

Mihomo 是 Clash Meta 后来采用的项目名称。Original Clash 通常指 Dreamacro 发起的早期 Clash 内核;旧教程中的 Meta 与当前日志中的 Mihomo,不代表两套需要二选一的内核。

更容易混淆的是客户端名称。Clash Verge Rev、FlClash 和 Clash Party 是图形客户端,它们负责订阅、系统代理和界面,里面实际运行的内核才可能是 Mihomo。文件名带 Clash,不足以证明它使用的是原版 Clash。

名称对应的层级

名称通常指什么现在看它有什么用
Original Clash最初的 Clash 内核与基础配置模型理解历史配置和旧客户端行为
Clash Meta在原有模型上扩展的后续内核名称阅读旧文档、旧日志和旧订阅说明
MihomoClash Meta 当前使用的项目名称新部署、当前字段和维护中的内核
Clash 图形客户端管理内核的桌面或移动应用看界面、平台支持和实际内置内核版本

查看实际运行的客户端与内核版本

同一份订阅在两台电脑上表现不同,先核对实际加载的配置、内核和版本。可在客户端的“设置 → 关于”“内核”或“运行日志”中记录完整名称与版本;命令行部署则查看当前运行的二进制,不用路径中另一份同名程序的结果代替。

命令行环境的确认方式
mihomo -v

# 如果机器上运行的是旧名称的二进制,也应先看它自己的版本
clash -v

记录时不要只写“最新版”

  • 客户端名称与版本
  • 内核显示为 Mihomo、Clash Meta 还是 Clash
  • 内核具体版本号
  • 操作系统和 CPU 架构
  • 发生错误时实际加载的配置文件

配置格式相似,也不能直接在不同内核间来回使用

Mihomo 延续了 proxies、proxy-groups 和 rules 等核心结构,所以基础配置看起来很熟悉。但它后来增加或扩展了协议、DNS、TUN、规则集、嗅探和运行时字段。

旧内核遇到自己不认识的内容,可能报 unknown field、unsupported proxy type,也可能直接忽略某些字段,留下更难发现的行为差异。

旧配置迁到新内核也可能需要调整。若旧配置使用的行为、脚本能力或客户端生成字段已经变化,在 Mihomo 中就要重新验证。兼容不能只看“YAML 能打开”,还要配置检查通过、策略组引用完整,规则命中与 DNS 结果都符合预期。

同一份订阅最容易出现差异的地方

部分原版 Clash 环境Mihomo 环境迁移时怎么做
节点协议与传输取决于旧核心及其版本,只认识当时支持的字段持续增加和维护更多协议与传输选项出现 unsupported proxy type 时核对内核,不删除节点字段硬凑
DNS不同开源/Premium 版本的能力与字段并不完全一样当前文档包含完整的 DNS、Fake-IP 和 nameserver 选项先沿用最小 DNS,再逐项迁移 Fake-IP 过滤和上游
TUN是否可用取决于旧版分支、版本和客户端集成当前 Mihomo 与主流客户端普遍提供 TUN先用系统代理验证,再单独开启 TUN 和服务权限
规则与 Provider旧核心只接受它认识的规则类型和结构支持当前文档中的规则、规则集及扩展字段检查 rule-provider behavior、策略组名称和最终合并结果
客户端附加字段可能由旧 GUI 的 Mixin、Parsers 或脚本生成由新客户端的 Merge、Script 或覆写生成按原用途重建,不整段复制客户端私有配置

unknown field

常见原因:当前内核不认识该字段,或字段被放错层级

处理方法:以实际内核版本的官方文档核对,不靠删除冒号试错。

unsupported proxy type

常见原因:协议或传输能力超出当前内核支持

处理方法:升级到服务方要求的维护中内核,或改用兼容节点。

proxy/group not found

常见原因:策略组、规则或覆写引用的名称不存在

处理方法:检查最终合并配置,而不只看原始订阅。

能加载但规则表现不同

常见原因:DNS、规则顺序或客户端覆写改变了运行结果

处理方法:用连接记录对照同一域名的命中规则和出口。

新装环境优先选维护中的 Mihomo,旧内核只留给明确的遗留需求

如果现在重新安装桌面客户端、路由器插件或服务器服务,优先选择明确使用 Mihomo、仍有官方发布和问题跟踪的项目。这样做主要是为了当前系统兼容、安全修复和文档一致,而不是因为名称更新就自动更快。

保留 Original Clash 的合理场景通常很窄:某套离线环境已经冻结,配置只使用它已知的能力,而且升级风险高于收益。即便如此,也应记录二进制来源、版本和回退方法,不应继续把旧内核暴露为公网控制服务。

OpenWrt 用户
同时确认插件版本、Mihomo 核心架构和可用存储,不只升级 LuCI 页面。
服务端或容器部署
锁定明确版本,先在测试目录运行配置检查,再替换运行实例。
遗留原版环境
保持隔离与可回滚,不将新协议订阅直接推给旧核心。

把旧配置迁到 Mihomo:备份、配置检查与实际连接测试

一份配置的安全迁移顺序

  1. 保留旧配置

    备份旧配置、内核版本和一组可重复访问的测试地址。

  2. 移除客户端私有项

    不要把旧 GUI 的窗口、缓存或服务设置当成 Mihomo 配置复制。

  3. 先跑配置检查

    用实际选定的 Mihomo 二进制,在独立测试目录检查候选配置;命令示例见下方。处理实际出现的首条解析、类型或引用错误,避免一次删掉整段。

  4. 固定相同节点

    先对照常用网站与内部域名;不读取系统代理的应用留到下一步开启 TUN 后再测试。

  5. 再开 DNS 与 TUN 扩展

    一次只改变一层,观察连接记录、规则命中和退出后的网络恢复。

以下命令按 Mihomo v1.19.32 的参数示例写成。把二进制和两个绝对路径换成实际位置,测试目录要有候选配置需要的可信 Provider 与数据文件副本,不能指向正在运行的目录。

-t 检查后退出,-d 指定工作目录,-f 指定配置。初始化可能写入测试目录或取得所需资源,不等于完全只读;成功输出只证明配置检查通过,连接、规则和退出恢复仍须另外验证。检查通过也不证明未知或旧客户端私有字段受支持,仍须对照该版本文档。

Mihomo v1.19.32 配置检查:替换二进制与绝对路径,使用可信候选文件
mihomo -t -d '/absolute/path/to/test-data' -f '/absolute/path/to/candidate.yaml'

迁移完成的判断不是客户端显示“已连接”,而是旧环境中的关键流量在新内核里命中预期规则,局域网与内部域名仍能直连,系统代理或 TUN 关闭后网络能恢复。达成这些结果以后,再删除旧二进制和旧服务。

参考资料