网页跳转广告关不掉?可能是DNS劫持在捣鬼!
你有没有遇到过这种情况:明明输入的是正确网址,按下回车后却跳转到一个满屏广告的陌生页面,关掉弹窗刷新几下,又恢复正常了。反复几次之后,你开始怀疑是不是电脑中毒了,杀毒软件扫了一遍又一遍,什么问题都没发现。这种“时好时坏”的跳转广告,很可能不是病毒,而是DNS劫持在背后搞鬼。
一、DNS是什么?为什么它会被劫持?
要理解DNS劫持,先得搞清楚DNS是干什么的。
你在浏览器里输入的是网址,比如www.example.com,但计算机之间通信靠的是IP地址,比如192.168.1.1。DNS(域名系统)就是这两者之间的“翻译官”——它负责把人类好记的域名翻译成机器能识别的IP地址。
这个过程正常情况下是这样的:你的电脑问DNS服务器“www.example.com的IP是多少”,DNS服务器查一下,告诉你一个正确的IP地址,然后你的浏览器就按照这个地址去访问网站。
DNS劫持,就是在这个“问路”的过程中有人动了手脚。攻击者通过各种手段,让你收到的不是正确的IP地址,而是一个错误的、指向广告页面或钓鱼网站的地址。
国家互联网应急中心(CNCERT)在2026年6月发布的安全提示中指出,单日恶意解析次数超过数亿次,单日影响境内独立IP最高超过70余万个。这个数字说明,DNS劫持不是个别现象,而是一个影响范围相当广泛的安全问题。
二、DNS劫持的三种常见方式
DNS劫持发生在不同的位置,排查和解决的方法也不同。根据攻击发生的层面,可以分为以下三类。
1. 路由器劫持:整个家庭网络被“一锅端”
这是目前最常见的一种DNS劫持方式,也是CNCERT重点提示的风险类型。
攻击者通过路由器固件漏洞或默认弱口令,远程登录到你的路由器管理后台,然后把路由器配置的DNS服务器地址改成他们控制的恶意DNS服务器。这样一来,所有连接这个WiFi的设备——手机、电脑、平板、智能电视——发出的域名解析请求,都会先经过攻击者的DNS服务器,被引导到他们指定的广告页面或钓鱼网站。
这种劫持的一个典型特征是:同一WiFi下的多台设备同时出现跳转问题。如果你发现家里所有设备都有这个毛病,那问题大概率出在路由器上。
2. 本地设备劫持:你的电脑或手机被“动了手脚”
这种劫持发生在用户设备层面。恶意软件或病毒入侵你的电脑后,可能修改系统里的hosts文件,或者直接篡改系统的DNS服务器设置。
hosts文件相当于电脑自带的“小本本”,里面记录了一些域名和IP的对应关系。如果被恶意软件写入一条记录,比如“www.example.com 123.45.67.89”,那你每次访问这个网站,电脑就会直接去那个恶意IP,根本不会去问DNS服务器。
另一种情况是恶意软件直接把系统的DNS服务器地址改成了一个攻击者控制的服务器。之后所有的域名解析请求都会经过这台“坏服务器”,想给你什么地址就给什么地址。
3. 运营商层面的劫持:最让人无奈的一种
严格来说,运营商层面的DNS劫持和前面两种性质不同。运营商可能出于商业目的,在DNS解析环节插入广告或进行重定向。
这种情况的特点是:换设备、换路由器都没用,只要用这家运营商的宽带,问题就存在。解决方式通常需要通过投诉渠道向运营商反映,或者考虑更换宽带服务商。
三、DNS劫持和HTTP劫持有什么区别?
很多人把网页跳广告都归咎于DNS劫持,但实际上,另一种叫HTTP劫持的攻击也会导致类似的现象。两者的表现相似,但原理和解决方法完全不同。
DNS劫持发生在“问路”阶段。你输入网址后,在获取IP地址的环节就被引导到了错误的服务器。结果是:你想去A网站,却被带到了B网站。整个页面都被替换了,你看到的完全是另一个网站的内容。
HTTP劫持发生在“数据传输”阶段。你成功连接到了目标网站,但在网页内容传回来的过程中,攻击者在数据流里插入了广告代码。结果是:你访问的还是A网站,但页面上多出了原本不存在的广告弹窗或悬浮窗。
从用户感受来区分:DNS劫持是“网址输对了,却去了错误的网站”;HTTP劫持是“网站是对的,但页面上多了不该有的东西”。
从防范角度来看:DNS劫持需要通过更换可信DNS、保护路由器来防范;HTTP劫持则需要网站启用HTTPS加密来防范。
四、排查流程:四步定位问题源头
当你遇到网页跳转广告的问题时,可以按照以下流程逐步排查,找到真正的元凶。
第一步:换网络测试
这是最简单有效的初步判断方法。如果你用WiFi访问网站时跳转广告,立即切换到手机4G/5G流量再试一次。
如果换网络后问题消失,说明问题出在你的WiFi网络或路由器上;如果换网络后问题依旧,那可能是你的设备本身有问题,或者网站服务器被入侵了。
第二步:检查路由器DNS配置
登录路由器管理后台,在“上网设置”“网络参数”“LAN口设置”或“DHCP服务器”等栏目中查看DNS服务器地址。
正常的DNS地址应该是运营商自动下发的,或者是你自己设置的可信公共DNS。如果发现DNS地址是一串陌生的IP,比如185.222.223.125这类,那基本可以确定路由器被篡改了。
第三步:对比不同DNS的解析结果
在电脑上打开命令提示符(Windows)或终端(Mac/Linux),输入以下命令查看域名解析结果:
nslookup www.example.com
记下返回的IP地址。然后把电脑的DNS临时改成公共DNS(如114.114.114.114或223.5.5.5),再次执行同样的命令。
如果两次得到的IP地址不一样,说明默认的DNS服务器返回了错误的结果,存在DNS劫持。
第四步:检查设备是否中毒
如果换网络、换DNS后问题依然存在,需要对设备进行全面安全扫描。检查hosts文件是否被篡改,使用杀毒软件进行全盘扫描。
五、解决方案:从应急处理到长期防护
确认问题源头后,可以针对性地采取措施。
1. 路由器被劫持的处理方法
如果确认是路由器DNS被篡改,需要执行以下操作:
首先,登录路由器管理后台,把DNS服务器地址改回“自动获取”或手动设置为可信的公共DNS。
其次,立即修改路由器管理密码。很多路由器被入侵的原因就是使用了默认密码或弱口令(如admin/admin、123456)。设置一个高强度密码,避免攻击者再次入侵。
然后,检查并关闭非必要的远程管理、UPnP、端口映射等功能,减少路由器的暴露面。
最后,关注路由器厂商发布的固件更新,及时升级到最新版本,修复已知安全漏洞。
2. 设备被劫持的处理方法
如果是电脑或手机被恶意软件篡改,需要执行以下操作:
Windows系统可以执行以下命令清除DNS缓存:
ipconfig /flushdns
Linux系统使用:
sudo systemd-resolve --flush-caches
然后检查hosts文件(Windows在C:\Windows\System32\drivers\etc\hosts,Linux/Mac在/etc/hosts),删除任何可疑的条目。
使用可靠的杀毒软件进行全面扫描,清除可能存在的恶意程序。
3. 长期防护:使用加密DNS
传统的DNS查询使用UDP 53端口,数据是明文传输的,很容易被中间人篡改。加密DNS(DoH/DoT)把DNS查询封装在HTTPS/TLS隧道里,运营商和攻击者无法看到和篡改解析结果。
4. 网站站长的防护措施
如果你是网站运营者,可以通过以下方式保护访客:
全站启用HTTPS加密,并配置HSTS响应头,防止SSL剥离降级攻击:
Strict-Transport-Security: max-age=31536000; includeSubDomains
在网页头部添加防转码标签,阻止运营商自动转码和插入广告:
<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
六、总结
网页跳转广告关不掉,不一定是电脑中毒,很可能是DNS劫持在捣鬼。从攻击位置来看,DNS劫持可能发生在路由器、本地设备或运营商层面;从表现来看,DNS劫持是“去了错误的网站”,而HTTP劫持是“页面上多了广告”。
排查的核心思路是:换网络测试判断问题范围,检查路由器DNS配置确认是否被篡改,对比不同DNS的解析结果确认是否存在劫持。
解决的关键在于:修改路由器弱口令、更换可信公共DNS、启用加密DNS。对于网站站长,全站HTTPS和防转码标签是必要的防护措施。
国家互联网应急中心的数据显示,DNS劫持的影响范围相当广泛,单日影响境内独立IP最高超过70万个。这不是一个可以忽视的小问题。花几分钟时间检查一下你的路由器DNS配置,可能就能避免很多不必要的麻烦。
CN
EN