先定内核,再挑客户端
Clash 生态里客户端和内核是两层东西。客户端负责界面、订阅管理、托盘菜单、开机自启;解析配置、建立连接、执行分流规则的是内核进程。两者可以拆开换——同一份 mihomo 内核,既可以被 Clash Verge Rev 拉起,也可以被 FlClash 拉起,配置文件通用。
内核现状决定了选型的下限。原版 Clash 与 Clash Premium 由 Dreamacro 维护,2023 年 11 月归档,仓库已下线;目前仍在更新的是 mihomo(原名 Clash.Meta,由 MetaCubeX 维护)。判断方法很直接:打开客户端的「设置」页看内核版本号,mihomo 的版本号形如 1.19.x 及以上,原版内核停在 1.18.0。
协议支持差异是最容易踩的坑。VLESS、Hysteria2、TUIC、WireGuard、SSH 这些出站类型只有 mihomo 系内核能解析。配置文件里出现 type: hysteria2,而客户端在加载阶段抛出 unsupported proxy type,基本可以判定内核版本过旧。
订阅里含 Hysteria2 或 VLESS 节点时
先确认客户端内核属于 mihomo 系再导入。否则会出现订阅能下载、界面提示更新成功,但节点列表为空的情况——报错发生在内核加载配置的阶段,不在订阅下载阶段。
四个对比维度:内核、平台、配置方式、更新节奏
把候选客户端放进同一张表,差异一眼可见。
| 客户端 | 平台 | 内核 | 界面外壳 | 维护状态 |
|---|---|---|---|---|
| Clash Verge Rev | Windows / macOS / Linux | mihomo | Tauri | 活跃 |
| Mihomo Party | Windows / macOS / Linux | mihomo | Electron | 活跃 |
| FlClash | Windows / macOS / Linux / Android | mihomo | Flutter | 活跃 |
| ClashMetaForAndroid | Android | mihomo | 原生 | 活跃 |
| ClashX Meta | macOS | mihomo | 原生菜单栏 | 低频维护 |
| Stash | macOS / iOS | 自研,兼容 Clash 配置 | 原生 | 活跃,闭源 |
| Clash for Windows | Windows / macOS / Linux | Clash Premium | Electron | 2023-11 停更 |
| Clash for Android | Android | Clash Premium | 原生 | 2023-11 停更 |
内核版本
mihomo 支持 rule-providers 的三种 behavior(domain、ipcidr、classical)与 GEOSITE 分类规则库;原版 Premium 只支持前两种,规则集文件格式也更老。订阅里用到 GEOSITE 分类或 classical 行为规则集的,内核必须是 mihomo。
平台覆盖
桌面端、Android、iOS 是三套不同的技术栈。桌面端可以自由替换内核;Android 通过 VPN 服务方式接管流量;iOS 不允许第三方应用自建 TUN 服务,只能在 App Store 的成品客户端里选,内核不可更换。
配置方式
分三档:只支持订阅 URL 导入;支持订阅加本地 YAML;支持订阅加 Merge 覆写加 JavaScript 脚本。Clash Verge Rev 与 Mihomo Party 属于第三档,可以在不改动原始订阅文件的前提下改端口、追加规则、替换 DNS 设置。
更新节奏
看 GitHub Releases 的发布间隔。Clash Verge Rev、Mihomo Party、FlClash、ClashMetaForAndroid 属于按月迭代;ClashX Meta 发布间隔较长。停更项目不是立刻不能用,而是新协议与新规则格式不会跟进,长期会被订阅卡住。
按平台给结论
Windows 10 / 11:Clash Verge Rev
Tauri 外壳,安装包在 10 MB 量级;Windows 11 上空闲状态常驻内存约 110 MB(规则集为常见订阅规模)。默认混合端口 7897,外部控制端口 127.0.0.1:9097。常用开关路径:
- 系统代理:「设置」→「系统设置」→「系统代理」
- TUN 模式:「设置」→「Clash 设置」→「Tun 模式」,首次开启会请求管理员权限并安装 wintun 驱动
- 订阅导入:「订阅」→ 新建 → 粘贴链接 →「导入」
系统代理与 TUN 的区别值得留意:系统代理只影响读取系统代理设置的程序,浏览器和多数 Electron 应用会被接管,命令行工具、部分游戏、UWP 应用不读这个设置;TUN 在虚拟网卡层接管全部 TCP 与 UDP 流量,覆盖面更完整,代价是需要管理员权限。
备选 Mihomo Party。Electron 外壳,同场景常驻内存约 320 MB,换来的是更完整的覆写面板与订阅转换集成。低配机器优先 Tauri 方案。不建议新装 Clash for Windows,它 2023 年 11 月随原版内核一起停更,配置里的 hysteria2、vless 节点无法解析。
macOS 12 及以上:Clash Verge Rev 或 Stash
Clash Verge Rev 提供 Apple Silicon 原生 arm64 包,菜单栏常驻,关闭窗口不退出进程。首次开启 TUN 需要系统授权。ClashX Meta 交互更轻,只有菜单栏菜单,适合只需要切节点和开关代理的场景,但更新频率低。
Stash 是闭源商业客户端,配置语法兼容 Clash,内核自研而非 mihomo。选它的前提是订阅里的协议它都支持,否则换回 mihomo 系更稳。
Android 8 及以上:ClashMetaForAndroid
以 VPN 服务方式接管流量,「设置」→「网络」里可以切换路由模式(规则 / 全局 / 直连)。一个常见冲突:系统「私人 DNS」设为固定 DoT 地址时,Clash 的 DNS 处理会被绕过,表现为部分域名解析异常或分流失效,把它改回「自动」即可。需要桌面与手机同一套界面时用 FlClash,同一份配置在两个平台通用。
iOS:只能在 App Store 客户端里选
iOS 不允许第三方应用自建 TUN 服务,因此不存在「mihomo 内核加自定义外壳」的组合。可选项是 App Store 上的成品客户端,它们各自内置内核,只能导入 Clash 风格的规则配置,不能替换内核。选型时先确认订阅里的协议在目标客户端上支持,Hysteria2 与 VLESS Reality 在部分 iOS 客户端上支持时间较晚。
Linux 与路由器
桌面发行版用 Clash Verge Rev 的 AppImage 或 deb 包,不装桌面环境时直接用 mihomo 内核加 systemd 服务,配置放 /etc/mihomo/config.yaml。OpenWrt 上用 OpenClash 插件并把内核切到 mihomo 分支,局域网设备无需各自配置。路由器内存低于 128 MB 时谨慎启用全量 GEOSITE 规则集,单份数据库解压后可占几十 MB。
| 平台 | 首选 | 备选 | 关键约束 |
|---|---|---|---|
| Windows 10 / 11 | Clash Verge Rev | Mihomo Party | TUN 需管理员权限与 wintun 驱动 |
| macOS 12+ | Clash Verge Rev | Stash、ClashX Meta | 首次开 TUN 需系统授权 |
| Android 8+ | ClashMetaForAndroid | FlClash | 私人 DNS 需设为「自动」 |
| iOS 15+ | App Store 成品客户端 | 无 | 内核不可替换 |
| Linux 桌面 | Clash Verge Rev | FlClash | AppImage 需手动赋可执行权限 |
| OpenWrt | OpenClash | mihomo 内核直装 | 内存低于 128 MB 时精简规则集 |
配置方式与迁移成本
换客户端真正需要带走的东西只有三样:订阅 URL、本地自定义规则、覆写脚本。端口号、TUN 开关、开机自启这些属于客户端设置,在新客户端里重设一遍即可。
Clash Verge Rev 的覆写机制值得单独说。订阅卡片上的「Merge」用于合并 YAML 字段,「Script」用于执行 JavaScript 修改配置。比如把订阅自带的端口统一改掉:
# Clash Verge Rev 的 Merge 覆写示例 mixed-port: 7897 allow-lan: false external-controller: 127.0.0.1:9097 tun: enable: true stack: mixed auto-route: true
这份覆写在每次订阅更新后自动生效,不需要手动改订阅文件,也不会因为订阅重新下载而丢失。
同一时间只运行一个客户端
两个客户端同时开启 TUN,路由表会互相覆盖,典型表现是内核日志看起来正常、但所有网站都打不开。切换前先在旧客户端里关掉 TUN 与系统代理,再退出进程。
端口冲突也常见。默认混合端口 7897 被旧进程占用时,新客户端启动日志会出现 bind: address already in use。Windows 上用 netstat -ano | findstr 7897 找到占用进程再结束,macOS 与 Linux 用 lsof -i :7897。
装之前确认五件事
- 订阅里有没有 hysteria2、vless、tuic 节点。有,内核必须是 mihomo 系。
- 目标平台是不是 iOS。是,只能在 App Store 客户端里选,内核不可替换。
- 是否需要 TUN。需要,确认有管理员或 root 权限,Windows 上要允许安装 wintun 驱动。
- 有没有要保留的本地规则或覆写脚本。有,选支持 Merge 与 Script 覆写的客户端。
- 设备内存余量。路由器或低配设备优先 Tauri 或原生外壳,避开 Electron。
按这五条过一遍,基本不会出现装完才发现不合用的情况。内核选 mihomo,外壳按平台挑,是当前最省事的组合。