先区分内核、客户端与订阅格式

判断一份 Clash 配置能否使用,先确认实际运行的内核,而不是只看桌面图标。内核负责解析 YAML、建立代理连接、执行规则和处理 DNS;客户端负责配置导入、系统代理开关、服务管理与界面展示。客户端名称相同,也可能因为发行版本、内核切换或自定义内核路径而运行不同程序。

订阅则是配置来源。它可能返回完整配置,也可能仅包含节点列表。订阅页面写着“Clash”,并不意味着其中每个节点都能被原版 Clash 识别。遇到 vless、hysteria2 或 reality-opts 等内容,应继续核对内核与具体版本。

  • 内核身份:查看启动日志、内核信息页面,或执行内核程序的版本命令。
  • 实际配置:查看客户端合并、覆写后交给内核的配置,不只查看订阅原文。
  • 失败阶段:区分配置解析失败、规则加载失败与节点连接失败,三者处理方式不同。

命名时间线:原版、Premium、Meta 与 mihomo

原版 Clash 与 Clash Premium 是两条能力边界

原版 Clash 通常指 Dreamacro 的开源 Clash 核心。Clash Premium 则是原作者曾经发布的闭源增强内核,历史上加入了 TUN、规则集和脚本等功能。不能把 Premium 当成所有 Clash 客户端都具有的一组默认能力,也不能将原版开源核心与 Premium 的配置清单混为一谈。

2023 年原项目停止公开维护后,仍有旧客户端继续携带这些内核。它们可能正常运行既有配置,但不会因为订阅更新而自动获得新协议实现。旧版安装包能启动,与它能处理当前订阅,是两项独立判断。

Clash Meta 更名为 mihomo

Clash Meta 是从 Clash 体系发展出的扩展分支,后来更名为 mihomo。两者属于同一项目的发展脉络,不是两个互不相关、需要整体改写配置的内核。客户端界面中保留的“Meta”字样,也可能实际指向后续 mihomo 构建。

不过,项目延续不等于任意版本完全兼容。较早的 Meta 构建不一定具备后续 mihomo 的字段和协议能力;某些历史功能也可能调整或移除。迁移时应记录完整版本输出,并以该版本对应的配置文档和启动检查结果为准。

名称定位迁移关注点
原版 Clash开源基础核心基础协议、规则与 DNS;不要套用 Premium 专属配置
Clash Premium历史闭源增强核心TUN、规则集、脚本;脚本需单独评估替代方案
Clash Meta扩展分支的历史名称必须确认构建版本,不能按名称推定全部新特性
mihomoMeta 更名后的项目协议参数、规则集格式、DNS 与 TUN 的版本要求

配置字段兼容清单:哪些可沿用,哪些要检查

基础字段通常具有较好的延续性,但兼容应分为三层:字段能否解析、取值是否支持、运行效果是否一致。例如 dns 节点能被识别,不代表它下面每个新增选项都能被旧内核理解。部分未知字段可能被忽略,配置检查通过也不是功能生效的充分证明。

字段或能力原版开源核心PremiumMeta / mihomo
mixed-port、mode、log-level通常可用通常可用通常可沿用
proxies、proxy-groups支持基础结构支持基础结构结构延续;新增类型另查
DOMAIN-SUFFIX、GEOIP、MATCH支持支持支持;数据文件也需可用
proxy-providers支持;载荷须符合格式支持支持;扩展选项依版本
rule-providers、RULE-SET不应按 Premium 能力使用支持支持;核对格式与行为类型
tun不具备 Premium 的内置 TUN 能力支持;依平台与权限支持;栈与路由选项需复核
sniffer不可直接套用不可按 mihomo 字段套用支持;具体选项依版本
Premium script 模式不支持历史特性不能直接沿用 Premium 脚本
dns.enhanced-mode: fake-ip支持基础能力支持支持;过滤与解析策略仍需检查

策略组名称属于配置依赖

规则末尾的策略名称必须对应存在的节点、策略组或内置动作。把策略组“代理选择”改名为“节点选择”之后,所有引用它的规则、规则集入口和其他策略组成员都要同步修改。此类错误与内核代际无关,却常在迁移时被误判为协议不兼容。

Premium 脚本需要重写分流逻辑

如果旧配置使用 mode: script 和 script:,不要只替换内核文件。应先列出脚本实际执行的域名、地址与策略判断,再转写为目标内核支持的规则或规则集。涉及动态判断的部分,需要逐项核实是否有对应能力,不能机械地把模式改为 rule 就结束迁移。

协议支持对照:节点类型比订阅名称更重要

原版与 Premium 常见的协议包括 Shadowsocks、VMess、Trojan,以及 HTTP、SOCKS5 代理。这里的支持指协议类型,并不覆盖其后续出现的所有加密方法、传输组合与扩展字段。mihomo 扩展了协议范围,但同样要与服务端参数逐项对应。

配置内容原版 / Premiummihomo 检查项
ss、vmess、trojan有基础支持;不代表全部扩展可用加密方法、传输方式、TLS 参数
vless不支持UUID、传输方式、flow 与 TLS 组合
reality-opts不支持公钥、short-id、服务端名称等参数
hysteria2不支持UDP 可达性、认证与 TLS 参数
tuic不支持服务端协议版本、认证与拥塞控制选项

出现“unsupported proxy type”一类错误时,优先检查内核身份和节点类型,而不是改 DNS。配置能载入但连接失败,则继续检查服务器地址、端口、认证、TLS 和底层网络。Hysteria2、TUIC 依赖 UDP;把客户端切换到全局模式,不能解决出口网络阻断 UDP 的问题。

