Clash Meta

Network Kernel · 规则优先

Clash Meta 是以规则为中心的流量分流内核,把「这条连接走哪条线路」写成一读就懂的逻辑。

它不制造节点,也不负责加密。它做的是更关键的事:在每一次连接发生的瞬间,依据可读的规则,从一堆代理与直连中给出唯一的答案。

内核 / mihomo配置 / YAML阅读约 4 分钟

01它真正解决的问题,是把选择写成可维护的句子

多数分流工具把配置做成一长串判断:条件、动作、例外、再例外。规则一多,谁也不敢改动,因为没人能确定改了会不会牵动别处。Clash Meta 反过来组织:先把出口整理成组,再把判断依据写成规则,最后让规则指向组。三段各自独立,改一处不会波及全局。

这种拆分的价值在于,逻辑从此可以被人读懂,而不只是被内核读懂。你把 GEOSITE 指向「海外媒体」组,而不是指向某个节点的名字,节点换了、订阅更新了,判断依然成立。

规则描述条件,策略描述去向,代理组描述能力。顺序一旦固定,配置就从玄学变回书写。

01 · 出口

代理组:可用线路的集合

把同一用途的节点收进一组:自动测速、手动切换、按地区回退。上层只认组的名字,不认具体节点。

02 · 条件

规则:判断的唯一依据

DOMAIN、IP-CIDR、GEOSITE、PROCESS-NAME 只是条件的不同写法。规则的先后即优先级,先命中先决定。

03 · 去向

策略:命中之后的选择

在某个组、DIRECT 与 REJECT 之间做选择。「不用代理」和「不连接」同样是一等公民,而不是临时例外。

02常见问答

Clash Meta 和原版 Clash 有什么区别?

它是由社区维护的增强分支,通常以 mihomo 之名发布。核心配置逻辑与原版一致,但规则匹配器更丰富、协议支持更广、内存与并发表现更好,并持续跟进上游内核的更新节奏。

规则是不是写得越多越好?

不是。每条规则都有匹配成本,也会增加理解成本。更稳妥的做法是先写少量通用规则,再用日志观察实际走向,只把真正需要的例外补进去。能用一个组解决的问题,不必用十条规则承担。

订阅里的节点总在变,配置怎么应对?

关键是不要在规则里写节点名。规则只指向代理组,节点由订阅填充进组内。这样节点增删、改名、换地区,逻辑层都不需要改动。

手机上能直接用吗?

可以。移动端客户端普遍基于同一内核,配置文件格式通用。为了在手机上更省电,建议把自动测速的间隔调长,并减少大体积规则集的加载。

从一条规则开始,而不是从一百条开始

先让最小的逻辑跑通:一个组、一条规则、一个策略。等你读得懂自己的配置,再考虑规模。

回看三层结构