你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文提供有关如何正确配置 NAT 网关并排查常见配置和部署相关问题的指导。
重要
标准 V2 SKU Azure NAT 网关目前为预览版。 有关适用于 Beta 版、预览版或尚未正式发布的 Azure 功能的法律条款,请参阅 适用于 Microsoft azure 预览版的补充使用条款 。
NAT 网关配置基础知识
检查这些设置以通过 NAT 网关启用出站流量。
标准 NAT 网关
至少一个公共 IP 地址或一个公共 IP 前缀附加到 NAT 网关。 至少一个公共 IP 地址必须与 NAT 网关关联,以便它可提供出站连接。
至少一个子网附加到 NAT 网关。 可以将多个子网附加到 NAT 网关以用于出站,但这些子网必须存在于同一个虚拟网络中。 NAT 网关不能跨越单个虚拟网络。
没有网络安全组 (NSG) 规则或用户定义的路由 (UDR) 阻止 NAT 网关将流量定向到 Internet。
StandardV2 NAT 网关
至少一个公共 IP 地址或一个公共 IP 前缀附加到 NAT 网关。 至少一个公共 IP 地址必须与 NAT 网关关联,以便它可提供出站连接。
至少有一个子网连接到 StandardV2 NAT 网关。 可以将多个子网附加到 NAT 网关以用于出站,但这些子网必须存在于同一个虚拟网络中。 NAT 网关不能跨越单个虚拟网络。
没有网络安全组 (NSG) 规则或用户定义的路由 (UDR) 阻止 NAT 网关将流量定向到 Internet。
StandardV2 NAT 网关可用性
StandardV2 NAT 网关在以下 Azure 区域中不可用:
- 加拿大东部
- 印度中部
- 智利中部
- 印度尼西亚中部
- 以色列西北部
- 马来西亚西部
- 卡塔尔中部
- 阿拉伯联合酋长国中部
如何验证连接性
NAT 网关 支持用户数据报协议(UDP)和传输控制协议(TCP)协议。
注意
NAT 网关不支持 ICMP 协议。 不支持使用 ICMP 协议执行 Ping 操作,预期它会失败。
若要验证 NAT 网关的端到端连接,请执行以下步骤:
执行 TCP 连接测试和特定于 UDP 的应用层测试。
查看 NSG 流日志,以分析来自 NAT 网关的出站流量。
有关用于验证 NAT 网关连接的工具,请参阅下表。
| 操作系统 | 常规 TCP 连接测试 | TCP 应用层测试 | UDP |
|---|---|---|---|
| Linux |
nc(常规连接测试) |
curl(TCP 应用层测试) |
特定于应用程序 |
| Windows操作系统 | PsPing | PowerShell Invoke-WebRequest | 特定于应用程序 |
如何分析出站连接
若要分析来自标准 NAT 网关的出站流量,请使用虚拟网络(VNet)流日志。 VNet 流日志提供虚拟机的连接信息。 连接信息包含源 IP 和端口、目标 IP 和端口以及连接状态。 还会记录流量流方向以及流量大小(以发送的数据包和字节的数量表示)。 VNet 流日志中指定的源 IP 和端口适用于虚拟机,而非 NAT 网关。
若要详细了解 VNet 流日志,请参阅虚拟网络流日志概述。
有关如何启用 VNet 流日志的指南,请参阅管理虚拟网络流日志。
建议访问 Log Analytics 工作区 上的日志数据,也可以在其中查询和筛选出站流量的数据。 若要详细了解如何使用 Log Analytics,请参阅 Log Analytics 教程。
有关 VNet 流日志架构的详细信息,请参阅 流量分析架构和数据聚合。
StandardV2 NAT 网关支持通过 Azure Monitor 的 NAT 网关流日志。 NAT 网关流日志提供流经 NAT 网关的流量的可见性。 有关详细信息,请参阅 使用流日志分析 NAT 网关流量。
NAT 网关处于失败状态
如果 NAT 网关资源处于失败状态,你可能会遇到出站连接失败。 若要使 NAT 网关脱离失败状态,请按照以下说明操作:
标识处于失败状态的资源。 转到 Azure 资源资源管理器并识别处于此状态的资源。
将右上角的切换更新为“读/写”。
对处于失败状态的资源选择“编辑”。
选择“PUT”,然后选择“GET”,以确保预配状态已更新为“成功”。
然后当资源不再处于失败状态后,可以继续执行其他操作。
使用 StandardV2 NAT 网关且处于失败状态的虚拟网络或 NAT 网关
将 StandardV2 NAT 网关关联到 2025 年 4 月之前创建的空子网,并且不包含任何虚拟机可能会导致虚拟网络或 NAT 网关进入失败状态。 若要解决该问题,请执行以下步骤:
- 从子网或虚拟网络中删除 StandardV2 NAT 网关。
- 在子网中创建虚拟机。
- 将 StandardV2 NAT 网关重新附加到子网或虚拟网络。
添加或删除 NAT 网关
无法删除 NAT 网关
必须从虚拟网络中的所有子网拆离 NAT 网关,然后才能移除或删除资源。 有关分步指导,请参阅从现有子网中删除 NAT 网关并删除资源。
添加或删除子网
NAT 网关不能附加到已附加到另一个 NAT 网关的子网
一个虚拟网络中的一个子网不能附加多个 NAT 网关以便出站连接到 Internet。 一个单独的 NAT 网关资源可以关联到同一虚拟网络中的多个子网。 NAT 网关不能跨越单个虚拟网络。
基本资源不能与 NAT 网关位于同一子网中
NAT 网关不与基本负载均衡器或基本公共 IP 等基本资源兼容。 基本资源必须放置在未与 NAT 网关关联的子网上。 基本负载均衡器和基本公共 IP 可以升级到标准,以便与 NAT 网关一起使用。
若要将基本负载均衡器升级到标准,请参阅从基本公共升级到标准公共负载均衡器。
若要将基本公共 IP 升级到标准,请参阅从基本公共升级到标准公共 IP。
若要将附加虚拟机的基本公共 IP 升级到标准,请参阅[使用附加虚拟机升级基本公共 IP](/azure/virtual-network/ip-services/public-ip-upgrade-virtual machine)。
不能将 NAT 网关附加到网关子网
NAT 网关不能部署在网关子网中。 VPN 网关使用网关子网在 Azure 虚拟网络和本地位置之间发送加密流量。 若要详细了解 VPN 网关如何使用网关子网,请参阅 VPN 网关概述。 若要使用 NAT 网关,请将其附加到同一虚拟网络中的其他任何子网。
无法将 NAT 网关附加到包含处于失败状态的虚拟机网络接口的子网
将 NAT 网关关联到包含处于失败状态的虚拟机网络接口(网络接口)的子网时,你会收到一条错误消息,指示无法执行此操作。 必须先解析虚拟机网络接口失败状态,然后才能将 NAT 网关附加到子网。
若要使虚拟机网络接口脱离失败状态,可以使用以下两种方法之一。
使用 PowerShell 使虚拟机网络接口脱离失败状态
使用 Get-AzNetworkInterface PowerShell 命令确定网络接口的预配状态,并将“provisioningState”的值设置为“Succeeded”。
在网络接口上执行 GET/SET PowerShell 命令。 PowerShell 命令将更新预配状态。
通过再次检查网络接口的预配状态来检查此操作的结果(按照步骤 1 中的命令进行操作)。
使用 Azure 资源浏览器使虚拟机网络接口脱离失败状态
转到 Azure 资源管理器(建议使用 Microsoft Edge 浏览器)
展开订阅(几秒钟后才能显示)。
展开包含处于失败状态的虚拟机网络接口的订阅
展开 resourceGroups。
展开包含处于失败状态的虚拟机网络接口的正确资源组。
展开提供程序。
展开 Microsoft.Network。
展开 networkInterfaces。
选择处于预配失败状态的网络接口。
选择顶部的“读/写”按钮。
选择绿色的“GET”按钮。
选择蓝色的“EDIT”按钮。
选择绿色的“PUT”按钮。
选择顶部的“只读”按钮。
虚拟机网络接口现在应处于成功预配状态。 可以关闭浏览器。
添加或删除公共 IP 地址
标准 NAT 网关上不能超过 16 个公共 IP 地址
标准 SKU NAT 网关不能与 16 个以上的 IPv4 公共 IP 地址相关联。 可以将公共 IP 地址和前缀的任意组合与 NAT 网关配合使用(最多总共 16 个 IP 地址)。 若要添加或移除公共 IP,请参阅添加或移除公共 IP 地址。
以下 IP 前缀大小可与 NAT 网关配合使用:
/28(16 个地址)
/29(8 个地址)
/30(4 个地址)
/31(2 个地址)
IPv6 共存
标准 SKU NAT 网关 支持 IPv4 UDP 和 TCP 协议。 标准 SKU NAT 网关不能关联到 IPv6 公共 IP 地址或 IPv6 公共 IP 前缀。
无法将标准 SKU 公共 IP 添加到 StandardV2 SKU NAT 网关
StandardV2 SKU NAT 网关不支持标准 SKU 公共 IP。 只能将 StandardV2 SKU 公共 IP 添加到 StandardV2 NAT 网关。
无法将 StandardV2 SKU 公共 IP 添加到标准 SKU NAT 网关
标准 SKU NAT 网关或任何其他 Azure 资源不支持 StandardV2 SKU 公共 IP。 只能将标准 SKU 公共 IP 添加到标准 NAT 网关。
不能将基本公共 IP 与 NAT 网关配合使用
NAT 网关不能与基本资源配合使用,包括基本公共 IP 地址。 可以使用以下指南升级要与 NAT 网关配合使用的基本公共 IP 地址:升级公共 IP 地址。
不能将自定义 IP 前缀(BYOIP)与 StandardV2 NAT 网关配合使用
StandardV2 NAT 网关不支持自定义 IP 前缀(BYOIP 公共 IP)。 仅支持 StandardV2 SKU Azure 公共 IP。
标准 NAT 网关支持自定义 IP。
不能将具有 Internet 路由首选项的公共 IP 与 NAT 网关一起使用
使用公共 IP 地址配置 NAT 网关时,流量将通过 Microsoft 网络进行路由。 NAT 网关不能与具有路由首选项 Internet 的公共 IP 相关联。 NAT 网关只能与具有路由首选项 Microsoft Global Network 的公共 IP 相关联。 如需支持具有 Internet 路由首选项的公共 IP 的所有 Azure 服务的列表,请参阅受支持的服务。
公共 IP 地址和标准 NAT 网关的区域必须匹配
标准 NAT 网关是 区域资源 ,可以指定为特定区域或“无区域”。当 NAT 网关放置在“无区域”中时,Azure 会将 NAT 网关放入区域,但无法了解 NAT 网关所在的区域。
标准 NAT 网关可与指定为特定区域的标准公共 IP 地址(无区域、所有区域(区域冗余)一起使用,具体取决于其自己的可用性区域配置。
| NAT 网关可用性区域指定 | 可以使用的公共 IP 地址/前缀指定 |
|---|---|
| 无区域 | 区域冗余、无区域或区域性(为了与无区域 NAT 网关一起使用,指定的公共 IP 区域可以是一个地区内的任何区域) |
| 指定到特定区域 | 可以使用区域冗余或区域公共 IP |
注意
如果需要知道 NAT 网关所在的区域,请确保将其指定到特定的可用性区域。 或使用区域冗余 StandardV2 NAT 网关。
不能将 DDoS 保护的公共 IP 与 NAT 网关配合使用
NAT 网关不支持启用 DDoS 防护的公共 IP 地址。 受 DDoS 保护的 IP 对于入站流量更为重要,因为大多数 DDoS 攻击旨在通过大量传入流量来淹没目标的资源。 若要了解有关 DDoS 保护的详细信息,请查看以下文章。
默认出站访问
尽管存在 NAT 网关,但虚拟机 NIC 仍具有默认出站 IP
有一个 NIC 级参数(defaultOutboundConnectivityEnabled),用于跟踪是否将默认出站 IP 分配给虚拟机或虚拟机规模集实例。
在某些情况下,即使配置了显式出站方法(例如 NAT 网关或 UDR)将流量定向到 NVA/防火墙,默认出站 IP 仍会分配给非专用子网中的虚拟机。 默认出站 IP 不用于出口,除非删除了这些显式方法。 通过将子网设为专用并在虚拟机上执行停止和解除分配来删除默认出站 IP。
更多故障排除指南
如果本文未涵盖你遇到的问题,请参阅其他 NAT 网关故障排除文章:
后续步骤
如果遇到本文未列出或未解决的 NAT 网关问题,请通过本页底部的 GitHub 提交反馈。 我们会尽快处理你的反馈,以改善客户体验。
若要详细了解 NAT 网关,请参阅: