Windows 7 DNS 不工作(nslookup 正在工作;ping -4 name.com 不工作)

joh*_*mpf 20 networking dns windows-7

nslookup 正在工作;ping -4 name.com 不工作

这个问题最明显的症状nslookup正在工作,而ping -4 name.com没有工作。

那是因为nslookup包含自己的 DNS 客户端,所以不使用 Windows 客户端。

ping 当给定名称时,使用 Windows DNS 客户端来转换名称 -> 数字。

因此,如果nslookup可以翻译,那么很多事情都可以工作:网络硬件、NIC 适配器驱动程序、与 DNS 服务器的互联网连接,以及成功访问服务器以进行翻译。好多啊!

但是,ping -4 name.com失败了,所以如果所有其他东西都在工作,那就是 Windows DNS 客户端软件本身受到了牵连。

请注意,我确实ping -4隔离了 IPv4,不包括 IPv6 的影响。

displaydns 失败

这就是为什么描述实际问题的最佳症状是

ipconfig /displaydns
Run Code Online (Sandbox Code Playgroud)

报告:

Could not display the DNS Resolver Cache.
Run Code Online (Sandbox Code Playgroud)

但是 DNS 客户端正在运行

阅读论坛,出现此症状的最可能原因是 DNS 客户端(又名dnscache)服务未运行;然而对我们来说是。

我们做到了

net stop dnscache
net start dnscache
sc query dnscache
Run Code Online (Sandbox Code Playgroud)

它正在运行。

这不是 DNS 后缀

另一种可能是使用了 DNS 后缀。但是进入网络和共享中心 -> 更改适配器设置 -> 无线网络连接 -> 属性 -> Internet 协议版本 4 属性 -> 高级 -> DNS 选项卡,我们有:

[已检查] 附加主要和连接特定的 DNS 后缀

  • [已检查] 附加主 DNS 后缀的父后缀

[未选中] 附加这些 DNS 后缀

(并且列表框是空的)

此连接的 DNS 后缀:

[已检查] 在 DNS 中注册此连接的地址 [未选中] 在 DNS 注册中使用此连接的 DNS 后缀。

但是,我不确定这些是否重要,因为我们无法访问 goolge.com,即 FQDN。

更多信息

我们暂时禁用了 IPv6 以进行调试。所以这里报告的所有内容都关闭了 IPv6。

nslookup工作可靠,在google.com和其他一切。

然而,

ping -4 google.com
Run Code Online (Sandbox Code Playgroud)

Ping request could not find host google.com
Run Code Online (Sandbox Code Playgroud)

浏览说DNS错误。

现在,我了解到它nslookup有自己的 DNS 客户端,与 Windows 分开。这会让我相信nslookup'sDNS 客户端很好,而 Windows 不知何故损坏了。

事实上,我们可以通过 IP 地址浏览谷歌和其他网站,只是不能通过名称。

ping通过 IP 地址工作正常。就像tracertIP 地址一样。

不是 DirectAccess

问题似乎不是 DirectAccess :

netsh dns show state
Run Code Online (Sandbox Code Playgroud)

报告(除其他外)

Network Location Behavior           Never use Direct Access settings

Direct Access Settings              Not Configured
Run Code Online (Sandbox Code Playgroud)

线鲨

nslookup显示名称查询期间的 Wireshark 捕获。

然而,执行 ping 的捕获显示没有此类查询。事实上,根本没有活动(除了背景)。这表明 Windows DNS 客户端甚至没有尝试访问 Internet 并翻译名称,这与其无法显示 DNS 是一致的。

其他注意事项

c:\windows\system32\drivers\etc\hosts是空的(唯一的评论)。

当DNS服务器设置为大学的时,就会出现问题;或者当设置为 google 的 8.8.8.8 和/或 8.8.4.4 和/或 OpenDNS 的 208.67.222.222 和/或 208.67.220.220 时。鉴于 Wireshark 报告 Windows 甚至没有发送名称查询,这是有道理的。

问题发生在热崩溃之后。但是,能够通过 IP 规则浏览硬件问题,硬盘损坏可能除外。但是chkdsk没有报告任何坏道,sfc也没有发现任何损坏。

