我正在尝试使用 DNS 服务器基准测试实用程序 ( namebench ) 来优化我的连接。我以前使用过这个相同的实用程序,以前没有给我任何问题;我意识到我刚才运行了一个干净的操作系统安装,所以我的本地设置被擦除了。
我从以前的(过时的)结果更改了我的路由器 DNS 设置以从 ISP 获得,刷新 DNS 缓存,然后继续运行 namebench 但遇到了一条错误消息:
因为我知道这不是路由器,所以我联系了我的 ISP (Charter Spectrum) 并询问了他们的技术支持,但他们建议他们不要拦截或重定向 DNS 请求。
我对网络问题不是很了解,所以我想我应该来这里问问最可能的原因是什么以及如何解决?我确实确认至少有其他最终用户在问题跟踪页面上提交了此行为,但开发团队尚未接受/解决该问题。谢谢!
编辑:为了回应以下答案中提供的新信息,我正在更新我的帖子以包含更多信息,希望它能澄清并帮助缩小范围。
- 虽然我确实安装了 CyberGhost VPN,但我没有在启动时运行它,只是偶尔打开它一次。据我所知,它绝对没有在基准测试期间运行(除非有一些后台进程或服务以混淆的名称运行)。
- 我没有安装任何家长控制软件,WinDefender 是唯一运行的活动反恶意软件(不是我选择的);我安装了 Malwarebytes + Spybot,但仅用于前者的手动扫描和后者的浏览器接种;同样,两者都不会在启动时运行。
- 我确实使用 AdBLockPlus 浏览器扩展(在 Vivaldi 和 Chrome 上运行);我还修改了主机文件以包含这些.
- 我禁用了路由器 Guest Wifi;NAT 设置为打开。
- 我的硬件:
- Arris 冲浪板 (SB6190)(非 ISP)
- 美国网件 X4S R7800(非 ISP)
- 赢 10 专业版 x64
- 华硕 ROG Hero X Maximus (Wifi AC)
一种方法是发送一个查询,其响应取决于服务器。诀窍是检查 5-6 个不同的服务器,并期望收到 5-6 个不同的响应。现在这并不能保证 DNS 拦截不会发生……但如果您每次都收到相同的响应(或根本没有响应),那绝对表明 DNS 拦截实际上正在发生。
许多(但不是全部)DNS 服务器使用自己的主机名或其他一些部分唯一的标签来响应以下查询:
例如,所有
[a-m].root-servers.net
(DNS 根区域服务器)都将响应此检查。(请注意,它们是任播的,因此根据您所在的位置,您会得到与我的示例显示不同的响应;这是正常的。)这就是您在 Windows 上进行此类查询的方式:
Level3 公共 DNS 服务器 (4.2.2.[1-5]) 也响应这两个查询(尽管 CloudFlare 和 Google 公共 DNS 都不响应):
nslookup -class=CHAOS -q=TXT hostname.bind 4.2.2.2
第二种方法:一些 DNS 服务器还提供不同类型的检查——它们有一个查询,该查询总是以您自己的IP 地址作为响应。如果您直接针对该服务器运行此查询,并且它显示的 IP 地址与您路由器的“WAN”地址不同,那总是一个不好的迹象。
一些已知的 IP 地址检查器:
nslookup whoami.akamai.net. ns1-1.akamaitech.net.
nslookup -q=TXT o-o.myaddr.l.google.com. ns2.google.com.
nslookup myip.opendns.com. resolver1.opendns.com.
它可能是您在计算机上安装的某些 VPN 软件。(此重定向可能是“DNS 防泄漏”功能的一部分。)
它可能是您在计算机或路由器上安装的某些恶意软件或家长控制软件。
它可能是您拥有的一些广告拦截系统。(例如,Pi-hole 通常与 DNS 重定向一起使用,因为它通过阻止对广告服务器的 DNS 请求来工作。)
它可能是路由器的“强制门户”功能(“访客 Wi-Fi”或“公共 Wi-Fi”配置的常见部分,用于提供基于网络浏览器的 Wi-Fi 登录表单)。
当然,也可能是 ISP 的支持人员对网络人员的实际操作一无所知。例如(我说的是一般情况,而不是 Charter/Spectrum),ISP 可能会尝试使用 DNS 拦截来强制执行政府规定的网站拦截。
您实际上并没有表明它不是路由器。
路由器中的“DNS 服务器”设置通常是建议性的。它是通过 DHCP 发布的,因此当程序使用通用的 gethostbyname() 类型函数时,您的操作系统将知道要使用哪些服务器,但通常不会强制执行。如果一个程序不使用这些功能——也就是说,如果它通过 TCP/UDP 构建和发送自己的 DNS 查询,就像 namebench 所做的那样——那么操作系统或路由器配置就会被简单地绕过。
错误消息是在谈论一种不同类型的配置:防火墙/NAT 规则实际上拦截所有传出的 DNS 数据包并将它们重定向到新的目的地。这些可以手动创建,或作为(例如)家长控制功能的一部分添加,或由路由器上的恶意软件安装。
(路由器的行为并不是一成不变的;ISP 有时会推出固件更新,这可能会增加功能或改变某些东西的工作方式。)