Clash 开源生态项目关系图:内核分支、桌面客户端与移动端实现

按内核、图形界面和平台实现拆解常见项目,厘清名称相近的软件之间如何组合与演变。

搜索 Clash 时,常会同时看到 Clash、Clash Meta、mihomo、Clash Verge Rev、Clash Nyanpasu、FlClash、OpenClash 等名称。它们并不是同一个程序的不同安装包,也不都由同一团队维护。部分项目提供代理内核,部分项目只负责图形界面,还有一些项目面向路由器、Android 或特定桌面系统。

理解这些项目,关键不是先记住名称,而是先判断它位于哪一层:负责处理连接的内核、负责操作配置的客户端、负责系统接管的平台组件,还是负责下发节点与规则的订阅服务。只要层级分清,版本选择、配置兼容和故障定位都会直接许多。

先按四层拆开 Clash 生态

一套可以实际工作的 Clash 环境,通常由多个部分组合而成。名称里带有 Clash,不代表它一定包含原版 Clash 内核;名称里没有 Clash,也不代表它不能读取常见的 Clash 配置。项目之间更接近零件组合,而不是单一产品的版本序列。

订阅与本地配置
        ↓
图形客户端 / Web 控制面板
        ↓
Clash 系内核:Clash、Clash Meta、mihomo
        ↓
系统代理 / TUN / 路由器转发
        ↓
目标网络

第一层:订阅与配置

订阅地址一般返回 YAML 配置,内容可能包含代理节点、策略组、分流规则、DNS 设置和规则集引用。订阅服务不等于客户端,也不等于内核。客户端只是定时下载并管理这些配置,真正解析配置和处理连接的是内核。若订阅内容使用了某个分支专有字段,换到较旧内核时就可能出现解析错误。

第二层:客户端与控制面板

桌面客户端通常提供订阅更新、代理组切换、连接查看、日志展示、系统代理开关和 TUN 管理。它本身可能打包一个内核,也可能允许切换内核文件。Web 控制面板则通过外部控制接口连接内核,负责展示状态,不直接承担数据转发。

第三层:代理内核

内核负责监听端口、解析 DNS、匹配规则、选择策略组、建立代理连接并输出日志。相同的图形客户端,如果替换了不同内核,可用字段与运行行为也会变化。因此排查问题时,应同时记录客户端版本和内核版本,不能只写“Clash 最新版”。

第四层:系统接管

系统代理只影响遵循操作系统代理设置的应用。TUN 模式会创建虚拟网络接口,可覆盖更多不读取系统代理的程序。路由器部署则通过防火墙、策略路由和 DNS 转发接管局域网设备。三种入口最终都可以把连接交给内核,但权限要求、DNS 路径和排障方法不同。

原版 Clash、Clash Meta 与 mihomo 的分支关系

原版 Clash 是早期生态的核心基础。它确立了 YAML 配置、规则匹配、策略组、外部控制接口等常见结构。大量桌面客户端、路由插件和订阅模板都围绕这些接口建立。原版仓库停止持续维护后,生态没有整体停止,而是转向仍在维护的分支和兼容实现。

Clash Meta 最初以原版 Clash 的分支形式发展,扩展了代理协议、规则能力、DNS 行为、TUN 支持和配置字段。随后项目名称逐步转为 mihomo。现在看到“Meta 内核”和“mihomo 内核”时,通常是在描述同一条演进路线的不同阶段,而不是两个需要同时安装的独立内核。

名称 项目位置 当前理解方式 配置注意点
Clash 早期核心内核 大量配置格式与接口的来源 不识别后续分支增加的部分字段
Clash Meta 扩展内核分支 mihomo 演进过程中的旧称 常见于旧文档、旧目录名和客户端界面
mihomo 持续维护的内核项目 现代 Clash 系客户端常用内核 应按对应版本文档核对字段

mihomo 对常见 Clash 配置保持较高兼容度,但兼容并不表示所有字段可以无条件双向迁移。使用规则集提供者、特定 DNS 选项、新协议参数、流量嗅探或扩展规则类型时,应以目标内核当前文档为准。把 mihomo 配置直接交给旧版原始内核,最常见结果是未知字段、策略组引用失败或规则提供者加载失败。

桌面客户端是外壳,不是内核名称的同义词

Windows、macOS 和 Linux 用户通常先接触图形客户端。客户端把配置文件、内核进程、系统代理和托盘菜单组合到一个界面中,但它与内核仍是两个层次。客户端更新可能只修改界面和平台集成;内核更新则可能改变协议、DNS 或规则行为。发布说明中若分别列出应用版本与内核版本,就是这种分层的直接体现。