我们还在设备管理器中卸载了网络适配器,让它自动重新安装。还在 Windows 上检查了此适配器的更新。没有。

崩溃意味着重新启动,所以也许这是一个糟糕的 Windows 更新。但是,在此之前和最近的 Windows 更新之后有几次重新启动。

我们为 rootkit 运行的是 Malwarebytes Anti-Malware,还有他们的 Malwarebytes Anti-Rootkit beta、TDSSKiller 和 Comodo Cleaning Essentials(CCE,但似乎没有更新)。

还没有尝试在带网络的安全模式下。

我们主要使用大学路由器,但是当连接到智能手机的热点时也会出现问题。

ipconfig报告 5 个隧道适配器,但它们都报告“媒体已断开连接”。其中 2 个看起来是大学专用的。

ipconfig和设备管理器都报告一个Microsoft Virtual WiFi Miniport Adapter. 这是什么,这可能是问题吗?

多次重新启动 PC 后,问题是相同的。

这是一台笔记本电脑,其中大部分是通过无线连接完成的,但有线连接似乎具有相同的行为。

概括

因此,似乎 Windows DNS 客户端已损坏或至少以某种方式出现故障,但我不确定如何找出原因。

(顺便说一句,我在另一台电脑上写这个)

编辑:

@Kris 想看 ipconfig /all

C:\Users\[username]>ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . :       <<<====NOTE NO HOST NAME
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : ed*****.***l.edu

Wireless LAN adapter Wireless Network Connection 2:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Microsoft Virtual WiFi Miniport Adapter
   Physical Address. . . . . . . . . : xx-xx-xx-xx-xx-xx
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes

