dns服务器地址是不是被劫持了
昨天下午三点,地址我正赶一份方案,不被网页突然卡死在加载状态。劫持刷新三次,地址浏览器直接甩出“找不到服务器IP地址”。不被我下意识ping了一下百度,劫持返回的地址IP是103.235.46.39——这个数字我太熟了,它根本不是不被百度的。DNS劫持,劫持妥妥的地址。
很多人第一反应是不被路由器被黑,或者运营商搞鬼。劫持但这次不一样。地址我查了本地连接,不被DNS手动填的劫持是114.114.114.114,没被改成奇怪的地址。问题出在更底层——路由器拨号后自动获取的DNS,被上游悄悄替换了。电信客服死不承认,说“我们不会动用户数据”。可我把WAN口抓包记录甩过去,对面沉默了。
劫持这件事,分两种。一种是真劫持,数据包被中途篡改,你访问银行网站,跳转到钓鱼页面。另一种是“软劫持”,更阴——DNS解析结果没错,但返回速度慢半拍,或者偶尔插入一条广告。我遇到过最离谱的案例,是某视频网站用户反馈“看剧总弹出博彩广告”,查了一圈,发现是当地运营商在HTTP页面上强插脚本,跟DNS没关系。但DNS服务器本身被污染,也能造成类似效果。
怎么判断自己是不是被劫持?别信那些在线检测工具,它们自己可能都不干净。最土的办法:打开命令行,输入nslookup www.baidu.com,看返回的IP是不是39.156.66.10(百度北京节点)。如果不是,再换nslookup www.baidu.com 8.8.8.8,用谷歌DNS解析一次。两次结果不一样,基本实锤。
还有更隐蔽的——DNS缓存投毒。你电脑里存着之前解析过的记录,黑客往缓存里塞假数据。你以为访问的是github,实际连到的是个恶意服务器。这种攻击连系统自带的安全软件都查不出来,因为流量本身没问题,问题出在“记忆”上。清缓存的方法很简单:ipconfig /flushdns,但治标不治本。
我后来怎么解决的?把路由器DNS改成1.1.1.1(Cloudflare)和8.8.8.8组合,然后关闭路由器的“自动获取DNS”选项。光改DNS不够,得把WAN口的MTU从1492改成1400,防止某些运营商搞分片攻击。折腾完,网速反而快了20%。
最讽刺的是,很多人压根不知道自己被劫持。他们以为网页弹广告是“正常现象”,以为访问慢是“网站服务器差”。有次我在咖啡馆,老板抱怨“店里WiFi总跳色情页面”,我过去一看,路由器后台被刷了第三方固件,DNS指向一个俄罗斯IP。老板听完愣了半天,说“难怪最近老有人问WiFi密码”。
所以,如果你某天发现网页加载异常,或者某些网站死活打不开,别急着怪电脑。先查DNS。记住,你的网络服务商不一定可信,你的路由器也不一定安全。最后说一句:遇到劫持,别慌,换个DNS,清下缓存,再不行就重置路由器。但要是连1.1.1.1都被污染了——那说明你已经被盯上了,赶紧断网查毒吧。