标签归档:smartdns

用smartdns来防治DNS污染

一直以来,我对dns查询受到污染的情况一直都比较苦恼。国内的DNS服务器基本上都是受污染的,而通过VPN直接去从国外的DNS服务器查询,则会获得为国外优化的结果,时常莫名奇妙就访问国外的网站,特别是一些有中国版和国际版区别的站点,诸如京东淘宝之流。

今天和在和朋友讨论dns查询的问题的使用,对方提到用tcp来进行dns查询,这就让我感到一些神奇。在拿8.8.8.8来进行过测试之后,我有了一个重大的发现。

使用tcp向8.8.8.8进行dns查询

8.8.8.8的tcp/53端口是开放的!而且有个很重要的特征!对于受屏蔽的域名,dns查询的会话会收到tcp rst导致中断,而未受屏蔽的域名,则可以正常查询。

那好说!只要找到一个DNS转发器,能支持用TCP来进行上行查询的软件就行了(当然,还有一个能用的梯子)。

最开始,我是打算用dnsmasq的按顺序查询,不过dnsmasq似乎不支持tcp查询,不得不放弃。然后又想起另外一个东西叫做smartdns的,能够使用tcp进行dns查询。那就好办。

思路是这样,现调整好vpn的路由。8.8.8.8不走vpn,8.8.4.4走vpn,然后smartdns配置server-tcp 8.8.8.8和server-tcp 8.8.4.4。这种情况下可以同时获得国内优化版和国际优化查询结果,这两者都是未经污染的,无需额外过滤。再由smartdns进行探测,得到访问速度最快的服务器(一般都是国内的)。搞定。