近几年,国内各大电信运营商因为利益驱使纷纷开始在DNS服务器上搞域名劫持,通常的现象就是我们访问一个不存在的域名(比如我们打错了),运营商会自动跳转到一个智能域名纠错的网站,通常还包含有各种广告,很是烦人。
有时候由于一些网站使用CDN加速,甚至是正常的域名偶尔也会解析到广告IP,解决这种问题的最根本办法就是建立自己的DNS缓存服务器,我所在的公司就因为经常遇到DNS劫持和DNS服务器服务不稳定等问题而不得不自行搭建DNS缓存服务器来一劳永逸的解决问题。
不过很多个人用户无法搭建自己的DNS缓存服务器,针对个人用户有两种解决办法,一是使用自制(Linux)系统的路由器进行设置,比如Tomato固件的路由器就有类似功能,首先ping一个不存在的域名,记下解析到的IP,然后到管理界面,找到Advanced-DHCP/DNS,找到Dnsmasq,填入bogus-nxdomain=60.19.29.21
60.19.29.21这个IP是我的宽带运营商的广告IP,请按自己的做修改,可以填写多行,运营商定期会更换IP的,我就把60.19.29.21-60.19.29.25都填进去了,保存即可生效,再次ping一个不存在的域名,就会提示不存在了。
如果没有自制系统的路由器,那就需要更改本机的DNS了,改成opendns或者其他的,或者自己改hosts文件,把广告的域名都解析到本地127.0.0.1这个IP上。