在强制隧道方案中,Windows 激活失败

适用于:✔️ Windows VM

本文介绍如何在站点到站点 VPN 连接或 ExpressRoute 方案中启用了强制隧道时,解决可能遇到的 KMS 激活问题。

症状

在 Azure 虚拟网络子网上启用强制隧道,以将所有 Internet 绑定的流量定向回本地网络。 在此方案中,运行 Windows 的 Azure 虚拟机(VM)无法激活 Windows。

原因

Azure Windows VM 需要连接到 Azure KMS 服务器才能激活 Windows。 激活要求激活请求来自 Azure 公共 IP 地址。 在强制隧道方案中,激活失败,因为激活请求来自本地网络而不是来自 Azure 公共 IP 地址。

解决方案

若要解决此问题,请使用 Azure 自定义路由,将激活流量路由到 Azure KMS 服务器。

Azure 全球云的 KMS 服务器的第一个 DNS 名称具有 azkms.core.windows.net 两个 IP 地址: 20.118.99.22440.83.235.53。 Azure 全局云的 KMS 服务器的第二个 DNS 名称是 kms.core.windows.net IP 地址 23.102.135.246。 如果使用其他 Azure 平台(如 Azure 德国),则必须使用相应 KMS 服务器的 IP 地址。 有关详细信息,请参阅下表:

平台 KMS DNS KMS IP
Azure 全球 azkms.core.windows.net
kms.core.windows.net
20.118.99.224, 40.83.235.53
23.102.135.246
Azure 德国 kms.core.cloudapi.de 51.4.143.248
Azure 美国政府 kms.core.usgovcloudapi.net
azkms.core.usgovcloudapi.net
23.97.0.13
52.126.105.2
Azure 中国世纪互联 azkms.core.chinacloudapi.cn
kms.core.chinacloudapi.cn
159.27.28.100, 163.228.64.161
42.159.7.249

注意

Azure 全球云和 Azure 中国的所有三个 IP 地址,以及 Azure 美国政府的两个 IP 地址都应添加到自定义路由。

若要添加自定义路由,请执行以下步骤:

对于资源管理器 VM

注意

激活使用公共 IP 地址,并受标准 SKU 负载均衡器配置的影响。 仔细查看 Azure 中的出站连接,了解要求。

  1. 打开 Azure PowerShell,然后登录到 Azure 订阅

  2. 运行以下命令:

    # First, get the virtual network that hosts the VMs that have activation problems. In this case, we get virtual network ArmVNet-DM in Resource Group ArmVNet-DM:
    $vnet = Get-AzVirtualNetwork -ResourceGroupName "ArmVNet-DM" -Name "ArmVNet-DM"
    
    # Next, create a route table:
    $RouteTable = New-AzRouteTable -Name "ArmVNet-DM-KmsDirectRoute" -ResourceGroupName "ArmVNet-DM" -Location "centralus"
    
    # Next, configure the route table:
    Add-AzRouteConfig -Name "DirectRouteToKMS" -AddressPrefix 23.102.135.246/32 -NextHopType Internet -RouteTable $RouteTable
    Add-AzRouteConfig -Name "DirectRouteToAZKMS01" -AddressPrefix 20.118.99.224/32 -NextHopType Internet -RouteTable $RouteTable
    Add-AzRouteConfig -Name "DirectRouteToAZKMS02" -AddressPrefix 40.83.235.53/32 -NextHopType Internet -RouteTable $RouteTable
    
    Set-AzRouteTable -RouteTable $RouteTable
    
    # Next, attach the route table to the subnet that hosts the VMs:
    Set-AzVirtualNetworkSubnetConfig -Name "Subnet01" -VirtualNetwork $vnet -AddressPrefix "10.0.0.0/24" -RouteTable $RouteTable
    
    Set-AzVirtualNetwork -VirtualNetwork $vnet
    
  3. 请转到存在激活问题的 VM。 使用 PsPing 测试其是否能够访问 KMS 服务器:

    psping kms.core.windows.net:1688
    psping azkms.core.windows.net:1688
    
  4. 尝试激活 Windows 并查看问题是否得以解决。

后续步骤

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区