全网超详细的如何Ping特定的端口号,比如telnet Ping,nc Ping,nmap Ping等

文章目录

  • 1. 文章引言
  • 2. ping特定端口
    • 2.1 使用telnet ping特定端口
    • 2.2 使用nc ping特定端口
    • 2.3 使用nmap ping端口
    • 2.4 使用Powershell Ping特定端口
  • 3. 补充说明
    • 3.1 apt-get还是yum的区别
    • 3.2 解决sudo: apt-get: command not found的错误
    • 3.3 解决-bash: xxx: command not found的问题
  • 4. 文章总结

1. 文章引言


我们在工作的过程中,经常会使用ping端口,来查看服务是否正常运行,因为它是最有效的故障排除技术之一。

运维或后端人员每天都使用ping命令,它依靠ICMP协议来检索有关远程主机的操作信息,如下所示:

PS C:\Users\superjson> ping www.baidu.com

正在 Ping www.a.shifen.com [180.101.50.242] 具有 32 字节的数据:
来自 180.101.50.242 的回复: 字节=32 时间=21ms TTL=52
来自 180.101.50.242 的回复: 字节=32 时间=12ms TTL=52
来自 180.101.50.242 的回复: 字节=32 时间=12ms TTL=52
来自 180.101.50.242 的回复: 字节=32 时间=18ms TTL=52

180.101.50.242 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 12ms,最长 = 21ms,平均 = 15ms

但仅对主机进行ping操作并不总是足够的:你可能需要对服务器上的特定端口执行ping操作

此特定端口可能与如下相关:

  1. 数据库

  2. Apache Web服务器

  3. 网络上的代理服务器

接下来,我便详细介绍如何使用各种不同的命令来ping特定端口

2. ping特定端口


为什么ping特定端口?上文也已解释清楚。

但正赶上ChatGPT比较火,可以借助ChatGPT来回答,如下所示:

全网超详细的如何Ping特定的端口号,比如telnet Ping,nc Ping,nmap Ping等_第1张图片

ping特定端口可以帮助确认网络是否有效,并确定与特定主机的连接状态。

2.1 使用telnet ping特定端口


首先,我们可以使用telnet命令,后跟IP地址和端口,如下所示:

$ telnet <ip_address> <port_number>

telnet命令对WindowsUnix操作系统都有效,比如我想执行如下命令:

telnet 172.16.0.12 80

但报出-bash: telnet: command not found错误,如下图所示:

在这里插入图片描述

可以执行如下命令,在系统上安装telnet

$ sudo apt-get install telnet

$ yum install telnet

我的服务器已安装telnet,假设我想ping百度的80端口,来查看该端口是否处于活动状态,如下所示:

[root@VM_0_12_centos ~]# telnet 36.152.44.95 80
Trying 36.152.44.95...
Connected to 36.152.44.95.
Escape character is '^]'.

能够连接到远程主机,仅意味着远程端口已启动并正在运行。

为了退出Telnet实用程序,您可以使用Ctrl + ]击键来转义,并执行q命令来退出,如下图所示:

全网超详细的如何Ping特定的端口号,比如telnet Ping,nc Ping,nmap Ping等_第2张图片

当然,你还可以指定域名而不是IP地址,然后指定要ping的特定端口,如下所示:

$ telnet <domain_name> <port_number>

全网超详细的如何Ping特定的端口号,比如telnet Ping,nc Ping,nmap Ping等_第3张图片

2.2 使用nc ping特定端口

为了对特定的端口号执行ping操作:

  1. 请对netcat命令执行nc命令

  2. verbose执行v选项

  3. scanning执行z

  4. 并指定主机和要进行ping操作的端口,如下所示:

$ nc -vz <ip_address> <port_number>

当然,你还可以指定域名,然后指定要ping的端口,如下所示:

$ nc -vz <domain_name> <port_number>

该命令适用于Unix系统,但你可以在线找到适用于Windowsnetcat替代产品。

Windowsnetcat替代产品链接地址为:https://github.com/diegocr/netcat

如果你在系统上未找到nc命令,如下图所示:

在这里插入图片描述

可以执行如下命令,使用sudo命令在系统上安装nc,如下所示:

$ sudo apt-get install netcat

$ yum install netcat

假设,你要远程ping亚马逊的80端口,则可以运行以下命令:

$ nc -vz amazon.com 80

全网超详细的如何Ping特定的端口号,比如telnet Ping,nc Ping,nmap Ping等_第4张图片

如上图所示,连接已在端口80上成功打开。

如果尝试对未打开的特定端口执行ping操作,比如远程亚马逊的389端口,如下所示:

$ nc -vz amazon.com 389

则会收到以下错误消息:

amazon.com [<ip_address>] 389 (ldap) : Connection refused

2.3 使用nmap ping端口

ping特定端口的一种非常简单的方法,是将nmap命令与端口的-p选项一起使用,并指定端口号以及要扫描的主机名,如下所示:

$ nmap -p <port_number> <ip_address>

当然,你也可以指定扫描的域名,如下所示:

$ nmap -p <port_number> <domain_name>

注意:如果您使用的是nmap,请注意,您应该了解它可能附带的法律问题。

对于本教程,我们假设您正在扫描本地端口仅出于监视目的。

如果主机上没有nmap命令,则必须安装它,可以使用如下命令:

$ sudo apt-get install nmap

$ yum install nmap

比如,您要在默认LDAP端口389上对本地网络上的192.168.178.35/24执行ping操作。

$ nmap -p 389 192.168.178.35/24

全网超详细的如何Ping特定的端口号,比如telnet Ping,nc Ping,nmap Ping等_第5张图片

如上图所示,该虚拟机上的端口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

在这里插入图片描述

2.4 使用Powershell Ping特定端口

如果你在Windows环境中运行计算机,则可以使用Powershell ping特定的端口号。

如果你计划在自动脚本中包含此功能,则此选项非常有用。

【注意】为了使用Powershell ping特定端口,您必须使用Test-NetConnection命令,后跟要pingIP地址和端口号,如下所示:

$ Test-NetConnection <ip_address> -p <port_number>

假如,我们要对端口389上的192.168.178.35/24主机执行ping操作,如下所示:

$ Test-NetConnection 192.168.178.35 -p 389

全网超详细的如何Ping特定的端口号,比如telnet Ping,nc Ping,nmap Ping等_第6张图片

在最后一行,您可以看到TCP调用是否成功:在我们的例子中,它确实到达了389端口上的端口。

3. 补充说明

3.1 apt-get还是yum的区别

可以参考博文:详细分析yum和apt-get的区别

3.2 解决sudo: apt-get: command not found的错误

可以参考博文:解决sudo: apt-get: command not found的错误

3.3 解决-bash: xxx: command not found的问题

可以参考博文:解决-bash: xxx: command not found的问题

4. 文章总结


在本教程中,您学习了可用于ping特定端口的所有方法。

但从技术上讲,没有诸如ping主机上的特定端口之类的事情。

向远程主机发送ping请求,意味着你正在使用ICMP协议来检查网络连接。

ICMP主要用于诊断将阻止您访问主机的网络问题。

当您ping端口时,实际上是在计算机和特定端口上的远程主机之间建立TCP连接。

但是,工程师通常说他们正在ping端口,但实际上他们正在扫描或打开TCP连接。

当然,本教程中使用的大多数命令都可以在WindowsUnixMacOS操作系统上使用。

祝你学习愉快!!!

你可能感兴趣的:(服务器,linux,服务器,运维,后端,运维开发)