为什么我的电脑突然使用NBNS而不是DNS?

为什么我的电脑突然使用NBNS而不是DNS?

我有一台 Windows 7 笔记本电脑,我经常在旅行时使用它来访问无线互联网。通常情况下,一切都可以正常连接和运行,但从 4 天前开始,我注意到连接到接入点后无法打开网站。

今晚我终于有时间做了一些调查,发现问题出在 DNS 名称解析上。目前 IPv4 配置配置为使用 DHCP 分配的 IP 和 DNS。通过 ipconfig /all,我可以说这些动态值(IP、网关、DNS 等)被正确分配——但我无法上网。但是,如果我手动指定 DNS 服务器(例如 Google 的 8.8.8.8),名称解析将按预期进行,一切正常。

我以前从来没有手动指定过值,现在也不想开始。

如果您和我一样,您可能怀疑我的 DNS 服务器是罪魁祸首。不幸的是,我还有其他几台设备可以与我的 DNS 服务器正常配合使用:Windows XP、Apple iPad、iPhone 和 Windows Surface 设备。这些设备都可以正常使用 DHCP(无需手动配置)。

有问题的笔记本电脑在 4 天前一直运行正常。

为了解决问题,我删除了 Google 的手动 DNS 设置并运行了 Wireshark。这揭示了一个有趣的发现:当我尝试加载网站时,我没有看到 DNS 请求,而是只看到了 NBNS 请求——这会失败,因为我没有 NBNS 服务器。

我还在有问题的笔记本电脑上运行了 netsh->dnsclient=>show state:

查询失败行为:如果名称在 DNS 中不存在,或者在专用网络上无法访问 DNS 服务器,则始终返回到 LLMNR 和 NetBIOS

查询解析行为:仅解析名称的 IPv6 地址

这些结果让我认为我们正在进入回退状态,但正如我所说,我根本没有看到系统尝试使用 DNS。

我也感到困惑为什么系统只能解析 IPv6 地址——我只使用 IPv4(适配器配置上未选择 IPv6)

无论如何,我很困惑。如果我手动指定 DNS 服务器,它就可以工作,但 DHCP 配置失败(尽管 ipconfig /all 显示正确的值是通过 DHCP 分配的)

欢迎任何建议/想法。

答案1

您的笔记本电脑也运行 Oracle VirtualBox 吗?

如果是,您可以尝试禁用 VirtualBox 网络接口。似乎 DNS 查询已发送到 VirtualBox 网络接口。

我也使用 Wireshark 在 Windows 上捕获 dns 查询数据包,但无法捕获任何 dns 查询(运行后ipconfig /flushdns:)

解决方法:

  1. 通过 tcp/ip 禁用/启用 NetBios 名称服务器或…
  2. 禁用 VirtualBox 网络接口

更新(2017-12-6):

三周前,我在我的 Windows 笔记本电脑上执行了此命令:

./VBoxManage.exe  modifyvm "ubuntu" --natdnshostresolver1 on

似乎可以解决这个问题

答案2

  1. Windows 防火墙 -> 高级视图 -> 查看是否有阻止 DNS 的传出规则

  2. 使用 Windows 网络监视器(它类似于 Wireshark,但在 Windows 中更好,因为您还可以看到进程/线程 ID/编号 - 尝试一下)

  3. 尝试一切:接口适配器选项 -> LMHOSTs 文件 -> Hosts 文件

  4. 使用 SysInternals Suite(和/或 Nirsofts Tools)查看是否存在(隐藏的)程序阻止或伪造对 NBNS 的 DNS 请求。在新的 SysInts Suite 中尝试新的 ProcessExplorer 选项“检查哈希”、“Virustotal”

相关内容