Wireless LAN adapter Wireless Network Connection:

   Connection-specific DNS Suffix  . : ed*****.***l.edu
   Description . . . . . . . . . . . : Broadcom 802.11n Network Adapter
   Physical Address. . . . . . . . . : xx-xx-xx-xx-xx-xx
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv4 Address. . . . . . . . . . . : 10.131.2.**(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.128.0
   Lease Obtained. . . . . . . . . . : Monday, April 27, 2015 11:32:13 AM
   Lease Expires . . . . . . . . . . : Monday, April 27, 2015 11:47:13 AM
   Default Gateway . . . . . . . . . : 10.131.0.1
   DHCP Server . . . . . . . . . . . : 132.236.56.249
   DNS Servers . . . . . . . . . . . : 192.35.82.50
                                       128.253.180.2
                                       132.236.56.250
   NetBIOS over Tcpip. . . . . . . . : Enabled

Ethernet adapter Local Area Connection:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : r****.****l.edu
   Description . . . . . . . . . . . : Broadcom NetLink (TM) Gigabit Ethernet
   Physical Address. . . . . . . . . : xx-xx-xx-xx-xx-xx
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes

Tunnel adapter Reusable ISATAP Interface {CBE4B55D-63C6-460A-82CF-7076427CD2AF}:


   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Microsoft ISATAP Adapter #2
   Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes

Tunnel adapter isatap.e****.****l.edu:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Microsoft ISATAP Adapter #3
   Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes

Tunnel adapter Local Area Connection* 9:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
   Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes

Tunnel adapter isatap.{270C639B-82A2-4AE7-B886-D40DAA7EF798}:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Microsoft ISATAP Adapter #4
   Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes

Tunnel adapter isatap.r****.****l.edu:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Microsoft ISATAP Adapter #5
   Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
Run Code Online (Sandbox Code Playgroud)

编辑2:

试过

netsh int ip set dns "wireless network connection" static 8.8.4.4
net winsock reset
Run Code Online (Sandbox Code Playgroud)

并重新启动并没有改变任何东西。

尝试了这个优秀的网站(感谢@Kris)Windows 7:服务 - 在 Windows 7 中恢复默认服务并下载它们DNS_Client.reg(并命名.reg.txt为安全)并将其与现有的注册表项进行比较,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Dnscache但遗憾的是,它们是相同的。

joh*_*mpf 13

我们在 edugeek.com 上找到了答案并将其用作指南。我们的明确行动解释如下。

关于 EduGeek 的答案是由 Shoeib在第13 篇文章中首次介绍的,他说他们是从那个帖子中得到的,但在那之前我在那个帖子中看不到任何内容可以暗示那个答案。

由fencecat42 发布的20 篇文章有更详细的介绍。

具体来说,

在注册表项中:

HKLM\System\CurrentControlSet\Services\Tcpip\Parameters
Run Code Online (Sandbox Code Playgroud)

缺少以下“值”(作为 MS 令人困惑的术语,每个值都可以有“数据”)丢失

Domain
Hostname
NV Hostname
Run Code Online (Sandbox Code Playgroud)

在fencecat42 和我们的系统中,这三个都丢失了。

现在,荣誉(好吧,几乎 ;)@Kris 因为他们要求我发布这个问题的证据ipconfig /all请注意,在我发布的输出中没有Host Name. 这是Hostname注册表中的一个。

我对编辑注册表犹豫不决,因为一次误击可能会使您的系统无法启动,在这种情况下,希望您进行了系统还原或制作了注册表的副本(我最喜欢的方法是 ERUNT 和 Tweaking.com Windows Repair All-In - 一个(包括一个注册表保存工具)(我在 techsupportalert.com 上发现了这些工具))

因此,要设置Hostname,我们只需进入控制面板 - > 系统。(通常“更改设置”链接在第一个屏幕中不可见;您必须向下滚动。此步骤需要 UAC 授权。设置后您必须重新启动。)

此操作将HostnameNV Hostname注册表中的“价值”。

我们找不到编辑Domain“值”的非注册方式。(也许netdom但我们在这个 Windows 7 Home Premium 系统上没有这个。)所以我们使用注册表将其设置Domain 为空值。我们使用regedit,导航到Tcpip/Parameters键,右键单击 -> 新建 -> 字符串值。这将创建一个新的“值”并设置您键入其名称,更改默认的新名称。然后我们不必为这个“值”创建一个实际的“数据”(再次原谅 MS 的违反直觉的术语)。刚刚创建它并使其“数据”未初始化。

注意:我们仅在设置主机名后尝试联网。不工作。的Domain(即使是空)是必需的。我们没有尝试创建域(并且为空),但没有创建和设置主机名。但我认为这是一个有趣的实验。

反思

第一的,

我现在不记得了,但我怀疑我们尝试过Microsoft 的“如何使用 NetShell 实用程序重置 TCP/IP”,它是

netsh int ip reset c:\resetlog.txt
Run Code Online (Sandbox Code Playgroud)

(或您想要的日志文件的任何路径和文件名)。

那个 MS 页面是这样说的:

当您运行 reset 命令时,它会覆盖以下注册表项,这两个项都由 TCP/IP 使用:

SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 
SYSTEM\CurrentControlSet\Services\DHCP\Parameters
Run Code Online (Sandbox Code Playgroud)

[似乎我们更改了相同的注册表项,MS 只是没有显示其所有层次结构。--约翰诉库普夫]

这与删除并重新安装 TCP/IP 的效果相同。要成功运行手动命令,您必须为将记录 netsh 操作的日志文件指定一个名称。(此日志文件在本节前面的手动过程中称为“resetlog.txt”。)

也许,这个重新安装过程会覆盖那些注册表项,并且无法写入主机名和域?也许?

如果是这样,那么真正对我们有用的是进行 MS ip 重置,然后设置这些注册表项。

第二,

我们的问题是在因热而崩溃后重新启动后出现的。很难将该事件与问题联系起来。一种可能性是热量使磁盘的少量块崩溃,其中一个块碰巧保存了 Tcpip 注册表项值的一部分。不太可能,但我想可能。

或者,如果重新安装TCP / IP必要的,磁盘块损坏的TCP / IP服务,我们不得不重新安装它,然后后修复它。

第三,

这是一个非常有趣的结果。这意味着 Windows DNS 客户端Domain在注册表中查找这些“值”中的一个或两个或所有三个。如果它找到了(他们),那就没问题了。如果它没有找到它们,特别是如果它没有找到Domain,它就会出错并且只是失败。没有错误报告 [1]。

我想我们可以从这个证据中得出结论,这是 Windows DNS 客户端中的一个错误。我们可以证明这一点,因为它有工作域值,这意味着该软件不能真正使用它,这意味着为什么会需要它存在(即使是空的),以正常工作?那是一个错误。

[1]第四,

可能已经是一个错误报告,而不是在事件查看器中常见的地方(在层次结构下:事件查看器(本地) - >视窗- >应用程序和系统)。还有其他日志,许多默认情况下未打开,可能有一些输出,尤其是

  • 事件查看器(本地)
    • 本地应用程序和服务
      • 微软
        • 视窗
          • DNS 客户端事件
            • Microsoft-Windows-DHCP 客户端事件/管理
            • Microsoft-Windows-DHCP 客户端事件/操作

但也有可能

  • 事件查看器(本地)
    • 本地应用程序和服务
      • 微软
        • 视窗
          • DHCP* -> *
          • 诊断-网络 -> 操作
          • Iphlpsvc -> 操作
          • NCSI -> 操作
          • NDIS -> 操作
          • 网络访问保护
            • 操作
            • 世界卫生大会
          • 网络配置文件 -> 操作
          • NlaSvc -> 操作
          • NTLM -> 操作
          • WebIO -> NDF/诊断
          • Winsock 目录更改 -> 操作
          • Winsock 网络事件 -> 操作
          • 有线自动配置 -> 操作
          • WLAN-AutoConfig -> 操作

第五,

经过很多小时的冲浪这个问题,似乎这个问题通常很难调试并且是“奇怪的”。

例如,在 spiceworks 的这篇文章中,问题是 DNS 服务器中的证书过期。

spiceworks 的“Galen in Laguna”海报提出了一种在 Windows 7 中完全卸载 TCP/IP 堆栈并让 Windows 重新安装它的方法。我怀疑这在我们的情况下会起作用,因为它会恢复Tcpip注册表项。(但请参阅上面的 MS 帖子。)

spiceworks 的海报 ILS表明afd.sys驱动程序可能有木马或以某种方式损坏,并建议如何更换它。(afd代表 Winsock 的“辅助功能驱动程序”。)

这篇超级用户帖子为什么当“nslookup”工作正常时“ping”无法解析名称?问题有 35 个赞成票,最佳答案为 27 个,这是一个很好的参考。在那里,人们报告了“他们的其他解决方案”,包括:

  • 多个默认网关
  • 网络上有相同 IP 地址的两台 PC
  • Windows 7 多标签 DNS 查询问题(无论是什么)

此外,人们报告此问题可能是由“rootkits”引起的。我建议任何在这个问题上挣扎的人运行一些 rootkit 扫描程序/移除程序。bleepingcomputer.com 是获得建议的好地方。或在 techsupportalert.com 上阅读Gizmo 的最佳免费 Rootkit 扫描程序/移除程序

第六,

论坛中有证据表明这个问题最常没有解决。

其中一张海报,“拉古纳的盖伦”,在 spiceworks说这是他们通常必须做的事情。

同一个超级用户帖子为什么当“nslookup”工作正常时“ping”无法解析名称?在这个问题有 35 个赞和 27 个最佳答案的情况下,最佳答案作者说,“在这种情况下某些网站还建议卸载并重新安装 SP3。”

而且,这个可怜的超级用户什么都试过了,没有得到答复,18 天后不得不修复安装

第七,

如果这不能解决您的问题,则提供有用的提示:在 Internet 上搜索 Windows DNS 问题时,请注意,很多帖子都在讨论用作 DNS 服务器的 Windows服务器。我们的问题是我们有一台普通的旧电脑,通过路由器连接到互联网,我们的 DNS客户端软件无法正常工作。有时阅读帖子我错过了这种区别。

第八,

如果你去搜索,另一个有用的提示:我们发现发布的许多此类问题都有我们没有的属性:

  1. 建筑物内的本地 DNS 服务器(我们是公共 DNS 服务器,例如 google 的 8.8.8.8)。
  2. 未能翻译建筑物内本地节点的名称(我们试图访问公共互联网站点,例如 www.google.com)
  3. Windows 域的一部分和/或使用 Active Directory,例如在公司环境中(我们刚刚将 PC 连接到无线路由器)

我希望我们的回答对其他人有所帮助。