Mihomo
Mihomo 是曾使用 Clash Meta 名称的代理内核,负责协议连接、规则匹配、DNS 处理与流量转发。图形客户端是在内核之外提供配置管理和操作界面的应用,两者不是同一个层级。排查兼容性时,应同时确认客户端版本与实际运行的内核版本,而不是只看应用名称。
阅读内核与客户端说明 →MIHOMO / GLOSSARY
对照客户端设置与 YAML 字段查词。先区分内核、节点和策略组,再理解请求如何经过规则、DNS 与路由。
这一组术语说明配置由谁执行、如何组织,以及远程内容怎样进入客户端。
Mihomo 是曾使用 Clash Meta 名称的代理内核,负责协议连接、规则匹配、DNS 处理与流量转发。图形客户端是在内核之外提供配置管理和操作界面的应用,两者不是同一个层级。排查兼容性时,应同时确认客户端版本与实际运行的内核版本,而不是只看应用名称。
阅读内核与客户端说明 →YAML 是 Mihomo 使用的配置格式,通过缩进表达层级,用键值对和列表组织字段。缩进应使用空格,布尔值、数字和字符串也要符合对应字段的要求。编辑后如果出现解析错误,应先检查报错行附近的缩进、冒号和引号;语法能够解析,并不意味着字段组合一定有效。
查看配置文件管理 →订阅链接是客户端获取节点列表或完整配置的地址,返回内容的格式决定了应如何导入。有的链接只提供节点,有的还包含策略组、规则和 DNS 设置,不能仅凭链接外观判断。更新订阅是重新获取远程内容,不是修复节点的通用操作;链接还可能包含访问凭据,应避免出现在公开截图与日志中。
查看订阅导入与更新 →代理集合通过 proxy-providers 定义,可从本地文件或远程地址载入一组节点。策略组通过 use 引用集合,从而把节点来源与分流结构分开维护。集合更新成功后,还需确认策略组确实引用了它;单独定义一个集合,不会自动改变现有规则的出口。
协议决定客户端如何连接服务端。协议名称本身不能证明线路质量,也不能代替完整的认证与传输参数。
节点是一组描述代理连接目标的参数,通常包含协议类型、服务器地址、端口和认证信息,部分协议还需要传输与 TLS 设置。节点名称只是供界面和配置引用的标识,并不能证明实际出口地区。某个节点连接失败时,应结合日志检查认证、域名解析和服务端可达性,而不只是修改显示名称。
Shadowsocks 使用指定的加密方法与密码建立代理连接,在 Mihomo 中对应 type: ss。客户端与服务端需要使用兼容的加密方法,部分方案还涉及插件参数。它可以承载 UDP,但是否实际可用取决于两端支持、节点设置以及中间网络,不能只根据协议名作出判断。
VLESS 使用 UUID 进行认证,协议本身不单独提供内容加密,常与 TLS 或 REALITY 等机制组合使用。实际连接还可能涉及传输方式、服务器名称及流控设置,这些参数都需要与服务端匹配。只有服务器地址和 UUID 通常不足以完整还原节点,导入时应保留提供方给出的其他字段。
Trojan 通常在 TLS 连接中传输代理流量,并使用密码完成认证。密码正确也不代表连接必然成功,证书有效性、服务器名称和传输方式同样影响握手。遇到证书错误时,应先确认系统时间和节点参数;关闭证书验证会削弱身份验证,不应作为长期解决办法。
Hysteria2 是基于 QUIC 的代理协议,底层连接依赖 UDP 通路。配置中的带宽参数用于拥塞控制相关设置,不代表线路保证能够达到相同速度。若当前网络限制 UDP,网页流量即使属于 TCP,也可能因为底层代理连接无法建立而失败,此时应检查网络限制与服务端状态。
TUIC 是基于 QUIC 的代理协议,可以承载 TCP 与 UDP 流量。认证信息、协议版本以及拥塞控制等设置需要与服务端兼容,不能直接套用其他 QUIC 协议的配置。测试时应区分底层握手失败与某类业务转发失败,前者优先检查 UDP 可达性,后者还需检查规则和转发设置。
WireGuard 是使用 UDP 传输、以公私钥识别对端的隧道协议,Mihomo 可以将其配置为出站。地址、公钥、端点和 MTU 等参数会影响连接与数据传输,私钥属于敏感配置。将 WireGuard 添加为一个出站,不等于系统所有连接都会进入该隧道,实际去向仍由流量接管与分流规则决定。
先看请求命中了哪条规则,再看规则指向哪个策略组,最后确认组内实际选中的节点。
规则分流是在规则模式下,按照配置顺序为请求选择处理目标的机制。目标可以是策略组、具体代理或 DIRECT 等内置处理方式,靠前的适用规则通常优先决定去向。排查某个网站走错出口时,应查看实际命中记录,再调整规则顺序,而不是只在节点列表里反复切换。
策略组把多个节点或其他策略组组织成一个可引用的目标,通过 proxy-groups 定义。常见类型包括手动选择、自动测试和故障转移,不同类型决定如何选择出口。规则命中一个策略组后,最终节点还取决于组内状态;因此规则名称与当前节点名称不一定相同。
GEOIP 根据目标 IP 在地理数据库中的归属进行匹配,不是根据网页语言或网站公司的注册地判断。数据库可能存在更新延迟,CDN 和共享基础设施也会让直觉判断与匹配结果不同。域名请求进入这类规则时还可能涉及解析,使用 no-resolve 会影响是否为匹配而触发解析。
DOMAIN-SUFFIX 用于匹配指定域名及其子域名,例如针对 example.com 的规则可以覆盖其下的子域名。它不是任意字符串包含匹配,与 DOMAIN-KEYWORD 的含义不同。规则生效还要求内核能够获得相应域名信息,直接访问 IP 或域名关联缺失时不能假定它一定命中。
MATCH 用于接住前面没有匹配到的请求,通常放在规则列表末尾。它指向哪个策略组或处理方式,就决定剩余连接的去向,并不天然等同于全部代理。若把它放得过早,后续规则可能没有匹配机会,因此添加新规则时需要检查插入位置。
解析、流量接管与出口选择是不同环节。修改其中一个字段,不会自动替代其他环节的配置。
TUN 模式通过虚拟网络接口接收 IP 数据包,再由内核处理连接,可覆盖部分不遵循系统代理设置的应用。实际接管范围仍受系统路由、进程排除项、权限与客户端实现影响。启用后如果出现断网,应检查路由和 DNS 是否形成回环,而不是把 TUN 理解成单纯扩大代理范围的开关。
查看 TUN 与路由配置 →Fake-IP 是用映射地址关联域名与连接请求的 DNS 工作模式,应用收到的地址不一定是网站真实服务器地址。内核借助映射保留域名信息,再结合规则建立后续连接。某些依赖真实地址的应用可能需要加入过滤配置;看到映射地址本身不代表解析失败,应结合实际连接结果判断。
查看 Fake-IP 与过滤配置 →redir-host 向应用返回实际解析得到的 IP 地址,而不是 Fake-IP 的映射地址,适合需要真实地址语义的场景。它仍然需要正确配置上游 DNS,并依赖内核能够将连接与域名关联。切换模式可能改变缓存和应用行为,比较效果时应保持其他条件一致,并处理旧连接与 DNS 缓存。
查看 DNS 模式选择 →nameserver 指定 Mihomo 常规域名查询所使用的上游解析器列表,可按支持的格式填写普通 DNS 或加密 DNS 地址。它不是配置中所有查询的唯一来源,策略解析、引导解析与代理服务器域名解析还可能使用其他字段。添加更多解析器并不必然更快,应先确认每个地址可达及查询路径符合预期。
在 TUN 配置语境中,DNS 劫持指将符合条件的 DNS 请求重定向到内核解析器,以统一处理解析。它描述的是请求接管行为,不是更换上游解析器的同义词。普通 DNS 端口匹配不能直接接管所有应用内的加密 DNS,仍需结合应用设置、路由与实际请求形式判断覆盖范围。
查看 DNS 请求接管 →DNS 泄漏通常指域名查询通过不符合预期的解析器或网络路径发出,可能暴露访问意图。浏览器安全 DNS、系统解析器和其他网络服务都可能参与查询,单看网页出口 IP 无法完整判断。测试时应先明确预期解析路径,再结合查询日志与出口检查;解析器位于某个地区,不足以单独证明泄漏。
查看 DNS 排查方法 →界面上的连接状态、系统代理状态和测试结果各有含义,需要分别验证。
图形客户端提供配置导入、模式切换、节点选择和日志查看等界面,并负责启动或管理内核。不同客户端可能采用不同的配置合并方式,同名按钮也未必生成完全相同的字段。查阅教程时,应先确认对应应用与平台;判断配置最终效果,则要看交给内核的实际运行配置。
按平台查看客户端 →系统代理是向操作系统登记代理地址与端口的设置,通常由遵循该设置的应用使用。部分命令行程序、游戏或自带网络栈的应用不会自动采用它,因此打开开关不等于全部流量已被接管。若浏览器可用而某个应用不可用,应检查应用代理设置、环境变量或 TUN,而不是直接更换订阅。
查看连接与验证步骤 →客户端中的延迟测试通常通过节点访问指定地址,并测量这一过程的耗时,不一定等同于 ICMP Ping。结果受到测试目标、连接复用、DNS 与当前网络状况影响,因此不同客户端的数值未必能直接比较。低延迟不代表高下载带宽,测试超时也应结合日志确认是目标不可达还是代理连接失败。
查看测速与连接问题 →VpnService 是 Android 提供给应用的 VPN 服务接口,客户端可借此建立虚拟网络接口并接收流量。系统授权说明应用获准创建连接,并不意味着已获得远程代理节点或节点已经可用。分应用设置、其他 VPN 应用与系统省电策略都可能影响实际使用,后台断连时需要分别检查。
查看移动端上手步骤 →