如何PING通远程服务器上的端口
本文主要介绍可以使用不同的方法来ping通端口,以帮助排除网络连接问题。ping命令在几乎所有你可以登录的设备上都可以使用,这使得它成为验证网络连接到远程主机的工具。
虽然它可以是一个有用的测试,但问题是,如果ping一个远程主机,例如在互联网上,如果ICMP协议(Ping使用的)在途中被阻止,或者被目标设备阻止,你可能不会得到响应。相反,我们可以 "ping "远程设备上的一个特定端口。
如果一个服务器在一个特定的端口上监听,例如web服务器的80端口,我们可以尝试测试与该端口的连接性,以确定它是否可以到达。在web服务器的情况下,它的工作是监听80端口(或443端口),因此通过建立连接(或ping该端口),我们可以验证服务是否可用。有很多工具可以帮助我们ping一个特定的端口,这取决于你使用的操作系统。
注意:我们并不是真正的ping端口--技术上来说,ping一词是指使用互联网控制消息协议(ICMP)的ping请求。我们在这里要做的是在一个给定的端口上建立一个连接--但你会经常听到这个词被称为"ping端口"。
我们先来看看NetCat,它是Linux上经常使用的工具,在很多Linux发行版上都可以找到它的原生版本。
使用NetCat来ping端口
netcat(通常缩写为nc)是一个计算机网络实用程序,用于使用TCP或UDP对网络连接进行读写。它可以在Linux上使用,也可以在ESXi主机上使用。
由于我们不想与服务器端口进行交互,我们只想确定它是否打开和监听,所以我们使用netcat的-z选项,也就是扫描选项。我们还想使用-v来开启详细的输出。考虑到这一点,让我们 "ping "一下web服务器的80端口,看看它是否有响应。

输出结果显示,nc已经验证了它可以与80端口的web服务器进行通信。输出结果显示,nc已经验证了它可以和web服务器在80端口上进行通信,我们可以通过这种方式 "ping "任何端口。我们可以用这种方式 "ping "任何端口。例如,看看它是否在22端口(SSH)上监听。

同样,我们有一个成功的连接请求响应。

使用NetCat对一系列端口进行Ping
也可以使用nc来扫描一系列的端口。为此,可以使用

从输出结果可以看出,我们已经确认22号端口可以访问,但23号端口不能访问。
NetCat还有很多很多的用途,但是作为一个从Linux系统中快速检查端口是否在监听和访问的工具,它是很难被打败的!接下来,让我们看看如何从Windows设备中ping一个端口。接下来,让我们看看如何从Windows设备上ping一个端口。
如何使用PowerShell来ping一个或多个端口?
PowerShell在现代Windows设备上是原生可用的(现在你也可以在Linux上安装PowerShell),所以它是一个测试远程服务器端口是否可以访问的好工具,因为它内置了一个名为test-netconnection的cmdlet,用于ping远程端口。和nc一样,你需要传递给cmdlet的唯一参数就是我们要ping远程主机的ip地址和端口。例如

和NetCat一样,你也可以使用test-netconnection来ping一系列的端口,使用一个简单的PowerShell脚本。例如

这是一个简单的for循环,它将根据目标变量的IP来ping ports变量中列出的每个端口。
在这篇文章中,你已经学会了如何使用Linux和Windows系统上的本地工具在远程主机上ping端口。这些技术对于确定远程主机上的服务器端口是否开放和可访问非常有用。
在NetCat的情况下,这也将从ESXi主机上工作,这对排除vSphere连接问题很有用。