内核(Core)
内核与版本负责读取配置、建立连接并执行规则的程序主体,订阅、节点与策略组最终都由它解析。图形客户端只是它的外壳,承担界面与开关;换客户端不改变分流结果,换内核才会改变功能边界。
术语手册
客户端界面里的每个开关、配置文件里的每个字段,背后都对应一个明确的技术名词。这份手册按六类整理常用术语,每条给出定义、出现位置与相邻概念的区分,方便对照配置与排查问题时快速定位。
执行层
客户端界面上看到的功能,最终都由内核实现。这一组名词决定配置能否被正确解析、协议是否被支持。
负责读取配置、建立连接并执行规则的程序主体,订阅、节点与策略组最终都由它解析。图形客户端只是它的外壳,承担界面与开关;换客户端不改变分流结果,换内核才会改变功能边界。
由 Clash Meta 更名而来的开源内核,也是当前多数新客户端默认搭载的内核。它保留 Clash 的配置格式,同时扩展了协议支持与规则能力,配置文件里的 mixed-port、tun、proxy-providers 等字段都由它解析执行。
mihomo 的旧称,社区里大量教程与配置文件仍沿用这个写法。看到内核标注 meta 字样时,一般指同一支内核的早期版本,配置字段与 mihomo 基本通用,遇到不认识的字段先确认内核版本。
mihomo 内核采用的自由软件许可协议,允许使用、修改与再分发,衍生版本需要保持同样的许可条款。客户端生态之所以能长期并行维护,与这一许可安排直接相关。
连接层
协议决定握手方式、加密位置与资源开销。同一台服务器换一种协议,速度与电量表现可能完全不同。
较早被广泛采用的代理协议,设计目标是轻量与低开销:配置里通常只有加密方式、密码与端口三项。它没有内建的多路复用与额外传输层,功能边界清晰,在低配设备与路由器上资源占用较低。
V2Ray 项目早期的主力协议,自带用户 ID 与时间校验,要求客户端与服务端的时间基本同步。配置字段较多,参数写错时往往直接连接失败,目前多被更精简的 VLESS 取代。
VMess 的简化后继者,去掉了内建加密与时间校验,把安全性交给底层传输层处理,因此配置更短、握手更快。它通常与 TLS、WebSocket 或 gRPC 组合出现,是当前主流协议之一。
以 TLS 为外壳的代理协议,服务端表现得像一台普通 HTTPS 服务器,配置里主要是密码与域名。它的优势是复用标准 TLS 端口、部署简单;代价是握手开销略高于裸协议。
基于 QUIC 的代理协议,拥塞控制放在用户态实现,在丢包较多的链路上仍能维持吞吐。它对 UDP 友好、延迟表现稳定,代价是更吃 CPU,低功耗设备上要留意发热与电量。
同样基于 QUIC 的协议,主打低延迟与连接迁移,切换网络时连接不容易中断。与 Hysteria2 相比配置项更少,客户端支持面稍窄,选型前先确认所用客户端是否内置。
分流层
规则、策略组与配置文件格式共同决定每条连接的去向,也是排错时改动最频繁的部分。
用一组规则决定每条连接走哪个策略组:命中域名、IP 或进程条件时按规则走,全部未命中则落到最后一条 MATCH。它是配置的核心部分,决定了哪些流量直连、哪些交给代理。
把大量规则从主配置里拆出来单独维护的文件或远程地址,通过 rule-providers 引用。好处是更新规则不必改动主配置,多份配置也能共用同一份规则;代价是多一次加载与缓存管理。
配置里的一组可选出口,常见类型有 select、url-test 与 fallback:手动选择、按延迟自动选择、按顺序兜底。规则命中后指向策略组,界面里切换的其实就是策略组当前选中的节点。
Clash 配置文件的书写格式,用缩进表示层级、用短横线表示列表项。它对缩进敏感,混用空格与制表符、层级错位都会导致解析失败,是配置报错里最常见的一类原因。
规则从上到下逐条比对,命中即停止,因此顺序本身就是策略的一部分。把范围大的规则放在前面会遮住后面的精确规则,排查分流异常时先看顺序,再核对规则本身。
资源层
订阅把远端节点带到本地,配置文件把结果保存下来。两者失效时的表现并不一样,排查方向也不同。
服务商提供的一串地址,客户端定期拉取后生成节点与策略组。链接通常带一个令牌参数,等同于账号凭据,不要公开分享;链接失效或返回空内容时,节点列表也会随之清空。
一台可连接的服务器及其参数集合,包含地址、端口、协议与加密方式等字段。一个订阅里通常包含多个节点,客户端把它们放进策略组,供手动切换或自动测速挑选。
客户端里保存的一份完整配置,既有订阅生成的节点,也有本地规则、DNS 与策略组设置。多数客户端支持多份配置文件并存,排错时可以新建一份最小配置来排除干扰。
把一种订阅格式翻译成另一种的中间服务,常见用途是把通用链接转成 Clash 可读的 YAML。转换过程会改写节点参数与规则,出问题时先对比转换前后的原始内容再判断。
提供订阅链接与服务器资源的服务方,用户侧看到的是一串链接与若干节点。选型时关注协议类型、节点地区与更新频率,节点数量多不等于可用质量高。
网络层
系统代理与 TUN 决定流量是否进入内核,DNS 与 Fake-IP 决定域名解析发生在哪一步。
客户端把系统的 HTTP 与 HTTPS 代理指向本地端口,由内核接管这部分流量。它只覆盖遵循系统代理设置的程序,终端命令、部分桌面应用与 UDP 流量不会自动走代理,这是排查连不上的第一处检查点。
客户端创建一块虚拟网卡,把整机流量在系统层面接管,覆盖系统代理管不到的程序与 UDP 流量。开启后通常需要管理员权限,并要处理好 DNS 与路由,否则容易出现回环或断网。
本该由内核处理的域名解析请求,被系统或浏览器直接发给了本地 DNS,使分流判断缺少依据。常见来源是浏览器自带的加密 DNS、多网卡配置与未被接管的 53 端口。
内核先给域名返回一个保留段内的虚拟地址,连接发起后再按域名匹配规则、建立真实连接。它省去了等待真实解析的时间,首包响应更快,但依赖真实 IP 的程序需要单独排除。
一次请求往返所需的时间,客户端测速给出的数值通常来自对某个测试地址的探测。它反映当前线路质量,不等于下载速度;不同客户端的测速地址不同,数值之间不宜直接比较。
客户端的三档接管策略:规则模式按配置分流,全局模式把所有流量交给代理,直连模式完全不经过代理。日常用规则模式,切换模式常用来快速判断问题出在规则还是线路。
把 IP 地址映射到国家或地区的数据库,规则里的 GEOIP 条件与界面上的地区标签都由它提供。数据库需要定期更新,否则新分配的地址段会被判成错误的地区。
界面层
客户端负责订阅管理、开关与日志展示。选型时先看平台覆盖与内置内核版本,再看界面是否符合使用习惯。
内核的图形外壳,负责订阅管理、节点切换、模式开关与开机自启等操作。它把用户操作翻译成配置交给内核执行,因此界面差异不影响分流结果,内核版本才决定功能边界。
基于 Tauri 的桌面客户端,覆盖 Windows、macOS 与 Linux,界面里可以直接编辑配置、查看连接与日志。它内置 mihomo 内核,适合需要同时管理多份配置的桌面用户。
跨平台客户端,桌面端与 Android 共用同一套界面逻辑,配置导入与策略组切换集中在首页。它支持多配置文件与规则编辑,适合在手机与电脑之间保持一致的使用习惯。
早期使用最广的 Windows 客户端,原项目已停止维护,不再跟进新内核与新协议。已有配置仍可导出并迁移到其他客户端,新装机不建议再把它作为首选。
覆盖 Windows、macOS、Android 与 iOS 的全平台客户端,iOS 端通过 App Store 获取,官网是 clashplus.io。它内置 mihomo 内核,订阅导入与规则切换集中在同一套界面里。
对照速查
下面几组名词在配置与排错时最常被混用。先分清它们各自描述的对象,再判断该改配置、换模式,还是换客户端。
| 对照项 | 区别要点 |
|---|---|
| 内核 / 客户端 | 内核负责连接与分流,客户端负责界面与订阅管理;换客户端不改变分流结果,换内核才会改变功能边界。 |
| 规则模式 / TUN 模式 | 前者决定流量走哪条线路,后者决定流量是否被整机接管;两者可以同时开启,互不替代。 |
| 系统代理 / TUN 模式 | 系统代理只覆盖遵循系统设置的程序,TUN 模式在网卡层面接管整机流量,包含 UDP。 |
| 订阅链接 / 配置文件 | 订阅链接是远端地址,配置文件是本地保存的结果;链接失效不会立刻删除已有节点。 |
| DNS 泄漏 / 解析失败 | 泄漏是解析请求走了不该走的通道,解析失败是根本没拿到结果,两者的处理方向不同。 |
| Fake-IP / 真实 IP | Fake-IP 是内核返回的虚拟地址,只在客户端内部有效;需要真实地址的程序要单独排除。 |
先定位名词属于哪一层
配置里出现不认识的字段时,先判断它属于内核、客户端还是订阅层,再决定去查哪一份资料。跨层写错的字段,报错信息往往指向别处。
继续阅读
术语解释的是名词含义,具体操作步骤与配置细节在下面几页里展开。