mihomo 内核
mihomo 是由 Clash Meta 分支发展而来的代理内核,负责解析配置、匹配规则、处理 DNS 和建立代理连接。它可以由图形客户端管理,也可以在命令行环境中独立运行。某个字段能否使用,应核对实际运行的内核版本与文档,不能仅根据客户端名称判断。
对照:图形客户端 →按五类查阅 25 个常见术语:先分清内核、客户端与流量入口,再理解规则、DNS 和配置文件。每条术语都带独立锚点,可直接分享对应解释。
界面负责管理,内核负责执行;界面中的开关是否生效,还要看权限、实际配置和流量是否进入内核。
mihomo 是由 Clash Meta 分支发展而来的代理内核,负责解析配置、匹配规则、处理 DNS 和建立代理连接。它可以由图形客户端管理,也可以在命令行环境中独立运行。某个字段能否使用,应核对实际运行的内核版本与文档,不能仅根据客户端名称判断。
对照:图形客户端 →图形客户端提供订阅导入、代理组选择、系统代理开关和日志查看等操作界面,Clash Verge Rev 就属于这一层软件。客户端可能同时管理内核进程,并把界面设置合并到订阅配置中。因此,订阅原文与内核最终收到的内容可能不同,排障时要查看实际运行配置。
查看客户端列表 →系统代理向操作系统登记代理地址和端口,由遵循这项设置的应用主动连接,常见入口是本机回环地址。它不等于接管设备上的全部流量,自带网络设置的应用可能忽略系统代理。若只有部分应用无法连接,应先检查应用自己的代理选项,再决定是否需要 TUN。
对照:TUN 模式 →服务模式让客户端借助系统后台服务启动或管理需要较高权限的内核任务,桌面端常用于配合虚拟网络接口等功能。安装服务可能需要管理员授权,但不代表系统代理、TUN 或开机自启都已开启。服务安装成功后,应分别确认功能开关、内核状态和对应日志。
外部控制接口供图形客户端或控制面板读取状态、切换策略及管理连接,配置字段通常是 external-controller。它是管理入口,不是供浏览器转发网页请求的代理端口。通常应限制在本机监听并设置认证,开放给局域网前还需考虑访问权限和防火墙。
节点不是只有服务器地址。协议、认证、传输方式和网络支持需要相互匹配,测试结果也应结合具体业务解读。
代理节点是一组连接远端代理服务所需的参数,通常包括服务器地址、端口、协议、认证信息与传输选项。节点名称只是方便识别的标签,名称中的地区或线路描述不能替代实际验证。同一节点可能对不同目的站点表现不同,应结合连接日志和实际访问结果判断可用性。
代理协议规定客户端与远端服务如何认证和转发数据,常见类型包括 Shadowsocks、VMess、VLESS 与 Trojan。相同服务器地址不代表协议可以互换,密码、用户标识和其他协议参数也需要完整保留。导入失败或握手失败时,应先确认内核支持该协议,再核对节点字段是否在转换中丢失。
传输方式决定数据如何承载,例如直接使用 TCP,或采用 WebSocket 等方式;TLS 则可为连接提供加密和证书身份验证。这些概念不能与代理协议混为一谈,服务端名称、证书和传输路径都需匹配服务端设置。遇到证书错误时,优先检查时间、名称与证书链,不宜把关闭验证作为长期解决方案。
UDP 转发让基于 UDP 的应用流量通过代理链路传递,常见于实时通信、游戏和部分 DNS 请求。浏览器能够打开网页,只能说明对应连接可用,不能证明 UDP 转发正常。客户端配置、代理协议、远端服务和中间网络都可能影响结果,应使用具体应用进行验证。
客户端中的延迟测试通常衡量通过节点访问指定测试地址的耗时,不一定等于 ICMP 测得的网络往返时间。目标站点、连接复用和网络波动都会改变结果,不同测试地址得到的数值也不适合直接横向比较。较低测试耗时不保证下载带宽更高,超时则应继续区分测试目标不可达还是整个节点不可用。
先判断连接命中了哪条规则,再检查规则指向哪个代理组,最后确认组内实际选中了哪个节点。
规则分流根据域名、目标 IP 等条件选择连接策略,常规规则按从上到下的顺序匹配,先命中的规则决定后续去向。例如 DOMAIN-SUFFIX,github.com,PROXY 将对应域名后缀交给名为 PROXY 的策略,前提是该策略确实存在。具体规则应放在宽泛规则之前,末尾通常用 MATCH 承接剩余流量。
代理组把多个节点或其他代理组组织成可供规则引用的入口,使规则不必绑定单一节点。select 用于手动选择,url-test 按测试结果选择,fallback 按既定顺序寻找可用项。组名可以自行命名,名称中出现“自动”不代表它必然采用自动测试策略,应查看组的类型与成员。
规则模式按照规则表选择策略;全局模式通常将已进入内核的连接交给全局策略;直连模式则直接连接目标。Clash 全局模式并不负责捕获应用流量,未进入内核的连接不会因切换模式而改变路径。排查分流时可短暂切换模式比较结果,但仍需检查全局策略当前选中的成员。
GeoIP 按 IP 地址归属进行匹配,GeoSite 使用分类域名数据,两者处理的对象不同,也依赖各自的数据源。IP 归属不能直接等同于用户所在地或服务部署位置,使用 CDN 的站点尤其需要结合域名规则判断。Clash GeoIP 更新与订阅更新是不同维护任务,发现分类偏差时应检查数据来源、更新时间与规则顺序。
规则集把大量匹配条件集中存放,由 rule-providers 定义,并在主规则表中通过 RULE-SET 引用。规则集的行为类型、文件格式与内容必须一致,域名列表不能随意按 IP 列表加载。更新规则集只刷新其中的条件,不会自动改变它在主规则表中的位置,也不会创建缺失的代理组。
域名怎样解析、连接怎样进入内核,是两条相互关联但不能互相替代的路径。
DNS 解析把域名转换为 IP 地址等记录,内核可以提供自己的解析路径,以配合规则匹配和连接建立。系统、浏览器与应用可能各自使用不同解析器,浏览器的加密 DNS 设置也可能绕过系统解析入口。因此,修改内核 DNS 后仍应检查请求实际由谁发出,以及解析结果是否来自旧缓存。
Fake-IP 通过返回保留地址段中的虚拟地址,保存域名与连接之间的对应关系,方便内核在连接阶段进行域名分流。这些地址不是远端网站的真实 IP,不适合拿去与公网地址归属直接比较。个别依赖真实地址或自行处理解析结果的应用可能需要例外,可通过 fake-ip-filter 针对域名调整,并重新建立连接验证。
TUN 模式借助虚拟网络接口和路由设置,让更多应用流量进入内核,适合无法直接设置代理的应用。实际接管范围仍受路由、系统权限、排除项和 DNS 设置影响,开启后不能直接推断所有协议都已正常转发。与其他 VPN 或虚拟网卡同时运行时,应留意路由冲突,出现异常可逐一停用对照。
DNS 泄漏指查询偏离预期解析路径,例如本应经代理处理的域名却由本地网络的解析器查询。是否属于泄漏,应先明确预期策略;主动设为直连解析的域名不能仅凭地区信息判定异常。检查 Clash DNS 泄漏时,应结合解析器归属、浏览器加密 DNS、系统设置和连接日志,而不是只看检测网站显示的国家或地区。
混合端口在同一监听入口提供 HTTP 代理与 SOCKS 代理,常用于向本机应用提供代理服务,对应字段是 mixed-port。端口值以实际运行配置为准,教程中的示例数值不一定适用于当前客户端。允许局域网连接时,还需检查监听地址、访问认证和防火墙,避免把本机入口意外开放给其他网络。
区分下载得到的原文、本地修改和最终运行结果,能减少订阅更新后设置丢失或修改未生效的问题。
订阅链接用于获取节点或完整配置;常见的 Clash 机场订阅通常由服务提供方生成,并可能附带识别账户的访问令牌。链接应按敏感信息保存,不宜出现在公开截图、日志或讨论区。更新订阅只刷新来源内容,不等于切换当前代理组;导入后仍应确认配置已启用、组内有可选项且连接入口正确。
YAML 是常见的配置表达格式,通过缩进、键值与列表描述结构,Clash 配置常使用 config.yaml 这类文件名。缩进应使用空格,层级错误、重复键或需要引号的特殊字符都可能导致解析异常。格式能够解析,只能证明结构可读,还需检查字段是否受当前内核支持、策略引用是否存在以及运行日志是否报错。
订阅转换将节点信息或完整配置转换为另一种客户端可识别的格式,常用于来源格式与目标客户端不一致的情况。转换过程可能丢失协议参数、代理组、规则或 DNS 设置,并非只改变文件扩展名。使用远程转换服务意味着把原始订阅交给该服务处理,应先了解其可信度,并优先考虑来源直接提供的兼容格式。
覆写与合并在订阅原文之外追加或修改配置,适合保存本地端口、DNS 和自定义规则,减少订阅更新覆盖本地调整的情况。不同客户端对对象合并、列表替换和规则追加的处理可能不同,不能照搬另一客户端的操作结论。修改后应查看合成配置,尤其确认自定义规则的位置以及引用的代理组名称。
配置档案是客户端保存的本地文件或订阅记录,运行配置则是经过选择、覆写与合并后交给内核的内容。编辑器中看到的原文、磁盘上的文件和当前内核状态可能并不完全一致,修改后还可能需要重新应用。排障时先确认当前启用的档案,再查看运行配置和日志,比反复修改未启用的文件更有效。