网站搜索

找出 Linux 中正在监听的端口的 4 种方法


端口的状态可以是打开已过滤关闭未过滤。如果目标计算机上的应用程序正在侦听该端口上的连接/数据包,则称该端口已打开。

在本文中,我们将解释检查开放端口的四种方法,并向您展示如何查找 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 类似。以下命令将以数值形式显示 TCPUDP 连接的所有侦听端口。

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 中检查开放端口的四种方法。我们还展示了如何检查哪些进程绑定在特定端口上。您可以通过下面的反馈表分享您的想法或提出任何问题。