什么是DNS劫持
DNS劫持,简单来说就是有人偷偷改了你上网的“导航”。比如你想访问 www.example.com,正常情况下会通过运营商的DNS解析成对应IP地址。但一旦被劫持,这个过程就被篡改,你可能被带到一个假网站,甚至输入账号密码都被别人拿走。
这种问题在公共WiFi下特别常见。比如你在咖啡馆连上免费网络,打开银行页面却跳到一个长得一模一样的登录页——这时候很可能已经中招了。
常见的DNS劫持手段
一种是路由器被入侵。很多家庭用的路由器默认密码没改,黑客远程登录后直接修改DNS服务器地址。另一种是本地电脑中毒,恶意软件修改了系统hosts文件或者网卡设置。
还有一种更隐蔽的情况,是ISP(互联网服务提供商)主动做劫持,插入广告或重定向流量。虽然不一定是恶意攻击,但也影响使用体验和隐私安全。
怎么判断是否遭遇DNS劫持
最明显的迹象是:某些网站打不开,或者自动跳转到陌生页面。你可以试试用手机4G网络访问同一个域名,如果正常,那大概率是你当前网络环境出了问题。
也可以通过命令行工具排查。在Windows按Win+R输入cmd,在Mac或Linux打开终端,运行:
nslookup example.com 8.8.8.8
再运行:
nslookup example.com
对比两个结果。如果后者返回的IP不同,说明本地DNS被干扰了。
实用的防护措施
第一招,换靠谱的公共DNS。别依赖运营商默认分配的,改成Google DNS或者Cloudflare提供的服务。比如把路由器或电脑的DNS设为:
- Google Public DNS:8.8.8.8 和 8.8.4.4
- Cloudflare DNS:1.1.1.1 和 1.0.0.1
- 阿里云公共DNS:223.5.5.5 和 223.6.6.6
第二招,启用DNS over HTTPS(DoH)。它能把DNS查询加密传输,防止中间人窃听和篡改。Firefox和Chrome都支持开启DoH功能,只需要在浏览器设置里搜索“DNS”就能找到选项。
第三招,定期检查路由器后台。登录管理界面看看DNS设置有没有被改过。建议关闭远程管理功能,并修改默认管理员密码。
加固本地设备
电脑上别乱点来路不明的链接或附件。安装正规杀毒软件,定期扫描。同时检查系统的hosts文件有没有异常条目。
Windows路径是:C:\Windows\System32\drivers\etc\hosts
macOS/Linux路径是:/etc/hosts
如果发现类似 192.168.1.1 www.bank.com 这样的绑定,而你自己没加过,就得小心了。
企业级解决方案参考
如果你管着公司网站,除了上述手段,还可以配置DNSSEC。这项技术能验证DNS响应的真实性,防止伪造记录。
以BIND为例,开启DNSSEC需要在配置文件中添加:
dnssec-validation yes;
managed-keys-directory "/var/named/dynamic/";
然后重启服务生效。虽然部署稍复杂,但对于金融、电商类网站非常值得投入。