DNS劫持怎么检测?

wen 开源项目 72

本文目录导读:

DNS劫持怎么检测?

  1. 方法一:使用命令行直接对比(最准确、通用)
  2. 方法二:访问HTTPS网站观察浏览器行为
  3. 方法三:访问特定网站测试(检测域名劫持)
  4. 方法四:检查本地系统/路由器配置(源头检测)
  5. 方法五:使用在线检测工具(便捷)
  6. 遇到DNS劫持怎么办?

检测DNS劫持的核心思路是:对比你实际访问的IP地址,与理论上应该访问的IP地址是否一致

DNS劫持分为本地劫持(篡改你的电脑/路由器设置)和网络劫持(在运营商或公共WiFi层面篡改响应),以下是五种实用的检测方法,从简单到专业排序:

使用命令行直接对比(最准确、通用)

这种方法不依赖第三方工具,直接对比本地的DNS解析结果和DNS原始服务器的解析结果。

步骤(以Windows为例,Mac/Linux类似):

  1. 打开命令行(Win+R,输入cmd)。
  2. 检测本地DNS解析结果(查询当前系统使用的DNS服务器返回的结果):
    nslookup www.baidu.com

    记下显示的 Address(IP地址)。

  3. 检测DNS根服务器/权威服务器结果(绕过本地DNS,直接问根服务器):
    nslookup www.baidu.com 8.8.8.8

    这里 8.8.8 是Google的公共DNS,你也可以用 114.114.114(国内)或 1.1.1(国外)。

  4. 对比结果
    • 如果两次返回的IP地址一致,说明当前网络DNS解析正常。
    • 如果两次返回的IP地址不同,且第二次(使用8.8.8.8)访问的IP是正常的(比如百度是110.x.x.x),而第一次访问的IP是你没见过的陌生IP或直接指向了某个提示“可能存在风险”的页面,那基本可以确定被劫持

访问HTTPS网站观察浏览器行为

现代浏览器对HTTPS证书有严格验证。

  • 正常情况:地址栏显示绿色锁🔒,点击锁可以看到证书信息。
  • 被劫持(中间人攻击)
    • 浏览器会弹出红色警告页面:“您的连接不是私密连接”、“NET::ERR_CERT_COMMON_NAME_INVALID” 或 “证书错误”。
    • 注意:有些网络(如公司内网、校园网)会部署自己的代理证书,这不算恶意劫持,但属于网络监控,如果在家里的网络突然出现大量这类错误,说明有第三方在伪造证书。

访问特定网站测试(检测域名劫持)

某些网站/域名是DNS劫持的重灾区:

  1. 访问百度/阿里/腾讯等大厂站点:输入 www.baidu.com,如果跳转到某个广告页面、赌博网站或“天翼宽带”的登录页面,则被劫持。
  2. 访问非HTTPS的纯HTTP网站:劫持通常发生在HTTP协议下,你可以找一个只支持HTTP的旧网站(如某些高校旧门户),如果页面被插入了浮动广告或右下角弹窗,这通常是DNS劫持或HTTP注入。

检查本地系统/路由器配置(源头检测)

如果方法一和二都显示正常,但网络总感觉奇怪(如经常打开错误页面),可能是设备自身被篡改。

  1. 检查电脑DNS设置
    • Windows控制面板 -> 网络和共享中心 -> 更改适配器设置 -> 右键当前网卡 -> 属性 -> Internet协议版本4(TCP/IPv4) -> 属性
    • 检查:应该是“自动获得DNS服务器地址”,如果被手动填写为 168.1.1 以外的IP(如114.114.1148.8.8是正常的),或者填了一个奇怪的IP,则被劫持。
  2. 检查路由器DNS设置
    • 登录路由器管理后台(通常是192.168.1.1或192.168.0.1)。
    • 找到“网络参数”或“WAN口设置”或“DHCP服务器”。
    • 查看“DNS服务器”是否被改为奇怪的地址(如某些运营商的劫持广告地址)。

使用在线检测工具(便捷)

有一些专业网站可以帮你从全球多个节点检测某个域名的DNS解析情况:

  • WhatIsMyDNS.net:输入你的域名,它会显示从世界各地DNS服务器解析出的IP,如果大部分服务器返回的是同一个IP,而只有少数或你的IP返回不同,说明你这边有问题。
  • DNSSEC-Tools测试:如果你的域名启用了DNSSEC(域名系统安全扩展),劫持者篡改的数据包会被验证失败,浏览器或工具会直接报错。

遇到DNS劫持怎么办?

如果确认被劫持,可以按以下顺序解决:

  1. 修改DNS服务器
    • 将电脑或路由器的DNS手动改为公共安全DNS,如:
      • 阿里DNS5.5.5 / 6.6.6
      • 114DNS114.114.114 / 114.115.115
      • 腾讯DNS29.29.29
  2. 使用DoH(DNS over HTTPS)
    • 在浏览器(Chrome/Firefox/Edge)设置中开启“使用安全DNS”,填入 https://dns.alidns.com/dns-queryhttps://doh.114dns.cn/dns-query,这会把DNS查询内容加密,运营商无法劫持。
  3. 杀毒与修复
    • 运行杀毒软件(火绒、360等)进行全盘扫描,尤其注意劫持浏览器快捷方式的病毒。
    • 重置Winsock目录:在命令行输入 netsh winsock reset(仅限Windows)。
  4. 联系运营商

    如果以上方法都无法解决,且出现在所有设备上(手机、电脑、电视都受影响),很可能是运营商层面的DNS劫持(例如访问HTTP页面被强制弹窗广告),直接打电话给宽带客服投诉,要求他们“不要做DNS劫持”。

场景 检测方法 推荐指数
立竿见影 nslookup 对比命令 ⭐⭐⭐⭐⭐
日常浏览 观察HTTPS锁图标是否绿色 ⭐⭐⭐⭐
查源头 检查路由器/电脑DNS设置 ⭐⭐⭐⭐
深度排查 WhatIsMyDNS.net 在线工具 ⭐⭐⭐
防患未然 直接开启浏览器的DoH加密DNS ⭐⭐⭐⭐⭐

最推荐的做法:直接把路由器的DNS设为 5.5.5114.114.114,同时在电脑浏览器中开启“安全DNS”并使用上述地址,这样基本上可以从根源上避免绝大多数DNS劫持。

抱歉,评论功能暂时关闭!