通过代理服务器的DNS?

2024-06-01 17:03:51 发布

您现在位置:Python中文网/ 问答频道 /正文

在过去的几天里,我一直在寻找一个好的解决方案来防止socks4/5代理上的DNS泄漏。

我已经研究了SocksiPy(-branch)模块,并试图包装一些东西(urllib、urllib2、dnstools),但它们似乎仍然泄漏DNS请求。皮考尔也是。

我知道proxychains/proxyreslv可以通过socks4/5代理发送DNS请求,而且它通过一些LD_预加载库对monkey-patch-socket的函数做了所有的事情,就像sockspy做的那样,但是我似乎不明白它为什么不通过socks4或socks5代理发送DNS。

我想对于linux,我可以使用带有libproxychains的CTypes,所以我的解决方案是,但是我正在寻找一个多平台的东西,所以我认为猴子修补socket模块是可行的。

有没有人想出一个好办法来解决这个问题?为了便于移植,我想用代码来完成这一切,我不想求助于运行另一个代理服务器!

谢谢!


Tags: 模块branch代理dnssocketurllib2urllib解决方案