Stash 与 Clash

Stash 与 Clash 的关系

很多人把两者当成竞品来搜索对比。它们其实不是同一类东西——弄清楚各自是什么,选择就不成问题了。

简短回答

Clash 是一套配置标准。Stash 是完全兼容该标准的自研内核,并在标准之上做了增强。你现有的配置无需改动即可使用——所以从来就不存在「选 Stash 还是选 Clash」。

Clash 首先是一套标准,其次才是一个程序

Clash 真正的价值在于那套配置格式:一份 YAML,描述代理节点、策略组,以及在它们之间做选择的规则。生态是围绕这套格式长出来的,人们说某个客户端「兼容 Clash」,指的也是它。

此外还有一个读取这套格式的 Clash 程序,它没有自己的界面——桌面上靠命令行运行,手机上根本无法独立运行。标准和这个具体实现是两回事,所以不止一个内核可以读同一份文件。

Stash 是另一个内核,不是套壳

Stash 不是把 Clash 的二进制文件打包进来再加个界面。内核是我们自己写的,独立开发、独立演进,并完整实现了这套配置标准。

所以你现有的文件无需改动即可使用——同样的规则、策略组、订阅链接。换到 Stash 不是一次迁移,将来换走同样不是。

  • 完全兼容配置文件格式、规则类型、代理协议、策略组、远程代理集合、规则集合——是完整的标准,不是其中一个子集。
  • 标准之外的增强HTTP 引擎——MitM 解密、请求与响应改写、JavaScript 脚本——以及按需连接、基于 SSID 的策略组,和 tvOS 支持。为 Apple 平台而写,不是移植过来的。

真正成立的对比

有意义的问题是:在 Apple 设备上该用哪个 Clash 客户端。这样的客户端有好几个——Shadowrocket、Quantumult X、Clash Mi 等等,各有侧重。

我们在这个问题上不是中立的,所以与其排名次,不如直说 Stash 围绕什么构建:原生平台集成、HTTP 引擎,以及一份配置在 macOS、iOS 与 tvOS 之间通用。如果这些不是你需要的,别的客户端可能更合适。

为什么「自研内核」现在变得重要

Clash 最初的开源仓库已不再维护,这也是为什么搜索它经常落到归档和镜像站点上。而套壳这个二进制文件的客户端会一并继承这个问题:不再有修复、不再支持新协议、平台底层变化时也无人应对。

Stash 不受影响,因为内核不是那个二进制文件。你已经在写的配置标准保持不变,而它背后的实现仍在持续开发。

常见问题

大家都在问什么

我现有的 Clash 配置能在 Stash 里用吗?

可以。Stash 读取同一份 YAML——规则、策略组、订阅全部通用。导入你已经在用的文件或订阅链接即可。

Stash 就是收费版的 Clash 吗?

不是。Stash 运行的是自研内核,独立开发,而非打包自 Clash 项目。它读取同一套配置标准,并在其上增加了 HTTP 引擎、脚本能力和原生 Apple 平台集成。

需要另外安装 Clash 吗?

不需要。没有额外的二进制文件要安装或同时运行——内核就是应用本身。

Stash 和 Clash 哪个更好?

这个问题无解。Clash 在 iPhone 上无法独立运行,而 Stash 也不是在那里「运行 Clash」——它是读取同一套配置的另一个内核。值得比较的是它和其他 Apple 客户端。

配置文件能在 Stash 和其他 Clash 客户端之间迁移吗?

双向都可以。共用配置格式的意义就在于此;某个客户端特有的字段会被其他客户端忽略,而不会导致文件出错。

把你已有的配置带过来

如果你今天已经在别处运行 Clash,那份文件无需改写即可在 Stash 中使用。