排查 Azure VM 间的连接问题

Azure 虚拟机 (VM) 间可能出现连接问题。 本文提供解决此问题的故障排除步骤。

如果本文未解决 Azure 问题,请访问 Microsoft Q&A 和 Stack Overflow 上的 Azure 论坛。 可以在这些论坛上发布问题。 还可提交 Azure 支持请求。 若要提交支持请求,请在 Azure 支持页上提交。

症状

一个 Azure VM 无法连接到另一个 Azure VM。

故障排除指南

  1. 检查 NIC 的配置是否不正确
  2. 检查网络流量是否被 NSG 或 UDR 阻止
  3. 检查网络流量是否被 VM 防火墙阻止
  4. 检查 VM 应用或服务是否在侦听端口
  5. 检查问题是否由 SNAT 引起
  6. 检查 ACL 是否阻止了经典 VM 的流量
  7. 检查是否为经典 VM 创建了终结点
  8. 尝试连接到 VM 网络共享
  9. 检查 VNet 间连接

注意

还可以在 PowerShell 中使用 Test-NetConnection 模块来诊断连接信息。

疑难解答步骤

请按照下列步骤排查问题。 完成每个步骤后,检查问题是否得到解决。

步骤 1:检查 NIC 的配置是否不正确

按照如何为 Azure Windows VM 重置网络接口中的步骤进行操作。

如果修改网络接口 (NIC) 后出现此问题,请按照下列步骤进行操作:

多 NIC VM

  1. 添加 NIC。
  2. 修复错误的 NIC 的问题或删除错误的 NIC。 然后再次添加 NIC。

有关详细信息,请参阅添加或删除虚拟机的网络接口

单 NIC VM

步骤 2:检查网络流量是否被 NSG 或 UDR 阻止

使用网络观察程序 IP 流验证连接故障排查确定是否存在干扰流量流的网络安全组 (NSG) 或用户定义的路由 (UDR)。 可能需要在两个 NSG 上添加入站规则。 规则必须处于子网级别和虚拟机的接口级别。

步骤 3:检查网络流量是否被 VM 防火墙阻止

禁用防火墙,然后测试结果。 如果问题得到解决,则验证防火墙设置,然后重新启用防火墙。

步骤 4:检查 VM 应用或服务是否在侦听端口

可使用以下方法之一来检查 VM 应用或服务是否在侦听端口。

  • 运行以下命令,检查服务器是否在侦听该端口。

Windows VM

netstat –ano

Linux VM

netstat -l
  • 对虚拟机本身运行 telnet 命令,测试端口 。 如果测试失败,则应用程序或服务未配置为侦听该端口。

步骤 5:检查问题是否由 SNAT 引起

在某些情况下,VM 位于负载均衡解决方案之后,而该解决方案与 Azure 外部的资源具有依赖关系。 在这些情况下,如果遇到间歇性连接问题,该问题可能因 SNAT 端口耗尽引起。 要解决该问题,请为负载均衡器后的每个 VM 创建一个 VIP(或为经典 VM 创建 ILPIP),并使用 NSG 或 ACL 进行保护。

步骤 6:检查 ACL 是否阻止了经典 VM 的流量

利用访问控制列表 (ACL),可以选择允许还是拒绝虚拟机终结点的流量。 有关详细信息,请参阅管理终结点上的 ACL

步骤 7:检查是否为经典 VM 创建了终结点

在 Azure 中使用经典部署模型创建的所有 VM 都可以通过专用网络通道与同一云服务或虚拟网络中的其他虚拟机自动通信。 但是,其他虚拟网络上的计算机需要终结点才能定向虚拟机的入站网络流量。 有关详细信息,请参阅如何设置终结点

步骤 8:尝试连接到 VM 网络共享

如果无法连接到 VM 网络共享,问题可能由 VM 中不可用的 NIC 引起。 要删除不可用的 NIC,请参阅如何删除不可用的 NIC

步骤 9:检查 VNet 间连接

使用网络观察程序 IP 流验证NSG 流日志记录确定是否存在干扰流量流的 NSG 或 UDR。 还可在此处验证 VNet 间配置。

需要帮助? 请联系支持人员。

如果仍需帮助,请联系支持人员以快速解决问题。