同一 VNET 上的 AZURE VM,不同子网无法 ping 到 3389 以外的端口

AZURE VMs on the same VNET, different subnet can not ping to port other then 3389

我是 AZURE 的新手,正在尝试连接两个 VM(同一网络,不同的子集)。

我在两个虚拟机上都启用了 RDP,所以我可以像这样从 VM-1 ping 到 VM-2:

PS C:\Users\AzureUser> Test-NetConnection 10.0.1.4 -port 3389
ComputerName     : 10.0.1.4
RemoteAddress    : 10.0.1.4
RemotePort       : 3389
InterfaceAlias   : Ethernet
SourceAddress    : 10.0.0.4
TcpTestSucceeded : True

我猜这是因为此端口 3389 用于 RDP。

现在在入站端口规则中我添加了端口8080但无法连接。

PS 输出:

PS C:\Users\AzureUser> Test-NetConnection 10.0.1.4 -port 8080
WARNING: TCP connect to 10.0.1.4:8080 failed
WARNING: Ping to 10.0.1.4 failed -- Status: TimedOut

ComputerName           : 10.0.1.4
RemoteAddress          : 10.0.1.4
RemotePort             : 8080
InterfaceAlias         : Ethernet
SourceAddress          : 10.0.0.4
PingSucceeded          : False
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded       : False

整体虚拟网络连接是这样的:

感谢任何帮助。

最好查看目标端口是否正在侦听

netstat -ano | findStr "8080"

正在 ping 端口 3389,因为它已经打开并分配了 RDP 应用程序。同样,8080端口应该有一个应用程序运行并且处于监听模式才能ping通端口

谢谢, 马努

您正在从一个子网 ping 另一个子网。流量必须能够离开第一个子网并进入第二个子网。因此,您需要同时定义入站和出站规则。

参见:https://docs.microsoft.com/en-us/azure/virtual-network/security-overview#default-security-rules

根据你的网络拓扑,两个VM在同一个VNET中,但不同的SUBNET,这意味着NSG中的默认规则允许VM之间的流量。为了确保 Azure 网络上的一切都是正确的,您可以进行以下测试。

  • VM Windows 防火墙 (10.0.1.4) 是否有可能阻止端口 8080 上的流量?为了以防万一,禁用此 VM 的 Windows 防火墙并再次测试它。

  • 从 VM 10.0.1.4 运行 此命令,确保存在侦听端口 8080 的服务。

netstat -ano | findtr 8080
TCP    0.0.0.0:8080            0.0.0.0:0              LISTENING       4
TCP    [::]:8080               [::]:0                 LISTENING       4
  • 您可以使用网络观察器查看 IP 流量。 Select 你的源虚拟机和所有关于虚拟机目标的信息,本地端口是一个随机的高端口,你可以在这个图像中使用相同的,远程 IP 和端口是你的虚拟机 10.0.1.4。

  • 根据您提供的所有信息,我认为您的 VM 10.0.1.4 内部存在问题。如果上述所有步骤都没有帮助,请告诉我,然后我们可以继续努力。