Proxy Dante SOCKS代理的DNS解决方案
我正在尝试为转发代理构建SOCKS解决方案。我使用dante SOCKS代理,因为我听说像谷歌这样的大公司使用它作为转发代理解决方案 在SOCKS服务器上,我允许基于FQDN的,比如google.com:443 现在的问题是,当客户端构造数据包时,它会尝试解析google.com并获取X.X.X.X,然后向SOCKS服务器发送连接请求。现在,当服务器接收到数据包时,它尝试重建数据包以发送到internet,服务器再次执行DNS解析,如果服务器得到的响应为Y.Y.Y.Y,则它不允许客户端的请求,因为客户端请求中的目标IP与服务器解析的IP地址不同 dante client中有一个解决方案,它告诉客户端放置一个虚拟目标地址0.0.0.1,并将请求发送到服务器,然后服务器正确地处理它。但是,这会给内部域带来问题,因为在使用该dns解析方法后,每个请求都会通过dante server:( 请让我知道Proxy Dante SOCKS代理的DNS解决方案,proxy,dns,socks,dante,Proxy,Dns,Socks,Dante,我正在尝试为转发代理构建SOCKS解决方案。我使用dante SOCKS代理,因为我听说像谷歌这样的大公司使用它作为转发代理解决方案 在SOCKS服务器上,我允许基于FQDN的,比如google.com:443 现在的问题是,当客户端构造数据包时,它会尝试解析google.com并获取X.X.X.X,然后向SOCKS服务器发送连接请求。现在,当服务器接收到数据包时,它尝试重建数据包以发送到internet,服务器再次执行DNS解析,如果服务器得到的响应为Y.Y.Y.Y,则它不允许客户端的请求,因
我继续使用这个解决方案,以防有人好奇地看到这个解决方案 我使用带有管道后端的PowerDNS身份验证服务器。请求将到达PowerDNS服务器进行解析,它将使用ABI将所有数据传递到管道后端脚本,脚本分析请求,查看它是否存在于缓存变量/内存映射下,如果缓存命中,它将使用缓存的DNS记录进行响应,否则它将使用DNS解析lver可以像解析程序正常解析一样解析该查询
低于4.1的PowerDNS版本支持管道后端+解析器。这样,请求将首先到达管道后端脚本,如果脚本没有缓存任何条目,它将不响应或响应为空,然后PowerDNS将使用配置中提到的解析器服务器进行解析。但是,对于4.1及以上版本,解析程序部分已从PowerDNS身份验证服务器中删除,因此您需要通过管道后端脚本处理该行为。这取决于您的客户端。例如,Firefox将主机名发送到SOCKS代理,而不进行解析。您可以通过Wireshark进行确认 PS.假设您使用的是SOCKS5/4a代理。SOCKS4不支持主机名。参考: