总结
本文可帮助你解决错误0x8007232A(“DNS 服务器失败”)。 如果Windows无法在激活期间联系 DNS 服务器来解析密钥管理服务(KMS)主机地址,则会发生此错误。 这些步骤适用于物理计算机、本地虚拟机(VM)和Azure VM,包括激活或排查特定于Azure VM 的选项。
故障特征
尝试激活Windows系统时,Windows脚本主机中看到以下错误消息:
**Error: 0x8007232A** DNS server failure.
Cause
如果受影响的计算机上的Windows(KMS 客户端)无法联系 DNS 服务器来解析密钥管理服务(KMS)主机地址,则会发生此错误。 与错误代码0x8007232B(DNS 名称不存在)不同,此错误代码指示 DNS 查询本身失败,因为 DNS 服务器无法访问或不响应。
此错误通常在以下应用场景中出现:
- 客户端的 DNS 配置指向关闭或无法访问的自定义 DNS 服务器。
- 防火墙规则阻止 TCP/UDP 端口 53 上的 DNS 流量。
- 在 Azure VM 上,网络安全组 (NSG) 规则会阻止 TCP/UDP 端口 53 上的 DNS 流量。
- 网络虚拟设备(NVA)截获并丢弃 DNS 流量。
- 客户端位于没有 KMS 主机的 DNS 解析路径的网络中。
- 客户端的网络适配器的 DNS 服务器配置不正确或为空。
解决方案
如果受影响的计算机是基于物理Windows Server或基于客户端的计算机或非 Windows Azure VM,请参阅 Guidelines 中的详细故障排除说明,以排查 DNS 相关的激活问题。 有关排查 DNS 问题的更多常规帮助,请参阅 DNS 故障排除指南。
为了获得最佳效果,请在客户端上安装 PsPing 工具。
Important
如果您遇到 Azure 虚拟机 (VM) 的 Windows 激活问题,请参阅 Azure 虚拟机上 Windows 激活问题的故障排除工具。
对于Azure VM,在必须进行复杂的 DNS 故障排除之前,可以使用以下故障排除选项:
- 如果要在不解决 DNS 问题的情况下激活Azure VM,请参阅 Azure 方法 1:在不使用 DNS 的情况下激活Azure VM。
- 若要排查Azure VM 与Azure DNS基础结构的连接问题,请参阅 Azure 方法 2:排查与 Azure DNS。
- 如果Azure VM 连接到自定义 DNS 服务器,但可以改用Azure DNS,请参阅 Azure 方法 3:将Azure VM 重新配置为使用 Azure DNS。
- 如果Azure VM 连接到自定义 DNS 服务器,并且必须维护该配置,请参阅 Azure 方法 4:排查使用自定义 DNS 的Azure VM 问题。
Azure方法 1:在不使用 DNS 的情况下激活Azure VM
如果只想激活Azure VM 而不排查 DNS 问题,请执行以下步骤:
在受影响的 Azure VM 上打开管理命令提示符窗口,然后运行以下命令:
cscript c:\windows\system32\slmgr.vbs /skms 20.118.99.224:1688
cscript c:\windows\system32\slmgr.vbs /ato
注释
20.118.99.224如果地址不起作用,请尝试40.83.235.53。 这些 IP 地址是可用于 Azure KMS 服务的 IP 地址。
Azure方法 2:排查与Azure DNS的连接问题
此方法检查Azure VM 是否正确连接到Azure DNS基础结构。
-
在受影响的Azure VM 上,打开管理命令提示符窗口。
-
若要检查Azure VM 的 DNS 配置,请运行以下命令:
ipconfig /all此命令的输出应类似于以下示例:
DNS Servers . . . . . . . . . . . : 168.63.129.16注释
在此示例中,
168.63.129.16是AZURE VM 连接到Azure DNS基础结构时使用的 IP 地址。 有关详细信息,请参阅 Azure IP 地址 168.63.129.16 概述。 -
如果
168.63.129.16不是列表中的第一个 DNS 服务器,或者该列表为空,请检查虚拟网络的 DNS 配置。 在 Azure 门户中,转到 Virtual network>DNS 服务器。 所选选项应为 Default (Azure 提供的)。注释
可为特定网络接口配置自定义 DNS 服务器。 如果虚拟网络已使用默认 DNS 配置,请检查Azure VM 的网络接口。
-
如果 DNS 服务器尚未设置为 Default (Azure 提供的),请选择 Change,然后选择 Default (Azure 提供的)。
-
重启Azure VM。
-
在Azure VM 上,打开管理命令提示符窗口,然后运行以下命令:
ipconfig /flushdns此命令刷新并重新生成 DNS 缓存。
-
若要重试激活Windows,请在命令提示符处运行以下命令:
cscript c:\windows\system32\slmgr.vbs /ato -
如果 Azure VM 仍无法连接到 Azure DNS,请参阅 排查 Azure IP 连接问题。
Azure方法 3:将Azure VM 重新配置为使用Azure DNS
-
在 Azure 门户中,转到 Virtual network>DNS 服务器。
-
选择 Change>Default(Azure 提供的)。
-
重启Azure VM。
-
在Azure VM 上,打开管理命令提示符窗口,然后运行以下命令:
ipconfig /flushdns此命令刷新 DNS 缓存。
-
若要重试激活Windows,请在命令提示符处运行以下命令:
cscript c:\windows\system32\slmgr.vbs /ato -
如果 Azure VM 仍然无法连接到 Azure DNS,请参阅 排查 Azure IP 连接问题。
Azure方法 4:对使用自定义 DNS 的 Azure VM 进行故障排除
如果Azure VM 使用自定义或混合 DNS 结构,则问题变得更加复杂。 以下步骤可帮助你排查Azure VM 可能会遇到的常见 DNS 问题。 他们还将参考你对可能影响激活的 DNS 问题进行更高级的故障排除。
步骤 1:确保 Azure VM 使用 DNS 服务器的正确 IP 地址
-
若要检查Azure VM 的 DNS 配置,请运行以下命令:
ipconfig /all此命令的输出应类似于以下示例:
DNS Servers . . . . . . . . . . . : 10.0.3.5 10.0.3.4 168.63.129.16注释
在此示例中,
168.63.129.16是AZURE VM 连接到Azure DNS基础结构时使用的 IP 地址。 其他 IP 地址表示自定义 DNS 服务器。 有关自定义 DNS 配置的详细信息,请参阅以下文章: -
验证每个 DNS 服务器地址是否正确。 如果必须更改任何地址,请转到Azure门户中Azure VM 的虚拟网络或网络接口页。
Important
对 Azure VM 使用自定义 DNS 服务器时,请不要在Azure VM 本身上配置 DNS 服务器设置。 在网络接口或虚拟网络级别指定 DNS 服务器。
步骤 2:确保 DNS 流量可以在 Azure VM 与 DNS 服务器之间传递
-
若要验证 DNS 流量是否可以从 Azure VM 传递到 DNS 服务器,请在Azure VM 上的命令提示符处运行以下命令:
psping <dns-server-ip>:53 -
如果
psping失败,请执行以下步骤:- 检查可能影响Azure VM 的任何网络安全组(例如在网络接口、子网或虚拟网络级别设置的 NSG)。 请确保任何 NSG 都允许Azure VM 与 UDP/TCP 端口 53 上的 DNS 服务器之间的流量。
- 确保任何防火墙(包括Azure VM 上的Windows防火墙)都允许Azure VM 与 UDP/TCP 端口 53 上的 DNS 服务器之间的流量。
- 若要验证流量是否已解除阻止,请再次运行
psping。 - 若要刷新和重新生成 DNS 缓存,请运行以下命令:
ipconfig /flushdns -
若要重试激活Windows,请在命令提示符处运行以下命令:
cscript c:\windows\system32\slmgr.vbs /ato
步骤 3:排查常规 DNS 服务器问题
如果 DNS 服务器失败仍然存在,请参阅以下文章,详细了解如何排查 DNS 问题: