
| 类型 | 代理客户端 / 内核 |
| 语言 | Go |
| 配置 | YAML |
| 状态 | 原核心已停更 |
| 接续 | Mihomo(Clash.Meta) |
Clash 是一款曾经广受欢迎的跨平台代理客户端软件,以支持多种代理协议,以及强大的基于规则的流量分流能力而闻名。它通过一份统一的配置文件来集中管理多个代理节点,并能依据访问的域名、目标 IP、地理位置等规则,自动判断每一条网络流量应当走哪个节点、还是直接连接,从而实现高度灵活而精细的网络分流控制。需要特别说明的是,原始的 Clash 项目本身已经停止维护,因此如今人们口中的 Clash,更多是在指代以其内核架构与配置格式为基础、由社区接力延续下来的一整个生态体系。换句话说,Clash 这个名字早已超越了某一款具体软件,而演变成了一类工作方式与一套配置标准的代名词,只要谈到规则分流的代理客户端,几乎绕不开它所定义的范式。
Clash 由开发者 Dreamacro 创建,使用 Go 语言编写,其定位是一个基于规则的隧道工具(rule-based tunnel)。它凭借优秀的性能、良好的跨平台能力,以及一套极具表达力与扩展性的 YAML 配置格式,逐渐成长为代理客户端领域事实上的标准之一,深刻影响了后来众多同类工具。然而大约在 2023 年,原作者归档了核心代码仓库,原版的 Clash 内核就此停止更新。此后,社区力量迅速接过了维护的接力棒,衍生出多个延续项目,其中影响力最大、最为重要的便是 Mihomo(其前身名为 Clash Meta),它不仅继承了原内核的全部能力,还在此基础上大幅扩展了对新协议与新特性的支持,如今已成为 Clash 内核的主流实现。
Clash 的工作核心是一个本地运行的代理内核(core):它在本机监听一个 HTTP 或 SOCKS 代理端口,或者直接以 TUN 模式接管整个系统的流量。当应用程序的网络请求到达后,内核会依据配置文件中定义的规则链,自上而下逐条进行匹配,以此决定这条连接应当交给哪个策略组处理、最终经由哪个节点出口发出,还是直接放行直连。整套行为逻辑完全由一份 YAML 配置文件驱动,文件中清晰地定义了所有节点(proxies)、所有策略组(proxy-groups)以及全部规则(rules)。正是这种内核与配置相分离的设计,使得 Clash 极易与订阅服务、图形客户端组合搭配使用。
Clash 生态之所以如此繁荣,很大程度上源于它那套高度标准化的配置格式与成熟的订阅机制:
得益于 Go 语言出色的跨平台特性,Clash 内核能够运行于 Windows、macOS、Linux、Android 等系统,甚至可以部署在 OpenWrt 等路由器固件上实现网关级代理。各个平台都有对应的图形客户端来封装内核;而在 iOS 平台,由于系统机制的限制,则通常由 Stash 等专门的应用来间接提供支持。
Clash 尤其适合那些需要进行精细分流(例如把国内外、视频、办公流量分别走不同线路)、需要同时管理大量节点,以及追求自动化与稳定性的用户。其优劣需要客观看待:
要真正用好 Clash,理解其配置文件的核心组成不可或缺。一份典型的 Clash 配置由几个相互配合的部分构成:
正是这种节点、策略组、规则三层解耦的清晰结构,让用户既能精细到为单个网站指定线路,也能用一条兜底规则统揽其余,兼顾了灵活性与可维护性,这也是 Clash 配置格式被整个生态奉为标准的根本原因。
尽管原始项目已经落幕,但 Clash 所确立的规则分流范式与配置生态影响极为深远,如今正经由 Mihomo 等社区分支,持续在代理客户端领域占据着重要地位。

| 类型 | 代理客户端 / 内核 |
| 语言 | Go |
| 配置 | YAML |
| 状态 | 原核心已停更 |
| 接续 | Mihomo(Clash.Meta) |
登录 后参与讨论
暂无讨论,来发表第一条评论吧