ping端口是最有效的故障排除技术之一,以便查看服务是否正常运行。
系统管理员每天都使用ping命令,它依靠ICMP协议来检索有关远程主机的操作信息。
但是,仅对主机进行ping操作并不总是足够的:您可能需要对服务器上的特定端口执行ping操作。
此特定端口可能与数据库,Apache Web服务器甚至网络上的代理服务器相关。
在本教程中,我们将看到如何使用各种不同的命令来ping特定端口。
使用telnet ping特定端口
ping特定端口的最简单方法是使用telnet命令,后跟要ping 的IP地址和端口。
您还可以指定域名而不是IP地址,然后指定要ping的特定端口。
$ telnet <ip_address> <port_number>
$ telnet <domain_name> <port_number>
“ telnet”命令对Windows和Unix操作系统有效。
如果在系统上遇到“ telnet:命令未找到 ”错误,则必须通过运行以下命令在系统上安装telnet。
$ sudo apt-get install telnet
例如,假设我们有一个网站运行在本地网络上IP地址为192.168.178.2的Apache Web服务器上。
默认情况下,网站运行在端口80上:这是我们要ping以查看我们的网站是否处于活动状态的特定端口。
$ telnet 192.168.178.2 80
Trying 192.168.178.2…
Connected to 192.168.178.2.
Escape character is ‘^]’.
$ telnet 192.168.178.2 389
Connected to 192.168.178.2.
Escape character is ‘^]’.
能够连接到远程主机仅意味着您的服务已启动并正在运行。
为了退出Telnet实用程序,您可以使用“ Ctrl” +“]”击键来转义并执行“ q”命令来退出。
使用nc ping特定端口
为了对特定的端口号执行ping操作,请对“ nc”命令执行“ nc”命令,对“ verbose”执行“ v”选项,对“ scanning”执行“ z”,并指定主机和要进行ping操作的端口。
您还可以指定域名而不是IP地址,然后指定要ping的端口。
$ nc -vz <host> <port_number>
$ nc -vz <domain> <port_number>
该命令适用于Unix系统,但是您可以在线找到适用于Windows的netcat替代产品。
如果在系统上未找到“ nc”命令,则需要以sudo用户身份运行“ apt-get install”命令进行安装。
$ sudo apt-get install netcat
举例来说,假设您要在其端口80上对远程HTTP网站执行ping操作,则可以运行以下命令。
$ nc -vz amazon.com 80
amazon.com [<ip_address>] 80 http) open
如您所见,连接已在端口80上成功打开。
另一方面,如果尝试对未打开的特定端口执行ping操作,则会收到以下错误消息。
$ nc -vz amazon.com 389
amazon.com [<ip_address>] 389 ldap) : Connection refused
使用nmap ping端口
ping特定端口的一种非常简单的方法是将nmap命令与端口的“ -p”选项一起使用,并指定端口号以及要扫描的主机名。
$ nmap -p <port_number> <ip_address>
$ nmap -p <port_number> <domain_name>
注意:如果您使用的是nmap,请注意,您应该了解它可能附带的法律问题。对于本教程,我们假设您正在扫描本地端口仅出于监视目的。
如果主机上没有“ nmap”命令,则必须安装它。
$ sudo apt-get install nmap
举例来说,假设您要在默认LDAP端口 389 上对本地网络上的“ 192.168.178.35/24”执行ping操作。
$ nmap -p 389 192.168.178.35/24
如您所见,据说该虚拟机上的端口389已打开,表明其中正在运行OpenLDAP服务器。
使用nmap扫描端口范围
为了使用nmap扫描一定范围的端口,您可以对“端口”使用“ p”选项执行“ nmap”,并指定要ping的范围。
$ nmap -p 1-100 <ip_address>
$ nmap -p 1-100 <hostname>
同样,如果我们尝试扫描“ 192.168.178.35/24”上的端口范围,则将运行以下命令
$ nmap -p 1-100 192.168.178.35/24
使用Powershell Ping特定端口
如果您在Windows环境中运行计算机,则可以使用Powershell ping特定的端口号。
如果您计划在自动脚本中包含此功能,则此选项非常有用。
为了使用Powershell ping特定端口,您必须使用“ Test-NetConnection”命令,后跟要ping的IP地址和端口号。
$ Test-NetConnection <ip_address> -p <port_number>
举例来说,假设我们要对端口389上的“ 192.168.178.35/24”主机执行ping操作。
为此,我们将运行以下命令
$ Test-NetConnection 192.168.178.35 -p 389
在最后一行,您可以看到TCP调用是否成功:在我们的例子中,它确实到达了389端口上的端口。
关于坪术语
从技术上讲,没有诸如“ ping”主机上的特定端口之类的事情。
向远程主机发送“ ping”请求意味着您正在使用ICMP协议来检查网络连接。
ICMP主要用于诊断将阻止您访问主机的网络问题。
当您“ ping端口 ”时,实际上是在计算机和特定端口上的远程主机之间建立TCP连接。
但是,工程师通常说他们正在“ ping端口”,但实际上他们正在扫描或打开TCP连接。
结论
在本教程中,您学习了可用于ping特定端口的所有方法。
本教程中使用的大多数命令都可以在Windows,Unix或MacOS操作系统上使用。