Clash 首先是一套标准,其次才是一个程序
Clash 真正的价值在于那套配置格式:一份 YAML,描述代理节点、策略组,以及在它们之间做选择的规则。生态是围绕这套格式长出来的,人们说某个客户端「兼容 Clash」,指的也是它。
此外还有一个读取这套格式的 Clash 程序,它没有自己的界面——桌面上靠命令行运行,手机上根本无法独立运行。标准和这个具体实现是两回事,所以不止一个内核可以读同一份文件。
很多人把两者当成竞品来搜索对比。它们其实不是同一类东西——弄清楚各自是什么,选择就不成问题了。
简短回答
Clash 是一套配置标准。Stash 是完全兼容该标准的自研内核,并在标准之上做了增强。你现有的配置无需改动即可使用——所以从来就不存在「选 Stash 还是选 Clash」。
Clash 真正的价值在于那套配置格式:一份 YAML,描述代理节点、策略组,以及在它们之间做选择的规则。生态是围绕这套格式长出来的,人们说某个客户端「兼容 Clash」,指的也是它。
此外还有一个读取这套格式的 Clash 程序,它没有自己的界面——桌面上靠命令行运行,手机上根本无法独立运行。标准和这个具体实现是两回事,所以不止一个内核可以读同一份文件。
Stash 不是把 Clash 的二进制文件打包进来再加个界面。内核是我们自己写的,独立开发、独立演进,并完整实现了这套配置标准。
所以你现有的文件无需改动即可使用——同样的规则、策略组、订阅链接。换到 Stash 不是一次迁移,将来换走同样不是。
有意义的问题是:在 Apple 设备上该用哪个 Clash 客户端。这样的客户端有好几个——Shadowrocket、Quantumult X、Clash Mi 等等,各有侧重。
我们在这个问题上不是中立的,所以与其排名次,不如直说 Stash 围绕什么构建:原生平台集成、HTTP 引擎,以及一份配置在 macOS、iOS 与 tvOS 之间通用。如果这些不是你需要的,别的客户端可能更合适。
Clash 最初的开源仓库已不再维护,这也是为什么搜索它经常落到归档和镜像站点上。而套壳这个二进制文件的客户端会一并继承这个问题:不再有修复、不再支持新协议、平台底层变化时也无人应对。
Stash 不受影响,因为内核不是那个二进制文件。你已经在写的配置标准保持不变,而它背后的实现仍在持续开发。
常见问题
可以。Stash 读取同一份 YAML——规则、策略组、订阅全部通用。导入你已经在用的文件或订阅链接即可。
不是。Stash 运行的是自研内核,独立开发,而非打包自 Clash 项目。它读取同一套配置标准,并在其上增加了 HTTP 引擎、脚本能力和原生 Apple 平台集成。
不需要。没有额外的二进制文件要安装或同时运行——内核就是应用本身。
这个问题无解。Clash 在 iPhone 上无法独立运行,而 Stash 也不是在那里「运行 Clash」——它是读取同一套配置的另一个内核。值得比较的是它和其他 Apple 客户端。
双向都可以。共用配置格式的意义就在于此;某个客户端特有的字段会被其他客户端忽略,而不会导致文件出错。