网站搜索

查找正在侦听端口的 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 中查找侦听特定端口的进程/服务的任何其他方法,请通过下面的评论表告诉我们。