防止IPv6 DNS污染和缓存投毒:使用TCP协议查询DNS

分类:
分享到:

2013.7.12:更新纯ipv6版,启动后可将ipv6的DNS设置为::1(点我下载

由于某些众所周知的原因,现在IPv6的DNS查询也遭到了污染。以往单纯使用IPv6,即可简单科学上网的年代不复存在,这给广大高校的研究人员带来了不便。

但是魔高一尺,道高一丈,HCocoa昨晚刷牙的时候就想到了一个好方法,在此分享给大家:P

  1. 原理:
    • 通常情况下,DNS查询使用UDP协议进行。但是也有一些DNS服务器接收TCP协议的请求(例如Google Public DNS)。
    • 目前寡妇王仅仅对于53端口的UDP流量进行污染,而对于TCP流量则是放任不管(HCocoa猜测这和某些数字命名的产品使用53端口隐通道传输用户隐私不无关系)。
    • 所以我们可以在本机搭建一个DNS代理,使用TCP协议向Google Public DNS进行查询,获取到以后再使用UDP传送到本机。
    • 试验表明这样做是可以防止IPv6的DNS污染的。
  2. 使用方法:
    • 如果您的机器安装有Python:
      1. 下载Python源代码(点我下载
      2. 在命令行下运行“python tcpv6dns.py”(记得每次开机都要运行,否则就上不了网了,建议保存为批处理加到启动菜单)
      3. 将本机的DNS服务器地址设置为127.0.0.1
      4. 自由地上网
    • 如果您的机器没有安装Python
      1. 下载HCocoa打包好的exe(点我下载
      2. 每次开机运行
      3. 将本机的DNS服务器地址设置为127.0.0.1
      4. 自由地上网

  3. 致谢:
    • IPv4版TCP查询DNS代码来自这里:https://github.com/henices/Tcp-DNS-proxy
    • HCocoa将其改成了IPv6版,在此向原作者表示感谢!



本文地址:http://www.hcocoa.com/2013/03/02/query-DNS-using-TCP-to-bypass-ipv6-dns-pollution
原创文章如转载,请注明链接: 转自HCocoa的博客
你可能还会对下列文章感兴趣: