由于某些众所周知的原因,现在IPv6的DNS查询也遭到了污染。以往单纯使用IPv6,即可简单科学上网的年代不复存在,这给广大高校的研究人员带来了不便。
但是魔高一尺,道高一丈,Cocoa昨晚刷牙的时候就想到了一个好方法,在此分享给大家:P
原理:
通常情况下,DNS查询使用UDP协议进行。但是也有一些DNS服务器接收TCP协议的请求(例如Google Public DNS)。
目前寡妇王仅仅对于53端口的UDP流量进行污染,而对于TCP流量则是放任不管(Cocoa猜测这和某些数字命名的产品使用53端口隐通道传输用户隐私不无关系)。
所以我们可以在本机搭建一个DNS代理,使用TCP协议向Google Public DNS进行查询,获取到以后再使用UDP传送到本机。
试验表明这样做是可以防止IPv6的DNS污染的。
使用方法:
如果您的机器安装有Python:
在命令行下运行“python tcpv6dns.py”(记得每次开机都要运行,否则就上不了网了,建议保存为批处理加到启动菜单)
将本机的DNS服务器地址设置为127.0.0.1
自由地上网
如果您的机器没有安装Python
每次开机运行
将本机的DNS服务器地址设置为127.0.0.1
自由地上网
致谢:
IPv4版TCP查询DNS代码来自这里:https://github.com/henices/Tcp-DNS-proxy
Cocoa将其改成了IPv6版,在此向原作者表示感谢 |