![Azure 上的两个虚拟机无需任何虚拟网络就可以相互连接吗?](https://linux22.com/image/650139/Azure%20%E4%B8%8A%E7%9A%84%E4%B8%A4%E4%B8%AA%E8%99%9A%E6%8B%9F%E6%9C%BA%E6%97%A0%E9%9C%80%E4%BB%BB%E4%BD%95%E8%99%9A%E6%8B%9F%E7%BD%91%E7%BB%9C%E5%B0%B1%E5%8F%AF%E4%BB%A5%E7%9B%B8%E4%BA%92%E8%BF%9E%E6%8E%A5%E5%90%97%EF%BC%9F.png)
我在 Windows Azure 上创建了两个虚拟机。一个虚拟机连接到远程桌面,然后我尝试使用其公共虚拟 IP (VIP)/内部 IP 地址 ping 另一个虚拟机。它无法连接并显示“请求超时”消息。
我的问题是,我是否需要创建虚拟网络以使这两个虚拟机能够相互连接?
感谢您的意见和建议。
答案1
您的问题涉及两件事:ping 和连接性。
负载均衡器不支持 Ping,这就是为什么您的一个 VM 无法通过其公共 IP 地址 ping 另一个 VM(通过负载均衡器的入站或出站流量不支持 ICMP)。Ping 在内部网络上有效(在同一云服务内或跨虚拟网络)。
现在开始讨论连接性:您可以打开外部 TCP 和 UDP 端口,允许流量流入虚拟机(在相同或不同的端口上)。只要打开这些外部端点,您就可以通过这些端点进行连接。您还可以将访问控制列表 (ACL) 应用于端点,以根据入站 IP 地址过滤流量。所以...从您通过 RDP 连接到的虚拟机:虽然您无法通过其公共 IP 地址 ping 您的第二台机器,但您能通过基于 TCP 或 UDP 的协议(telnet、ssh、数据库连接等)连接。
如果您选择 VNet 路由,则 VNet 中的每个 VM 都可以连接到 VNet 中的其他 VM,而不必担心外部端点是否开放。此外,由于您的流量不再通过负载均衡器路由,因此您可以使用其他协议(例如用于 ping 的 ICMP)。
答案2
这应该提供有关在 Azure 中使用 Ping 的更多信息。尝试使用基于 TCP 的 Ping 工具而不是 ICMP ping。
如果使用 DIP 进行通信,则虚拟机需要在同一个 Hosted Service 或 VNET 中。如果使用 VIP,那么只要您的虚拟机可以访问互联网,这样的配置是必要的。