我正在尝试使用 DNS 服务器基准测试实用程序 (名称台) 来优化我的连接。我以前也使用过同样的实用程序,以前它没有给我带来任何问题;我意识到不久前我运行了一个干净的操作系统安装,所以我的本地设置被清除了。
我将路由器的 DNS 设置从以前的(过时的)结果更改为从 ISP 获取,刷新了 DNS 缓存,然后继续运行 namebench,但出现了一条错误消息:
由于我知道这不是路由器的问题,因此我联系了我的 ISP(Charter Spectrum)并询问他们的技术支持,但他们建议不要拦截或重定向 DNS 请求。
我对网络问题不是很了解,所以我想我应该来这里问问最可能的原因是什么以及如何解决它?我确实确认至少有另一位最终用户在问题跟踪页面上提交了此行为,但开发团队尚未接受/解决该问题。谢谢!
编辑:为了响应以下答案中提供的新信息,我正在更新我的帖子以包含更多信息,希望它能够澄清并帮助缩小问题范围。
- 虽然我确实安装了 CyberGhost VPN,但我不会在启动时运行它,只是偶尔打开它。据我所知,它在基准测试期间肯定没有运行(除非有一些后台进程或服务以模糊名称运行)。
- 我没有安装任何家长控制软件,并且 WinDefender 是唯一运行的反恶意软件(不是由我的选择);我安装了 Malwarebytes + Spybot,但前者仅用于手动扫描,后者仅用于浏览器接种;同样,它们都不会在启动时运行。
- 我做使用 AdBLockPlus 浏览器扩展程序(在 Vivaldi 和 Chrome 上运行);我还修改了我的主机文件以包含这些。
- 我已禁用路由器访客 Wifi;NAT 设置为打开。
- 我的硬件:
- Arris SURFboard(SB6190)(非 ISP)
- Netgear X4S R7800(非 ISP)
- Windows 10 专业版 x64
- 华硕 ROG Hero X Maximus (Wifi AC)
答案1
如何判断 DNS 是否被重定向?
一种方法是发送查询,其响应取决于服务器。诀窍是检查 5-6 个不同的服务器,并期望收到 5-6 个不同的响应。现在这并不能保证 DNS 拦截不会发生……但如果你每次都得到相同的响应(或根本没有响应),那肯定表明 DNS 拦截是确实正在发生。
许多(但不是全部)DNS服务器使用自己的主机名或其他部分唯一的标签响应以下查询:
- 主机名.bind/CH/TXT
- id.服务器/CH/TXT
例如,所有[a-m].root-servers.net
(DNS 根区域服务器)都将响应此检查。(请注意,它们是任播,因此根据您所在的位置,您将获得与我的示例所示的不同的响应;这是正常的。)
在 Windows 上进行此类查询的方法如下:
目录:\>nslookup -class=CHAOS -q=TXT 主机名.bind j.root-servers.net 服务器:未知 地址:192.58.128.30 非权威答案: 主机名.bind 文本 = “rootns-wie2”
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() 类型的函数时要使用哪些服务器,但它通常不执行如果程序不使用这些功能 - 即如果它像 namebench 一样通过 TCP/UDP 构建并发送自己的 DNS 查询 - 那么操作系统或路由器配置就会被绕过。
错误信息是关于不同的配置类型:防火墙/NAT 规则实际上会拦截所有传出的 DNS 数据包并将其重定向到新目的地。这些规则可以手动创建,或作为(例如)家长控制功能的一部分添加,或由路由器上的恶意软件安装。
(路由器的行为并不是一成不变的;ISP 有时会推出固件更新,可能会增加功能或改变某些工作方式。)