【问题标题】:How does Proxifier resolve hostnames through proxy?Proxifier 如何通过代理解析主机名?
【发布时间】:2024-01-11 14:56:01
【问题描述】:

Proxifier 使用什么技术通过代理解析主机名?我在 Internet 上找到的所有其他解决方案都通过 socks 提供 DNS,就像 Badvpn/Tun2Socks 一样。但是 Proxifier 甚至可以通过 http 代理工作,您唯一需要的是您的代理服务器支持 DNS(例如 Squid)。他们的解释很简短,说“Proxifier has to assign placeholder (fake) IP addresses”。但这究竟是什么意思?

注意:如您所知,DNS 查询默认为 UDP,自然无法通过 http 代理转发。浏览器是另一个在设置为使用代理时通过代理进行名称解析的示例。

【问题讨论】:

    标签: tcp proxy dns udp


    【解决方案1】:

    分配虚假 IP 以响应 DNS 请求不同于返回截断的 DNS 答案。

    这是有关分配虚假 IP 以响应 DNS 请求以获取域名并将其传递给远程代理服务器的相关 RFC:https://www.rfc-editor.org/rfc/rfc3089

    【讨论】:

      【解决方案2】:

      我找到了答案。 Redsocks 确实实现了这一点,正如它所说:

      Redsocks 包含“dnstc”,它是假的,非常愚蠢的 DNS 服务器,它 通过 UDP 向每个查询返回“截断的答案”。符合 RFC 在这种情况下,解析器应该通过 TCP 重复相同的查询 - 所以 可以使用常用的 redsocks 工具重定向请求。

      【讨论】:

      • 所以没有 api 可以通过来自操作系统的代理来引导 dns 查询?
      最近更新 更多