规则集、DNS 与 TUN:迁移后重点复核

规则集的 behavior 与载荷必须对应

rule-providers 的 behavior 常见值包括 domain、ipcidr 与 classical。域名列表不能直接当作完整规则列表加载;完整规则也不能仅通过改文件后缀变成域名载荷。mihomo 的 MRS 格式不适合直接交给历史 Premium 使用,迁移时要核对 format、实际文件内容和目标版本。

规则按照配置顺序匹配。先放域名规则还是地址规则,可能影响解析行为及最终出口。末尾的 MATCH 是兜底,不应放到需要继续匹配的规则之前。规则集下载成功,也不意味着引用它的 RULE-SET 已放在正确位置。

Fake-IP 保留地址不是节点地址

198.18.0.0/16 是常见 Fake-IP 配置范围。应用取得这种地址时,通常需要由同一内核接管后续连接,才能根据映射恢复域名。只启用 DNS 假地址响应,却没有相应流量接管路径,可能造成连接失败。迁移后应检查 DNS 指向、系统代理、TUN 和应用自身代理设置,而不是直接把假地址当作异常服务器。

TUN 需要操作系统权限与路由配合

tun.enable: true 只声明启用意图。实际运行还涉及服务权限、虚拟网卡、路由、DNS 接管与网络栈实现。Windows 上可能需要客户端服务或管理员权限;Linux 通常需要相应网络管理权限。客户端的“服务模式”与配置里的 TUN 开关不是同一层设置。

  • 先关闭旧客户端及其后台服务,避免两个程序同时接管路由。
  • 先用系统代理验证基础连接,再单独启用 TUN,缩小故障范围。
  • 保留原配置副本,分别验证普通域名、局域网设备和 IPv6 访问。
  • 从日志核对实际启用的网络栈,不根据界面开关推断接管已经成功。

旧配置迁移步骤:先验证基础端口,再恢复扩展

以下配置用于检查本机监听和基础规则解析,不包含远程节点,也不是完整订阅替代品。它将混合端口设为 7890,关闭局域网访问,并让所有连接直连。端口只是示例值;如果已被其他程序占用,应更换端口或先停止占用程序。

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info

rules:
  - MATCH,DIRECT
  1. 保存现场。备份订阅原文、覆写规则和当前运行配置。记录客户端版本及内核版本,避免只备份导入链接。
  2. 确认新内核。使用 mihomo 二进制时,可执行 mihomo -v 查看版本;实际程序路径和文件名以安装位置为准。
  3. 检查语法。执行 mihomo -t -f config.yaml。配置若依赖相对路径资源,应确保工作目录、数据目录与客户端实际环境一致。
  4. 恢复节点与策略组。先加入一个已知可用节点,验证认证和 TLS,再恢复自动选择、故障转移等策略组。
  5. 恢复规则集与 DNS。检查资源加载、策略名称和规则命中,再添加 Fake-IP 或特殊解析策略。
  6. 最后启用 TUN。验证权限、默认路由与局域网访问,确认退出客户端后网络能按预期恢复。

基础端口可以用 curl -x http://127.0.0.1:7890 -I https://clash-dl.com/ 检查。它用于验证 HTTP 代理入口是否能处理请求,不证明 SOCKS5、UDP、TUN 或所有节点都可用。命令失败时,应结合日志判断是监听未启动、目标访问失败,还是出口链路问题。

客户端选型与常见兼容问题

选择客户端时,先确认操作系统与处理器架构,再看其内核来源和维护状态。Clash Verge Rev、FlClash 等客户端采用 mihomo 体系,但具体支持范围仍取决于所安装版本及内核构建。旧版 Clash for Windows 或 Clash for Android 的历史发行包,不能仅因名称包含 Clash 就推定支持 mihomo 扩展协议。

客户端内核信息、订阅覆写功能和服务管理能力也应纳入检查。即使替换二进制后能够启动,旧界面仍可能无法展示新增字段,或在保存配置时覆盖手工修改。平台与客户端关系可结合客户端对比查看;基础字段含义可参考协议参考。

Clash Meta 配置可以直接给 mihomo 使用吗?

多数基础配置具有延续性,但不能保证所有历史选项原样可用。先执行配置检查,再核对日志中的废弃提示、资源加载与实际连接。旧 Meta 构建和后续 mihomo 之间的差异,应按具体版本判断。

mihomo 配置能降级给原版 Clash 吗?

只有在协议与配置能力都落在原版支持范围内时才可能。VLESS、Hysteria2、嗅探和扩展规则等内容不能直接沿用。涉及服务端协议时,仅做 YAML 字段删减无法完成降级。

配置检查通过,为什么访问仍然失败?

配置检查主要验证结构和可识别的配置内容,不保证远端服务可达。还要检查节点认证、DNS 返回、证书、系统代理生效范围、UDP 路径以及规则最终选择的出口。

旧订阅是否必须重新购买或更换?

不由内核名称决定。先检查订阅实际返回的协议和配置格式。如果现有服务提供适用于 mihomo 的配置入口,可按其说明切换;如果只是基础协议配置,可能可以直接迁移。不要把客户端格式问题与服务端可用性混为一谈。

最终判断依据应是“内核版本、配置字段、服务端协议、操作系统接管能力”四项同时匹配。基础规则可优先沿用,Premium 脚本需要单独处理,新协议必须确认实现范围,TUN 与 DNS 则需要在目标设备上验证。完成这些检查后,再决定保留旧配置、调整订阅格式,或更换客户端。