4 种方法来找出 Linux 中正在监听的端口
端口的状态为open、filtered、closed或unfiltered。如果目标计算机上的应用程序正在侦听该端口上的连接/数据包,则称该端口为 open 。
在本文中,我们将解释四种检查开放端口的方法,并向您展示如何查找 Linux 中哪个应用程序正在监听哪个端口。
1.使用 Netstat 命令
Netstat是一种广泛使用的工具,用于查询有关 Linux 网络子系统的信息。您可以使用它来打印所有开放端口,如下所示:
$ sudo netstat -ltup
该标志-l
告诉 netstat 打印所有监听套接字,-t
显示所有 TCP 连接,-u
显示所有 UDP 连接并-p
启用打印在端口上监听的应用程序/程序名称。
要打印数字值而不是服务名称,请添加-n
标志。
$ sudo netstat -lntup
例如,您还可以使用grep 命令来找出哪个应用程序正在监听特定端口。
$ sudo netstat -lntup | grep "nginx"
或者,您可以指定端口并找到绑定到的应用程序,如图所示。
$ sudo netstat -lntup | grep ":80"
2.使用 ss 命令
ss 命令是另一个显示套接字信息的有用工具。它的输出与netstat的输出类似。以下命令将以数值形式显示所有TCP和UDP连接的监听端口。
$ sudo ss -lntu
3.使用Nmap命令
Nmap是一款功能强大且流行的网络探索工具和端口扫描器。要在系统上安装 nmap,请使用默认包管理器,如图所示。
$ sudo apt install nmap [On Debian/Ubuntu] $ sudo yum install nmap [On CentOS/RHEL] $ sudo dnf install nmap [On Fedora 22+]
要扫描 Linux 系统中所有开放/监听端口,请运行以下命令(这需要很长时间才能完成)。
$ sudo nmap -n -PN -sT -sU -p- localhost
4.使用 lsof 命令
我们将介绍的用于查询开放端口的最后一个工具是lsof 命令,它用于列出 Linux 中的打开文件。由于Unix/Linux 中的一切都是文件,因此打开的文件可能是流或网络文件。
要列出所有 Internet 和网络文件,请使用该-i
选项。请注意,此命令会显示服务名称和数字端口的混合。
$ sudo lsof -i
要查找哪个应用程序正在监听特定端口,请以这种形式运行lsof 。
$ sudo lsof -i :80
就这些!在本文中,我们解释了四种检查 Linux 中开放端口的方法。我们还展示了如何检查哪些进程绑定在特定端口上。您可以通过下面的反馈表分享您的想法或提出任何问题。