在 proxychains 下运行的程序会把普通主机名解析到一个陌生地址段。该地址可能是包装器内部的记账值,而不是来自互联网的 DNS 应答。

在其 proxy-DNS 模式下,proxychains-ng 可以记住主机名,向应用返回一个合成地址,并在被拦截的连接经代理打开时再把该值还原成主机名。

占位地址不是出口 IP

示例配置记录了 proxy_dns 和 remote_dns_subnet。保留的映射范围可以配置。它不是一个你应当去 ping 或作为代理公网来源发布的地址。

这依赖于相关的名称查询和连接调用在预期进程内被拦截。自行通过其他机制执行 DNS、将占位地址留作后续无关用途,或绕过被挂钩套接字路径的程序,行为可能不同。

这一限制解释了为什么日志中的合成地址本身并不能证明整个应用正确使用了远程 DNS。同样,包装进程之外的独立 DNS 工具测试不到应用的映射连接。

请区分应用的占位地址、代理侧选出的真实目的地地址,以及网站观测到的公网出口。它们各司其职,不必相同。

排查时请把主机名保留在笔记中,并确认确切的被包装进程和配置。手动替换看似可疑的占位地址,可能丢掉包装器恢复该主机名所需的映射,把本可理解的间接关系变成连向错误目的地。

相关文章