官方知识库 · 完整知识体系与全维度参考
从 Clash 协议到 Mihomo 内核,从 DNS 原理到 YAML 语法,这里系统梳理了代理工具运行的底层逻辑。无论是建立认知框架还是快速查阅细节,Wiki 都能提供准确、体系化的参考。
📘 Clash 协议详解
🧬 什么是 Clash?
Clash 是一套开源的代理工具核心规范,定义了规则分流、策略组和代理节点管理的标准模型。它并非单一软件,而是一种被多个客户端(包括 Clash Verge Rev)遵循的配置范式。
🔀 分流规则体系
Clash 规则按优先级从上到下匹配,支持 DOMAIN、DOMAIN-SUFFIX、GEOIP、IP-CIDR 等多种类型。每条规则将匹配的流量导向指定策略组,实现精细化流量调度。
🧩 策略组与代理链
策略组是节点选择的逻辑单元。常见类型包括 select(手动)、url-test(自动选优)、fallback(故障转移)和 load-balance(负载均衡)。策略组之间可以嵌套,形成灵活的代理链。
📡 支持的代理协议
原生支持 Shadowsocks、VMess、Trojan、HTTP/SOCKS5 等协议。通过 Mihomo 内核的扩展,还可兼容更多新兴协议,确保广泛的节点兼容性。
📄 配置文件格式
Clash 配置文件使用 YAML 格式,以 general、proxies、proxy-groups、rules 等段落组织。严格缩进和正确的字段名是关键,错误的格式将导致配置无法加载。
⚖️ 规则匹配优先级
规则按从上到下的顺序依次匹配,首次命中即停止。因此更精确的规则应放在前面,最末尾的 MATCH 规则作为兜底,确保所有流量都有明确去向。
⚙️ Mihomo 内核文档
🚀 内核定位
Mihomo 是 Clash Verge Rev 的底层引擎,负责协议解析、规则匹配、连接调度和DNS 处理。它采用 Go 语言编写,具备高并发和低资源占用的特性。
⚡ 性能优势
相比传统 Clash 内核,Mihomo 在连接复用、内存管理和规则编译方面进行了大量优化,单机可支撑数万并发连接,适合服务器部署和高负载场景。
🔧 可调优参数
- buffer-size:调整缓冲区大小,影响大文件传输速度。
- tcp-concurrent:控制 TCP 并发连接数上限。
- keep-alive-interval:设置连接保活间隔,减少断线。
🔄 更新与维护
Mihomo 内核独立于 GUI 更新,可在客户端内一键升级。版本更新会带来性能提升、新协议支持和安全补丁,建议保持最新。
🆚 与 Clash 原版的区别
Mihomo 在 Clash 基础上重写了连接池和DNS 模块,修复了部分内存泄漏问题,并加入了对 WireGuard 等新协议的支持,整体更稳定高效。
🔨 编译与自定义构建
高级用户可以从源码编译 Mihomo,通过修改 build tags 可裁剪不需要的功能,获得更小的二进制体积,或启用实验性特性进行测试。
🌐 DNS 原理与配置
🔍 DNS 的作用
DNS(域名系统)将人类可读的域名转换为 IP 地址。代理工具中 DNS 配置直接影响域名分流准确性和隐私防护。错误的 DNS 设置可能导致泄漏或分流失效。
🔐 DoH/DoT 加密
DNS over HTTPS(DoH)和 DNS over TLS(DoT)对 DNS 查询进行加密,防止运营商或中间人窥探。Clash Verge Rev 推荐使用加密 DNS 作为上游服务器。
🪞 Fake-IP 模式
开启 Fake-IP 后,DNS 解析返回虚拟 IP 地址,并在内存中维护域名-IP 映射表。规则可以直接基于 IP 匹配,无需重复解析,大幅提升规则引擎效率。
🛡️ DNS 防泄漏
通过设置 dns.ipv6 为 false 禁止 IPv6 查询泄漏,启用 fallback-filter 防止回退到本地 DNS,搭配 Fake-IP 共同构筑防护体系。
⚡ DNS over QUIC (DoQ)
DoQ 基于 QUIC 协议,比传统 DoH/DoT 更快更安全。Mihomo 内核支持将 DoQ 服务器设为上游,进一步降低解析延迟并增强抗干扰能力。
🗄️ 域名解析缓存
客户端可配置 DNS 缓存时间(cache-ttl),合理的缓存值能减少对外查询频率,加速重复访问,但过长可能导致 IP 变化时延迟生效。
🖧 TUN 虚拟网卡
📡 TUN 是什么?
TUN 是操作系统层面的虚拟网络接口,可以拦截所有进出设备的 IP 包。Clash Verge Rev 通过创建 TUN 设备实现全局流量接管,使不支持代理的应用也能走代理。
🔄 与系统代理的区别
系统代理仅影响遵循系统代理设置的应用(如浏览器)。TUN 模式工作在更低层,可接管命令行工具、Docker 容器、WSL 等所有网络流量。
⚙️ 配置要点
- enable: true 开启 TUN。
- stack: system 使用系统网络栈。
- auto-route: true 自动设置路由规则。
- auto-detect-interface: true 自动检测网卡。
⚠️ 注意事项
部分安全软件可能与 TUN 驱动冲突;Linux 下需要 root 权限或配置 CAP_NET_ADMIN;开启 TUN 后请确保 DNS 也正确配置以防泄漏。
🔌 TUN 驱动安装与卸载
Windows 下 TUN 驱动(如 wintun)随客户端附带,无需手动安装。macOS/Linux 则依赖系统内核模块。若出现问题,可通过客户端设置中的重置 TUN 驱动功能修复。
🗺️ 路由表管理
TUN 启动时会自动添加路由规则,将特定流量导向虚拟网卡。用户也可通过route-address 自定义 CIDR 列表,精确控制哪些 IP 段走代理。
🌍 GeoIP 数据说明
📊 GeoIP 是什么?
GeoIP 是 IP 地址归属地的数据库,用于判断某个 IP 属于哪个国家或地区。Clash Verge Rev 使用 离线 GeoIP 数据库 进行 GEOIP 规则匹配,无需联网查询。
🔄 数据更新
GeoIP 数据库由社区维护,每月更新一次以反映最新的 IP 分配情况。客户端支持自动拉取最新数据库,确保分流准确性。
🎯 应用场景
常见的 GEOIP,CN,Direct 规则将所有中国大陆 IP 流量直连,避免代理绕行导致速度下降。也可用于按国家分流业务流量与日常通信。
🧪 自定义 GeoIP
用户可以通过 YAML 文件加载自定义的 GeoIP 规则,覆盖默认数据库,实现私有 IP 段或特殊区域的分流逻辑。
🗂️ GeoIP 数据库格式
默认使用 MMDB 格式(MaxMind Database),体积小查询快。也可手动替换为其他兼容格式的数据库,以满足特定隐私或精度需求。
🔗 与直连规则的结合
GeoIP 常与 DOMAIN-SUFFIX 配合使用,例如将国内域名与 GEOIP-CN 同时设为直连,双重过滤确保访问速度与稳定性。
📄 YAML 配置语法
📋 YAML 基础
YAML 是一种人类可读的数据序列化格式,使用缩进表示层级关系。Clash 配置文件完全采用 YAML 编写,要求严格的缩进(2 空格)和正确的键值对格式。
🧱 配置结构
标准配置文件包含 general、proxies、proxy-groups、rules、dns 等顶层段。每个段下又包含若干字段,Clash Verge Rev 会自动校验配置合法性。
🚫 常见错误
- 缩进不一致(混用空格和 Tab)
- 漏写或错写字段名
- 策略组引用不存在的节点
- 规则中指定了未定义的策略组
🧰 校验工具
Clash Verge Rev 内置了 YAML 语法检查器,会在加载配置时提示错误行号和类型。也可使用在线 YAML 校验工具预先检查,确保配置准确。
📑 多文档支持
YAML 使用 --- 分隔符支持多个文档共存于同一文件。Clash 允许将不同策略组或规则集分段编写,方便模块化管理与复用。
💬 注释与最佳实践
使用 # 添加注释说明规则用途,便于维护。建议为每条自定义规则写上注释,并在修改后立即测试,养成配置版本管理的习惯。