Clash Verge Rev

Clash Verge Rev 属于跨平台桌面客户端,常见于 Windows、macOS 和 Linux。它围绕 mihomo 提供订阅管理、策略切换、系统代理、TUN、连接记录和日志界面。名称中的 Rev 表示社区延续项目,不能与历史上名称相近但维护状态不同的项目混为一谈。

这类客户端适合需要可视化管理多个配置的桌面环境。安装时除了操作系统,还要核对处理器架构,例如 Windows 的 x64 与 ARM64、macOS 的 Intel 与 Apple 芯片。架构不匹配属于安装包选择问题,与订阅是否有效无关。

Clash Nyanpasu

Clash Nyanpasu 同样位于桌面图形层,提供配置管理、内核控制和系统集成。它与 Clash Verge Rev 可以使用相近的订阅内容,但界面实现、配置存储、升级流程和平台细节不同。两者通常是替代关系,不需要为了“补齐功能”同时运行。

ClashX 系名称

macOS 生态中长期存在 ClashX、ClashX Pro、ClashX Meta 等相近名称。它们的维护来源、内核组合和授权方式并不完全相同。看到名称时应继续检查仓库来源、最后发布版本、内核类型和支持的 macOS 架构。仅凭“X”或“Meta”字样无法判断项目是否仍适合当前系统。

桌面客户端之间迁移时,不建议直接复制整个应用数据目录。目录里除了 YAML,还可能包含数据库、窗口状态、服务权限信息、系统代理备份和旧内核文件。更稳定的方式是保留订阅地址与经过确认的本地覆写规则,在新客户端中重新导入,再逐项恢复 TUN、DNS 和开机启动设置。

移动端、路由器与 Web 面板的实现差异

移动端项目不仅要封装内核,还必须遵守系统提供的 VPN 接口和后台运行限制。Android 客户端一般通过本地 VPN 服务把应用流量送入内核,因此状态栏会显示 VPN 连接。此处的 VPN 是系统流量入口,不表示订阅节点一定采用传统 VPN 协议。

Android 客户端

Clash Meta for Android 曾是常见的 Meta 系 Android 实现,很多旧教程仍使用它的界面截图。判断是否继续使用时,应查看项目维护状态与内核更新时间。FlClash 等跨平台项目也可在 Android 上运行,并采用现代 Clash 系内核处理配置。不同应用的数据目录和本地备份格式通常不通用,但标准订阅地址可以重新导入。

Android 上若只有浏览器可用而部分应用无法连接,应检查应用分流、绕过列表、VPN 权限、省电限制和 IPv6 路径。若所有域名都失败,则优先查看 DNS 日志与配置解析结果。移动端故障不应只通过频繁更换节点处理,因为系统限制和内核配置属于不同层面。

iOS 与 iPadOS

iOS 平台需要通过 Network Extension 等系统机制实现网络接管,应用分发和后台资源也受到平台规则约束。市场上存在能够读取部分 Clash 风格配置或订阅的网络工具,但名称、内核和配置兼容范围各不相同,不能仅因为支持策略组就认定它属于原版 Clash 项目。

导入前应确认应用支持的是完整 Clash YAML、订阅转换后的节点列表,还是它自己的配置格式。若订阅中使用 mihomo 专有规则和 DNS 字段,移动端应用可能忽略、转换或拒绝这些内容。此时应为目标应用准备对应格式,而不是反复导入同一份桌面配置。

OpenClash 与路由器部署

OpenClash 是面向 OpenWrt 环境的管理与集成项目。它负责下载和启动内核、生成运行配置、接入防火墙、处理 DNS 转发并提供管理页面。实际流量仍由所选内核处理。OpenClash、mihomo 与 OpenWrt 分别对应管理插件、代理内核和路由操作系统,三者不能互相替代。

路由器部署比桌面客户端多出局域网转发、策略路由、透明代理和 DNS 劫持等环节。客户端显示节点可用,不代表路由器路径一定正确。出现局域网设备无法访问、国内域名解析异常或部分设备循环重连时,应依次检查内核日志、DNS 上游、IPv4 与 IPv6 规则、防火墙链和旁路由网关设置。

Web 控制面板

Yacd、MetaCubeXD 一类 Web 面板通过控制接口读取代理组、连接和日志。它们是操作界面,不是代理内核。关闭浏览器页面通常不会停止代理服务;反过来,面板可以打开也不代表内核已经正确接管流量。面板连接失败时应检查控制地址、监听范围、认证密钥和防火墙,而不是修改节点协议。

