Linux 操作系统测试远程端口是否可达或本机端口是否打开方法

时间:2021-07-09 15:20:25

在本指南中,我们将向你展示如何使用简单的 netcat (简称 nc)命令来确定远程主机上的端口是否可访问/打开。

netcat(或简称 nc )是一个功能强大且易于使用的程序,可用于 Linux 中与 TCP、UDP 或 UNIX 域套接字相关的任何事情。

# yum install nc                  [在 CentOS/RHEL 中]
# dnf install nc                  [在 Fedora 22+ 中]
$ sudo apt-get install netcat     [在 Debian/Ubuntu 中]

我们可以使用它:打开 TCP 连接、侦听任意 TCP 和 UDP 端口、发送 UDP 数据包、在 IPv4 和 IPv6 进行端口扫描。

使用 netcat,你可以检查单个或多个或一段打开的端口范围,如下所示。下面的命令将帮助我们查看端口 22 是否在主机 192.168.22.43 上打开:

nc -zv 192.168.22.43 22
Connection to 192.168.22.43 22 port [tcp/ssh] succeeded!
未打开的结果为:

nc -zv 192.168.22.43 6380
nc: connect to 192.168.22.43 port 6380 (tcp) failed: Connection refused

上面的命令中,这些标志是:

-z  ----------- 设置 nc 只是扫描侦听守护进程,实际上不向它们发送任何数据。

-v  ----------- 启用详细模式


下面的命令会检查远程主机 192.168.56.10 上是否打开了端口 80、22 和 21:

nc -zv 192.168.56.10 80 22 21

也可以指定端口扫描的范围:

$ nc -zv 192.168.56.10 20-80


需要检查本机的某个端口是否打开时只要把IP地址更换为本机的IP,端口改为你需要测试的端口即可。


查看本机端口是否被占用

netstat -ap | grep 6380
tcp        0      0 localhost:6380          *:*                     LISTEN      1280/redis-server 1
tcp        0      0 localhost:16380         *:*                     LISTEN      1280/redis-server 1