解析一个域名,返回的IP却打不开网站,甚至跳到完全不相关的页面,这种查A返回B的情况,多数是DNS污染。所谓无污染DNS,指解析结果没被篡改、能返回真实记录的域名解析服务。
DNS污染是怎么回事
访问网站前,设备先向DNS服务器查询域名对应的IP。如果查询链路上有人抢答,赶在真实应答到达前塞一个假IP过来,设备就会连去错误的地方。表现五花八门:个别域名打不开、解析出的IP明显不对、页面跳到广告或提示页。它和DNS劫持的区别在于,劫持是DNS服务器本身被控制,污染更多发生在传输途中。
怎么判断有没有被污染
- 用nslookup查同一个域名,对比223.5.5.5和119.29.29.29等不同服务器的返回,结果差异明显就要留心
- 看解析出的IP归属是否合理,国内服务解析到毫不相干的境外IP就不对劲
- 命令行ping域名,再用在线IP查询工具核对归属地
- 手机端可以用DNS测速类App,把几组服务器跑一遍对比
设置上更可靠的做法
换公共DNS是第一步,国内常用的有阿里223.5.5.5、腾讯119.29.29.29、114.114.114.114。Windows在网络适配器属性里改,路由器在WAN口或DHCP设置里改,全家设备一起生效。选服务器别只看名气,ping一下测个延迟再定。改完用nslookup验证,输出第二行会显示当前应答的服务器地址。
更进一步用加密DNS,也就是DoH或DoT,把查询过程加密,中间抢答就难了。安卓9和iOS 14以后的系统里都有加密DNS入口,Chrome和Edge的设置里也能单独开启安全DNS。
企业内网解析不正常,还可能是路由器或本地缓存的问题,先ipconfig /flushdns清本机缓存再测,能省不少弯路。
实际判断:偶尔打不开个别站点,先换公共DNS加清缓存;业务上长期需要无污染DNS,直接上DoH,别依赖明文查询。