mihomo
内核与客户端当前 Clash 生态的主力内核,由社区在 Clash.Meta 的基础上延续维护。相比原版内核,补齐了 VLESS、Hysteria2 等新协议,并提供更完整的 TUN 实现与 Geosite 支持。本站下载页收录的 GUI 客户端多数都内置 mihomo,选择客户端时留意其内核版本即可。
glossary(7) · 26 entries
配置文件、客户端界面与排错日志里反复出现的名词,按五个分类逐条解释。每个术语卡都有独立锚点,可直接复制地址栏链接分享;读教程或手册时遇到陌生概念,回到这一页对照即可。
01 / core & clients
先分清「内核」与「客户端」:内核负责收发流量与匹配规则,客户端负责给内核套上图形界面。生态里这两层经常被混着叫,理清了这一层,后面很多问题都好定位。
当前 Clash 生态的主力内核,由社区在 Clash.Meta 的基础上延续维护。相比原版内核,补齐了 VLESS、Hysteria2 等新协议,并提供更完整的 TUN 实现与 Geosite 支持。本站下载页收录的 GUI 客户端多数都内置 mihomo,选择客户端时留意其内核版本即可。
用 Go 编写的规则式代理内核,定义了沿用至今的 YAML 配置格式,项目已于 2023 年停止更新。如今说「Clash」,更多指围绕这套配置格式形成的整个生态,而非那个具体的内核程序;现役内核以 mihomo 为主。
在内核之上封装图形界面的桌面或移动应用,例如 Clash Verge Rev、Clash Plus、FlClash。客户端负责订阅管理、节点切换、系统代理与 TUN 开关等交互,底层的流量收发和规则匹配仍由内核完成。排错时要先分清问题出在界面层还是内核层。
基于 Tauri 的跨平台桌面客户端,内置 mihomo 内核,提供 Windows、macOS 与 Linux 版本。Linux 侧有 deb 与 rpm 两种安装包,覆盖 Debian 系与 Red Hat 系发行版,是 Linux 桌面环境下的常见选择。
macOS 平台的菜单栏客户端,由早期的 ClashX 换用 Meta 系内核演化而来,界面极简、常驻菜单栏。项目目前已停止维护,存量安装仍可运行,但不再获得功能更新,新用户建议选择仍在维护的客户端。
02 / protocols
订阅里每个节点都对应一种协议。协议决定了流量如何加密与伪装,也决定了它需要哪一代内核支持——遇到「不支持的 type」这类报错,先来这里查协议归属。
轻量加密代理协议,结构简单、性能开销低,是生态里最早被广泛支持的协议之一。Clash 配置中 type 写作 ss,常见加密方式为 aes-128-gcm 与 chacha20-ietf-poly1305,新旧内核均可使用。
V2Ray 项目设计的传输协议,依赖 UUID 做身份鉴权,自带时间校验,本机时间偏差过大会导致连接失败。可搭配 WebSocket、gRPC 等多种传输层,再叠加 TLS 加密,组合形态非常多。
把代理流量伪装成标准 HTTPS 的协议,必须运行在带有效证书的 TLS 之上,通常监听 443 端口。因为握手与传输都与普通网页访问一致,流量特征上更难被识别,配置里的 sni 字段需与证书域名匹配。
VMess 的精简后继,去掉了协议内置加密,把安全性完全交给外层的 TLS 或 REALITY,开销更低。原版 Clash 内核不支持该协议,订阅里含 VLESS 节点时必须使用 mihomo 系内核的客户端。
基于 QUIC 的代理协议,针对高丢包、高延迟链路做了拥塞控制优化,弱网环境下的吞吐表现突出。底层走 UDP,途中防火墙需放行对应端口;同样只有 mihomo 系内核支持。
03 / rules & routing
「哪些流量走代理、哪些直连」由规则系统决定。理解规则匹配顺序与策略组的关系,是从「能用」到「用得顺」的分水岭。
配置文件里自上而下逐条匹配的规则表,每条由「匹配类型,匹配值,策略」三段组成,如 DOMAIN-SUFFIX,example.org,PROXY。一旦命中即停止匹配,后面的规则不再生效,因此顺序很重要;末尾通常放一条 MATCH 规则兜底。
把多个节点组织成一个可选择的组。类型包括 select(手动选)、url-test(自动测延迟选最快)、fallback(故障转移)与 load-balance(负载均衡)。规则的出口通常指向策略组而非单个节点,这样换节点不必改规则。
按目标 IP 归属地匹配的规则类型,依赖客户端本地的 GeoIP 数据库。GEOIP,CN,DIRECT 是让中国大陆 IP 直连的经典写法。数据库会过时,多数客户端设置里提供一键更新入口,访问归属判断异常时先更新它。
按社区维护的域名分类库匹配的规则类型,一条规则即可覆盖整类站点,例如 GEOSITE,category-ads-all 常用于拦截广告域名。mihomo 原生支持,配合 GeoIP 使用可以把手写规则压到很少。
把大批规则放进外部文件,按 URL 订阅并用 interval 字段定时更新。配置主体里只需一条 RULE-SET 引用,避免手工维护几千行规则;社区有多套持续更新的公开规则集可直接引用。
04 / network & ports
流量怎样进入内核、域名如何解析、延迟数字代表什么——这一组术语覆盖代理链路上的网络层概念,也是排查「开了代理却没生效」时最常查的部分。
内核创建一块虚拟网卡,在网络层接管系统全部流量的工作方式,可以覆盖不遵守系统代理设置的程序与命令行工具。Linux 下需要授予相应权限或以特权运行内核,通常配合 auto-route 自动接管路由表。
操作系统层面的 HTTP/SOCKS 代理设置,客户端开启后把桌面环境的代理指向本机监听端口(如 127.0.0.1:7890)。只有主动遵守该设置的应用才会走代理,浏览器基本都遵守,不少命令行工具则不认——这正是 TUN 模式存在的原因。
DNS 工作模式之一,由 enhanced-mode 字段控制。内核对域名查询返回保留网段的虚拟地址(默认 198.18.0.0/16),流量到达后直接按域名匹配规则,省去一次真实解析,响应更快也不易受 DNS 污染影响。个别依赖真实 IP 的程序需要配置 fake-ip-filter 排除。
代理开启后,域名解析请求仍然发往本地运营商 DNS 的现象。它会暴露访问意图,解析结果也可能被污染导致连接异常。启用 Fake-IP,或在配置的 dns 段指定 DoH/DoT 加密上游,都可以避免泄漏。
Windows 的 UWP 应用(商店应用)默认被系统禁止访问本机回环地址 127.0.0.1,因此连不上本地代理端口,表现为其他程序正常、唯独商店应用不走代理。需用回环豁免工具逐个放行;Linux 与 macOS 没有这一限制。
客户端对节点发起一次 HTTP 探测(常用 Google 的 generate_204 地址)测得的往返耗时,单位毫秒。数值反映连通性与响应速度,与下载带宽没有直接对应关系;超时或报错说明该节点当前不可用,而非单纯「慢」。
05 / config fields
config.yaml 顶层的几个关键字段,决定了内核监听在哪、谁能连进来、怎么被外部面板控制。改配置之前,先确认自己动的是哪一个。
在同一个端口上同时监听 HTTP 与 SOCKS5 两种代理协议的字段,常见取值 7890。系统代理与浏览器插件都指向这个端口即可,省去分别配置 port 与 socks-port 的麻烦;端口被占用时改这里,并同步更新系统代理设置。
控制是否允许局域网内其他设备连入本机代理端口。设为 true 并配合 bind-address 后,同一网段的手机、电视盒子把代理指向这台机器的地址与端口,即可共用它的 Clash 代理;公共网络环境下务必保持关闭。
内核对外暴露的 RESTful API 监听地址,常设 127.0.0.1:9090。metacubexd、yacd 等 Web 面板通过它读取节点列表、切换策略组、查看实时连接;配套的 secret 字段用于设置访问密码,监听非本机地址时必须配置。
运行模式字段,三个取值:rule 按规则表分流、global 全部流量走代理、direct 全部直连。日常保持 rule 即可;排查「某网站到底该不该走代理」时,可临时切到 global 或 direct 做对比测试,定位后记得切回来。
Clash 配置文件采用的数据格式,靠缩进表达层级,只能使用空格、不能使用 Tab,冒号后必须留一个空格。订阅导入报「解析失败」时,相当一部分本质是 YAML 语法错误;用编辑器的 YAML 校验功能可以快速定位出错行号。