查找正在侦听端口的 Linux 进程的 3 种方法
端口是一个逻辑实体,代表通信端点并与操作系统中的给定进程或服务相关联。在之前的文章中,我们解释了如何查找 Linux 中所有开放端口的列表以及如何使用 Netcat 命令检查远程端口是否可达。
在这篇简短的指南中,我们将展示在 Linux 中查找侦听特定端口的进程/服务的不同方法。
1.使用netstat命令
netstat(网络统计)命令用于显示有关网络连接、路由表、接口统计等的信息。它可在所有类 Unix 操作系统(包括 Linux)和 Windows 操作系统上使用。
如果默认情况下没有安装,请使用以下命令进行安装。
sudo apt-get install net-tools [On Debian/Ubuntu & Mint]
sudo dnf install net-tools [On CentOS/RHEL/Fedora and Rocky Linux/AlmaLinux]
pacman -S netstat-nat [On Arch Linux]
emerge sys-apps/net-tools [On Gentoo]
sudo dnf install net-tools [On Fedora]
sudo zypper install net-tools [On openSUSE]
安装后,您可以将其与 grep 命令一起使用来查找在 Linux 中侦听特定端口的进程或服务,如下所示(指定端口)。
netstat -ltnp | grep -w ':80'
在上面的命令中,标志。
l
– 告诉 netstat 仅显示监听套接字。t
– 告诉它显示 tcp 连接。n
– 指示它显示数字地址。p
– 允许显示进程 ID 和进程名称。grep -w
– 显示精确字符串的匹配 (:80)。
注意:netstat 命令已被弃用,并被 Linux 中的现代 ss 命令取代。
2.使用lsof命令
lsof 命令(List Open Files)用于列出 Linux 系统上所有打开的文件。
要将其安装在您的系统上,请键入以下命令。
sudo apt-get install lsof [On Debian, Ubuntu and Mint]
sudo yum install lsof [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/lsof [On Gentoo Linux]
sudo pacman -S lsof [On Arch Linux]
sudo zypper install lsof [On OpenSUSE]
要查找侦听特定端口的进程/服务,请键入(指定端口)。
lsof -i :80
3.使用fuser命令
fusion 命令显示 Linux 中使用指定文件或文件系统的进程的 PID。
您可以按如下方式安装它:
sudo apt-get install psmisc [On Debian, Ubuntu and Mint]
sudo yum install psmisc [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/psmisc [On Gentoo Linux]
sudo pacman -S psmisc [On Arch Linux]
sudo zypper install psmisc [On OpenSUSE]
您可以通过运行以下命令(指定端口)来查找正在侦听特定端口的进程/服务。
fuser 80/tcp
然后使用 ps 命令使用 PID 号查找进程名称,如下所示。
ps -p 2053 -o comm=
ps -p 2381 -o comm=
您还可以查看这些有关 Linux 进程的有用指南。
就这样!您是否知道在 Linux 中查找侦听特定端口的进程/服务的任何其他方法,请通过下面的评论表告诉我们。