Mihomo 与 SingBox 代理故障时 Real-IP 解析漏洞:小众域名与直连网站面临断网风险
当代理节点不稳定或完全失效时,Mihomo 和 SingBox 内核中依赖 Real-IP 的 DNS 解析机制存在一个关键漏洞。这导致一个隐蔽但影响直接的网络故障:即使客户端设置为直连(Direct)或规则模式走直连,部分不在 `geosite:cn` 列表中的国内小众域名,以及一些理论上可以直连访问的国外网站,其域名将完全无法解析,造成事实上的断网。问题的根源在于,DNS 解析流程与代理分流逻辑在 Real-IP 模式下深度耦合,一旦代理依赖的国外 DNS 服务器不可达,整个解析链条就会中断。
以 Mihomo 内核为例,其工作逻辑加剧了风险。在常见的防 DNS 泄露配置下,非国内域名(非 `geosite:cn`)会通过 EDNS 发送给国外 DNS 服务器(NameServer)查询。当代理节点挂掉,国外 DNS 无法访问,这些域名的解析请求便卡死在这一步,即使配置了 `direct-nameserver` 也无济于事,因为请求根本到不了分流判断环节。另一种配置是仅 `geosite:gfw` 列表域名走国外 DNS,其余走国内 DNS。这种情况稍好,但代价是 `geosite:gfw` 列表内的域名在代理失效时将无法解析,并伴随 DNS 泄露风险。
相比之下,SingBox 内核因允许用户手动精细配置 Direct 模式下的 DNS,对问题的缓解能力更强,但配置复杂度极高。真正的解决方案指向了 Fake-IP 模式。该模式直接向客户端返回一个虚假 IP,使流量立即进入分流规则判断,完全绕开了对特定 DNS 服务器可达性的依赖。这引发了核心的技术探讨:能否在 Real-IP 模式解析超时时,自动切换为发送 Fake-IP 以触发分流?或者设计一种新的 Fallback 机制,在 DNS 层面实现故障切换?目前,这仍是依赖这些代理工具的用户面临的一个未解决的技术盲区。