首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dante SOCKS代理的DNS解决方案

Dante SOCKS代理的DNS解决方案
EN

Stack Overflow用户
提问于 2018-03-08 10:59:09
回答 2查看 2K关注 0票数 0

我正试图为前向代理构建一个SOCKS解决方案。我正在使用但丁袜子代理,因为我听说像谷歌这样的大公司使用它作为正向代理解决方案。

在SOCKS服务器上,我允许基于FQDN的类似google.com:443

现在的问题是,当客户端构建数据包时,它尝试解析google.com并获取X.X并向SOCKS服务器发送连接请求。现在,当服务器接收到数据包时,它尝试重构数据包发送到internet,服务器再次执行DNS解析,如果服务器获得响应为Y.Y,则它不允许客户端请求,因为客户端请求中的目标IP与服务器解析的IP地址不同。

在dante客户机中有一个解决方案,它告诉客户端放置一个虚拟目标地址0.0.0.1,然后将请求发送到服务器和服务器,然后正确地处理它。然而,这会给内部域造成问题,因为在使用dns解析方法之后,每个请求都会通过dante服务器:(

请让我知道

  1. 如果有任何解决方案可以帮助我维护DNS记录到期DC的宽度,例如google.com解析为X.x,并且我应该能够解析到100的DNS客户端上的同一个IP地址,如果记录发生变化,那么它应该立即在客户端上更改/过期。
  2. 对前向代理应用程序透明的任何其他代理/socks解决方案
EN

回答 2

Stack Overflow用户

发布于 2018-10-27 07:25:53

我提出了这个解决方案,以防有人对这个解决方案感兴趣。

我使用了带有管道后端的PowerDNS Auth。请求将到达PowerDNS服务器以进行解析,它将所有数据传递给带有ABI的管道后端脚本,脚本分析请求,查看它是否存在于缓存变量/内存映射下,如果它被缓存命中,它将使用缓存的DNS记录响应,否则它将使用DNS解析器来解析该查询,就像解析器解析一样。

低于4.1的PowerDNS版本支持管道后端+解析器。这样,请求将首先登录到管道后端脚本,如果脚本没有缓存任何条目,它将不会响应或将响应为空白,然后PowerDNS将使用配置中的上述解析器服务器解析它。但是,使用Version4.1和更高版本,解析器部分将从PowerDNS Auth服务器中删除,因此您需要通过管道后端脚本来处理这种行为。

票数 1
EN

Stack Overflow用户

发布于 2019-07-04 10:24:46

这取决于你的客户。例如,Firefox向SOCKS代理发送主机名,而不解析它。你可以通过Wireshark确认。

PS。假设您使用的是SOCKS5 5/4a代理。SOCKS4不支持主机名。参考文献:https://en.wikipedia.org/wiki/SOCKS#SOCKS4a

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49171466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档