IT技术博客大学习 共学习 共进步

关于 SOCKS 代理的远端 DNS 解析

Solrex Shuffling 2010-01-23 16:08:05 浏览 7,745 次

    经常使用 SOCKS 代理服务器的同志们会发现一种现象,即使 SOCKS 代理服务器设置正确,某些网站仍然无法访问,比如某著名微博网站。其一般原因都是 DNS 污染 (DNS cache poisoning )。

    值得庆幸的是 SOCKS 5 协议增加了对 UDP 数据包的支持,DNS 查询是通过 UDP 传输的,所以我们可以使 DNS 查询数据包也走 SOCKS 5 代理来进行远端 DNS 解析(Remote DNS Lookup)。DNS 服务是 Internet 的基础服务,要求 DNS 解析应当尽量地快,所以浏览器默认不会使用远端 DNS 解析。在目前的常用浏览器中,貌似只有 Firefox 支持可选的远端 DNS 解析,方法见这里

    我没有找到 IE 和 Chrome 支持远端 DNS 解析的方法,从讨论来看似乎是不支持的,Opera 则根本没有 SOCKS 代理支持。

    即便是 Firefox,对远端 DNS 解析的支持也是有一些问题的。我的经验是:Firefox 只有在设置里面写死 SOCKS v5 的代理服务器设置时,才会支持远端 DNS 解析;当使用自动代理设置脚本(.pac )时,即使返回 SOCKS 代理,Firefox 也不会进行远端 DNS 解析。

    结论是,如果想要远端 DNS 解析,只能手动切换 SOCKS 代理,不能使用自动代理配置脚本。

建议继续学习

  1. 自建DNS以防止GFW干扰 (阅读 12,943)
  2. 强制刷新本地 DNS 缓存记录 (阅读 10,640)
  3. 让安卓手机通过代理翻墙的方法 (阅读 8,802)
  4. 代理的加密部分 (阅读 8,245)
  5. 2014年1月21日中国互联网DNS瘫痪事件原因分析 (阅读 8,221)
  6. DNS 隧道 (阅读 7,022)
  7. 什么是DNS劫持和DNS污染? (阅读 6,103)
  8. DNS解析过程及DNS TTL值 (阅读 5,902)
  9. CentOS下通过Webmin管理BIND实现DNS轮询 (阅读 5,761)
  10. dig挖出DNS的秘密 (阅读 5,620)