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