同一份订阅为什么在不同项目中表现不同

订阅能否导入,只说明客户端取得了一段内容;真正能否运行,还要经过配置解析、资源下载、DNS 初始化、监听端口建立和系统接管。不同项目在这些阶段采用的默认值并不相同,所以同一订阅在两台设备上可能得到不同结果。

  1. 内核版本不同:较新的规则类型、协议参数或 DNS 字段可能不被旧内核识别。
  2. 客户端覆写不同:客户端可能自动修改端口、控制接口、TUN、DNS 或配置目录。
  3. 规则资源不同:远程规则集下载失败后,策略可能缺少关键匹配项,日志中通常会出现 provider 错误。
  4. 系统入口不同:桌面端使用系统代理,移动端使用本地 VPN,路由器使用透明代理,接管范围自然不同。
  5. DNS 路径不同:系统 DNS、内核 DNS、浏览器安全 DNS和路由器转发可能同时存在,最终查询不一定进入同一个解析器。
  6. 策略选择没有同步:配置中的策略组默认项可能与旧设备保存的选择不同,导入后应重新核对当前策略。

排查时可以先使用最小路径:确认配置能够解析,选择一个已知可连接的节点,暂时关闭额外覆写,只保留必要 DNS 与规则,然后测试内核监听端口。内核直连测试通过后,再开启系统代理或 TUN。这样能区分是配置层、内核层还是系统接管层的问题。

检查顺序:
1. 订阅是否成功返回 YAML
2. 内核是否完成配置解析
3. 代理与规则资源是否加载
4. 本地监听端口是否建立
5. 系统代理或 TUN 是否接管
6. DNS 查询是否进入预期路径
7. 规则是否命中预期策略组

日志级别可先设为 info,观察配置加载、DNS、规则集和连接错误。只有在需要追踪具体请求时再临时提高日志详细度,避免大量重复记录掩盖关键错误。调整规则、DNS 与 TUN 时每次只改一个变量,并保留可恢复的原配置。

按维护状态、平台和配置需求选择项目

选择 Clash 系项目时,首先确认维护状态,其次确认平台与架构,最后确认所需功能是否由对应内核提供。项目名称接近、搜索结果靠前或旧教程数量多,都不能代替这些检查。

使用环境 需要的项目层 重点检查
Windows、macOS、Linux 桌面 桌面客户端与 mihomo 内核 系统版本、处理器架构、TUN 权限
Android 手机或平板 移动客户端与本地 VPN 接入 维护状态、后台限制、应用分流
iPhone 或 iPad 符合平台机制的网络工具 配置格式、分发方式、字段兼容
OpenWrt 路由器 OpenClash、内核与防火墙集成 设备架构、存储空间、DNS 与 IPv6
无图形 Linux 服务器 mihomo 命令行与服务管理 配置路径、运行用户、端口和日志

如果目标只是桌面浏览器和常规应用代理,维护活跃的桌面客户端通常更省操作步骤。如果需要接管游戏、命令行程序或不遵循系统代理的软件,再评估 TUN。若希望整个局域网统一分流,应考虑路由器方案,但要预留防火墙和 DNS 排障能力。服务器环境通常不需要桌面外壳,直接运行 mihomo 并交给 systemd 管理更清晰。

配置迁移应围绕标准 YAML、订阅地址和自建规则进行,而不是依赖某个客户端的内部数据库。内核专有字段要单独记录,确保下一项目确实支持。遇到旧教程时,先核对教程中的项目名称、发布时间和内核阶段,再决定哪些步骤仍然适用。

关系图的最终判断方法

看到一个新项目名称时,可以用四个问题定位:它是否包含代理内核;包含的是原版 Clash、旧称 Meta 还是 mihomo;它通过系统代理、TUN、本地 VPN 还是路由器防火墙接管流量;它的配置是标准 Clash YAML、扩展字段还是独立格式。四项答案明确后,项目在生态中的位置基本就确定了。

Clash 生态的延续依赖多个独立项目协作。mihomo 负责现代内核能力,桌面和移动客户端负责平台交互,OpenClash 负责路由器集成,Web 面板负责远程控制,订阅与规则项目负责配置数据。它们可以组合,但发布节奏、维护团队和兼容边界各自独立。选择时按层级核对,排障时按数据路径逐段检查,比把所有程序统称为“Clash 客户端”更准确。

继续安装与配置

先按操作系统与处理器架构选择客户端,再核对内核类型、订阅格式和系统接管方式。

下载Clash