Mihomo 与 SingBox 代理故障时 Real-IP 解析漏洞:小众域名与直连网站面临断网风险
当代理节点不稳定或完全失效时,依赖 Real-IP 解析策略的 Mihomo 和 SingBox 内核暴露出一个关键漏洞:不在 `geosite:cn` 列表中的国内小众域名,以及部分本应直连的国外网站,将因 DNS 解析失败而无法访问。问题根源在于,即便用户将分流模式设置为“规则模式走 Direct”或“Direct 模式”,DNS 查询请求依然会遵循预设的 DNS 规则,而非直接使用直连通道。这导致在代理挂掉、国外 DNS 服务器无法响应时,整个解析链条中断,造成局部网络瘫痪。
以 Mihomo 内核为例,其设计逻辑存在两处关键风险点。在常见的防 DNS 泄露配置下(国内域名用国内 DNS,其余使用 EDNS+国外 DNS),一旦国外 DNS 失效,所有非国内域名的解析请求都会卡死,即使设置了 `direct-nameserver` 也无济于事。另一种稍好的配置是仅让 `geosite:gfw` 列表的域名走国外 DNS,但这会带来 DNS 泄露风险,且当代理故障时,被墙域名列表将完全无法解析。相比之下,SingBox 内核因允许用户手动精细配置 Direct 模式下的 DNS 逻辑,情况略好,但配置过程复杂,对用户技术要求极高。
值得注意的是,采用 Fake-IP 模式则能完全规避此问题。该模式直接向客户端返回虚假 IP 地址,使流量快速进入分流判定阶段,无需等待真实 DNS 解析结果,从而不受代理节点或特定 DNS 服务器状态的影响。这引发了一个核心的技术探讨:是否存在一种机制,能在 Real-IP 模式下,当 DNS 解析超时时,自动切换为发送 Fake-IP 以进入分流流程?或者,能否设计一种新的“回退”逻辑来应对这种代理失效场景?目前,这仍是 Mihomo 和 SingBox 用户在高不稳定网络环境中面临的一个未解难题。