跨平台的诱惑与原生的执念:Mac 用户的隐秘痛点
在 2018 年底的代理工具格局中,跨平台框架(从早期的 Python Qt 到后来风靡一时的 Electron)几乎成了绝大多数开发者的本能选择——写一套 UI 代码,就能打包横跨 Windows、Linux 与 macOS。然而在追求轻量与精致的 Mac 用户眼中,这种“移植品”往往带着挥之不去的违和感:一个仅仅用于网络分流的常驻后台工具,动辄吃掉数百兆甚至上吉字节的内存,唤醒时伴随着肉眼可见的界面掉帧与发热,更在 macOS 优雅的暗色设计语言前显得格格不入。
更令 Mac 用户苦不堪言的,是 Unix 哲学下严苛的安全权限机制:macOS 严禁普通权限程序随意篡改“系统偏好设置”中的网络服务代理配置。这意味着用户每一次切换网络、每一次开关代理,屏幕中央都会突兀地弹出一堵灰色锁形的安全凭证对话框,强制要求输入开机密码或触碰 Touch ID。这种割裂的体验,让规则代理在 Mac 上的日用体验大打折扣。
面对刚刚由 Dreamacro 开创的声明式分流核心,Mac 平台迫切需要一位真正读懂 Apple 平台交互灵魂的工匠,打造一款“如同苹果官方亲自预装的原生系统组件”。[3][4]
隐匿于菜单栏的匠心:ClashX 与提权守护进程
2018 年 12 月 1 日,开发者 yichengchen 在 GitHub 上线了 clashX。他在初版 README 中清晰定调:“ClashX: A rule based proxy For Mac base on Clash. 专为 macOS 打造的原生规则代理。”从写下第一行代码起,他就展现出了极其罕见的产品克制力:彻底舍弃任何笨重的前台主窗口,将全部的人机交互场景,压缩在屏幕右上角那只小巧灵动的猫形菜单栏图标中。
yichengchen 选用 Swift 与 Objective-C 构筑纯正的 Cocoa 原生界面。当用户轻点状态栏图标,一层轻盈毛玻璃质感的下拉菜单如水波般流淌开来:出站模式(规则分流、全局、直连)、嵌套策略组展开、节点健康度延迟测速、订阅更新与实时日志一览无余。每一次点击与悬停都遵循着 macOS Human Interface Guidelines(HIG)的毫秒级响应,几乎零 CPU 占用,内存消耗更是只有同类跨平台工具的零头。
而最展现系统工程底蕴的,是他对权限顽疾的彻底根治:2019 年 4 月 15 日,yichengchen 专门设计了独立的系统提权辅助守护进程(Privileged Helper Tool),并阐述了自己的设计审美:“一个优秀的代理客户端,应该像水一样无形,静静待在 macOS 菜单栏里,让你几乎感觉不到它的存在。通过 Privileged Helper,彻底消灭切换代理时的密码弹窗。”该守护工具通过 Apple 官方推荐的 SMJobBless 机制在系统 launchd 守护体系中安全注册。一旦完成首次鉴权,ClashX 便可在后台静默、零弹窗、毫秒级调用 CoreFoundation 网络接口切换代理,将原本令人厌烦的密码轰炸,化解为了无声无息的顺畅呼吸。[4]
突破沙盒壁垒:ClashX Pro 与 NetworkExtension 增强模式
随着开发者的网络环境日趋复杂,单纯依赖 HTTP / SOCKS5 系统代理机制的局限性暴露无遗:终端命令行下的 curl、git、brew、ssh 工具,容器引擎 Docker,以及众多依赖底层 Socket 通信的编译工具和海外联机游戏,根本不主动读取操作系统的代理环境变量,时常在内网穿透与海外依赖拉取中频频超时报错。
面对终端生态的断层,yichengchen 启动了更为强大的衍生版本——ClashX Pro。彼时苹果正在逐步收紧 macOS 系统的内核扩展(kext)权限,传统依赖注入内核虚拟网卡驱动的方式极易引发系统崩溃死机(Kernel Panic)。yichengchen 敏锐跟进苹果最新的 NetworkExtension 系统扩展架构,采用现代化的 NEPKey 与 NEPacketTunnelProvider 接口,将 Clash 内核直接架设在系统受信任的虚拟网络隧道之上。
2020 年 8 月 10 日,他在 ClashX Pro 发布说明中写道:“借助 Apple NetworkExtension 框架,ClashX Pro 的增强模式接管全系统所有网络请求,终端无需设置任何代理环境变量即可全局畅通。”这项被称为“增强模式(Enhanced Mode)”的创举,宣告了 Mac 透明代理时代的降临:无需用户在终端反复 export http_proxy,无需繁琐修改路由表,全系统所有的 TCP/UDP IP 数据包直接在系统协议栈层被捕获,交由 Clash 进行纳秒级的 Fake-IP 域名逆解析与策略分流。Mac 用户终于首次拥有了“开机即全球互联”的极致一体化体验。[5]
传奇的谢幕与 Meta 时代的薪火相传
凭借无懈可击的原生交互体验、极佳的能耗控制与强大的增强模式,ClashX 与 ClashX Pro 成为了数以百万计 Mac 用户、苹果生态开发者、设计师与科研学者的开机常驻神器。在漫长的五年时光里,那只静静卧在屏幕右上角的菜单栏小猫,成为了无数人连接数字广袤世界的无形守护者。
同期汇总将 yichengchen/clashX 的只读归档记录在北京时间 2023 年 11 月 3 日,晚于 11 月 2 日的 CFW 发布仓库删除。ClashX 是 macOS 客户端,Dreamacro/clash 是代理核心;二者当时的状态分别被记录为归档与删除。仅凭同日记录,不能认定 ClashX 是因上游核心停更而归档。
ClashX.Meta 是早已存在的社区分支,其 GitHub 仓库创建于 2022 年 6 月 12 日,早于 2023 年 11 月的项目变动。它在 ClashX 的 macOS 菜单栏交互基础上适配 Clash.Meta,后来继续随 Mihomo 演进;这种延续来自既有分支,而非原项目归档后才临时创建的新项目。[2][6][1]