先看结论:Meta 与 mihomo 是同一项目的名称延续
新配置选型时,先确认客户端实际运行的内核,而不是只看客户端名称。Clash 原版、Clash Premium 与 mihomo 的功能边界不同;Clash Meta 后来更名为 mihomo,并不是需要另外安装的第四种独立内核。旧教程中的“Meta 配置”通常指向这一项目的配置体系,但仍需按具体版本检查字段。
旧配置迁移到 mihomo 时,基础节点、策略组和常见域名规则通常可以沿用;新增协议、Premium 脚本、DNS、TUN 与规则集格式需要单独核对。反向迁移更受限制:能被 mihomo 解析的配置,不代表原版 Clash 也能运行。
项目关系:原版、Premium、Meta 与 mihomo
原版 Clash 与 Clash Premium
原版 Clash 通常指 Dreamacro/clash 的开源内核。Clash Premium 则是原项目提供的闭源增强内核分支,两者不能简单视为同一套功能。历史上,TUN、规则提供器和脚本规则等能力,是辨认 Premium 与原版开源内核差异的重要线索。原项目在 2023 年停止维护后,旧二进制仍可能运行,但不再适合作为持续获取新协议支持的基础。
Clash Meta 与 mihomo
Clash Meta 从 Clash 生态演进而来,扩展了协议与路由能力,随后项目更名为 mihomo。文件夹、订阅说明、旧版界面里保留 Meta 字样,并不必然表示内核过时;应以实际二进制的版本输出及对应发布说明判断。
- 原版 Clash:理解基础 YAML、HTTP/SOCKS 入站及规则分流的历史起点。
- Clash Premium:旧配置中高级规则、TUN 和脚本能力的来源之一。
- Clash Meta / mihomo:同一项目的前后名称,支持更多协议与配置扩展。
客户端能切换内核时,也不意味着可以任意替换可执行文件。内核启动参数、控制接口、服务权限和安装路径都可能由客户端管理。优先使用客户端提供的内核更新方式,并查看其明确支持的内核类型。
功能差异:协议、规则集与 TUN 分开比较
| 检查项 | 原版开源 Clash | Clash Premium | mihomo |
|---|---|---|---|
| 常见代理协议 | 支持 SS、VMess、Trojan 等,受旧版实现限制 | 以历史版本能力为准,不应假设支持新协议 | 扩展支持 VLESS、Hysteria2、TUIC 等 |
| 基础规则 | 支持域名、IP 网段、GEOIP 与最终匹配等规则 | 支持基础规则及增强能力 | 保留常见规则,并提供更多匹配能力 |
| rule-providers | 不能按 Premium 能力套用 | 支持,需核对规则行为与格式 | 支持,扩展格式需核对目标版本 |
| TUN 接入 | 不具备 Premium 的内置 TUN 能力 | 支持,依赖平台与权限 | 支持,具体网络栈与字段依版本而定 |
| Premium script | 不支持 | 历史专有能力 | 不能直接视为兼容,迁移时需改写 |
协议名称相同,也要核对传输与加密字段
节点写着 VMess,不代表连接参数已经完整。还需核对 UUID、TLS、服务器名称、WebSocket 路径与请求头等配置。对于 VLESS,还要确认服务端所用传输、安全层和相关参数。只修改 type,不会把一种协议转换成另一种协议。
Hysteria2 与 TUIC 依赖 UDP 网络环境。内核能够解析节点,却在当前网络持续超时,应继续检查 UDP 通路、服务端端口和证书参数,而不是直接归因于配置格式。支持某协议只是必要条件,不等于线路一定可达。
配置兼容:先保留基础结构,再处理扩展字段
一份典型配置包含 proxies、proxy-groups、rules,也可能包含 proxy-providers 与 rule-providers。这些名称看起来相近,职责却不同:前者可从外部加载节点,后者加载分流规则,不能互换订阅地址。
规则顺序与策略名称必须一起检查
以下片段用于说明 mihomo 的常见配置结构。示例将手动选择组指向 DIRECT,不会产生代理出口;实际使用时,应在保留直连选项的基础上,加入已有的有效节点或正确的节点提供器引用。
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
proxy-groups:
- name: 手动选择
type: select
proxies:
- DIRECT
rules:
- DOMAIN-SUFFIX,example.com,手动选择
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,手动选择
mixed-port: 7890为 HTTP 与 SOCKS 代理共用的监听端口示例,不代表所有客户端默认都使用它。allow-lan: false适合先在本机验证;需要局域网接入时再检查监听地址和防火墙范围。- 规则按顺序匹配。把
MATCH放到前面,会使后续规则失去预期作用。 - 规则中的“手动选择”必须与策略组名称完全一致,包括空格及大小写。
no-resolve表示该 IP 规则不主动触发域名解析,不等于关闭整个内核的 DNS。
Premium 脚本与新规则集格式要单独迁移
旧配置中的 script 不能直接当作 mihomo 兼容项。应把脚本实际做的域名、IP 或进程判断拆出来,改写为目标内核支持的规则;无法等价表达的逻辑,需要重新设计。迁移后既要通过语法检查,也要核对代表性请求的实际命中结果。
规则提供器还需检查 behavior 与文件内容是否一致。domain、ipcidr、classical 对应不同规则内容;YAML、文本以及 mihomo 的 MRS 格式也不能只靠修改文件后缀相互转换。MRS 等扩展格式还受规则行为与内核版本约束,旧内核未必能读取。
DNS 与 TUN:最容易出现“能启动但不能用”的部分
DNS 配置要区分解析入口与上游解析
DNS 的监听地址、上游服务器、Fake-IP 模式和域名例外列表分别解决不同问题。看到 enhanced-mode: fake-ip,只能说明使用了 Fake-IP 机制,不能据此判断系统请求一定进入内核。系统仍可能使用其他 DNS 通路,应用也可能启用自己的加密 DNS。
- 迁移前保存原来的
nameserver、fallback、fake-ip-filter及相关策略。 - 若只有本地设备名或内网域名异常,先核对局域网解析路径和 Fake-IP 例外,不要一次替换全部上游。
- 若日志提示上游域名解析失败,检查用于解析 DNS 服务器自身域名的引导解析设置。
- 配置变化后可重启相关应用;系统 DNS 缓存与应用缓存不会总在内核重载时同步清除。
TUN 接管流量,不负责修复节点参数
TUN 通过虚拟网络接口接入流量,通常需要管理员或相应网络权限。Windows 的服务模式、Linux 的路由与权限、macOS 的网络扩展或虚拟接口处理方式,应按客户端实现分别检查。普通系统代理已能工作时,再测试 TUN,定位范围会更小。
tun.auto-route、tun.auto-detect-interface 与 tun.dns-hijack 分别涉及路由、出口识别和 DNS 接入,不是可互相替代的“增强开关”。示例中的 any:53 针对 DNS 端口匹配,也不能概括为拦截所有应用内的加密 DNS。与其他 VPN 同时运行时,还需排查路由优先级和虚拟网卡冲突。
旧配置迁移到 mihomo:按六步验证
- 保存原始配置。备份订阅来源、本地覆写、规则集与当前配置文件。图形客户端导出的文件可能已合并覆写,应同时保留可编辑源文件。
- 记录内核信息。在客户端的内核信息或日志中确认实际版本;独立部署时可执行
mihomo -v,记录输出与系统架构。 - 先做语法检查。独立运行可用
mihomo -t -f config.yaml。相对路径资源应在与正式运行一致的工作环境下检查,避免把路径错误误判为格式不兼容。 - 先测试本机代理端口。确认配置实际监听 7890 后,可执行下方命令。若端口不同,应同步修改命令。
- 核对规则命中。在客户端连接记录中检查目标域名、命中规则、策略组与最终出口。请求成功只证明这次链路可用,并不证明所有分流都正确。
- 逐项恢复扩展能力。依次加入规则提供器、DNS 覆写、TUN 与开机启动。每一步都查看日志,并确认配置重载后仍然有效。
mihomo -v
mihomo -t -f config.yaml
curl --proxy http://127.0.0.1:7890 --connect-timeout 10 --max-time 20 -I https://example.com
上面的 10 秒连接超时与 20 秒总超时是诊断参数,不是速度指标。Windows PowerShell 中可明确使用 curl.exe 调用系统中的 curl 程序。测试前确认已有客户端是否正在占用 7890,避免同时启动第二个内核后出现端口冲突。
常见迁移问题:按报错位置缩小范围
订阅能导入,节点却全部不可用
先确认订阅是完整 Clash 配置、节点提供器内容,还是其他客户端的分享链接集合。图形客户端显示“导入成功”,可能只代表已保存地址。继续检查下载结果、节点解析日志以及节点协议支持情况。不要把含凭据的订阅链接粘贴到公开转换服务或问题帖中。
配置检查通过,实际规则没有生效
检查运行模式是否为 rule,以及生效文件是否就是刚修改的文件。客户端可能在订阅更新后重新生成配置,也可能通过覆写插入更靠前的规则。若希望更改持续保留,应使用客户端支持的覆写或合并机制,而不是仅修改生成文件。
启动提示端口已占用
确认是否同时运行两个客户端,或后台服务仍有旧内核进程。代理入站端口与控制接口端口用途不同:例如 7890 可作为本机代理端口,9090 可作为控制接口端口,但都必须以当前配置为准。更换代理端口后,系统代理、终端环境变量和应用中的手动代理地址也要同步调整。
应该继续使用旧内核,还是切换 mihomo?
需要 Hysteria2、TUIC、VLESS 或较新的规则与 DNS 能力时,应选择明确支持这些能力的 mihomo 客户端,并核对所带内核版本。现有环境若依赖 Premium 脚本或特定旧行为,先在独立配置中完成迁移验证,再替换生产使用环境。客户端安装包可参考选型指南,基础设置步骤见使用文档。
最终判断标准是配置能够解析、节点可以连接、规则按预期命中,以及系统代理或 TUN 的接管范围正确。单凭名称中出现“Meta”或“mihomo”,无法替代这四项检查。