Linux:检查进程正在监听的端口号

作为Linux用户,您可能需要知道特定进程正在侦听的端口号。所有端口都与OS进程ID或服务相关联。那么,您如何找到该端口?在本文中,我将向您展示三种不同的方法来查找进程正在侦听的端口号。

我在Ubuntu 18.04 LTS系统上运行了本文中描述的命令和步骤。

方法1:使用netstat命令

Netstat或网络统计实用程序用于显示与网络连接有关的信息。这包括有关接口统计信息,路由表等的信息。该实用程序在大多数Linux系统上都可用,因此请使用它来显示有关特定进程正在您的系统上使用的端口的信息。

要使用netstat命令,如果系统上尚未安装net-tools实用程序,则必须使用以下命令将其安装在系统上。

$ sudo apt install net-tools

然后运行以下命令:

$ sudo netstat -ltnp

运行netstat命令

上面的命令基于以下功能提供netstat信息:

  • l:仅显示监听套接字
  • t:显示tcp连接
  • n:数字显示地址
  • p:显示进程ID /程序名称

例如,在上面的netstat命令的输出中,进程ID为950的Apache2程序在端口号80上运行。

您还可以通过在命令中包含grep函数来过滤特定端口的统计信息。

例子:

$ sudo netstat -ltnp | grep -w ':80'

该命令专门指示哪个进程正在端口号80上运行。

查看哪些程序正在端口80上监听

方法2:使用lsof命令

lsof或“打开文件列表”实用程序可帮助您列出Linux系统上的所有打开文件。您可以使用此实用程序查看在特定端口上打开的所有进程。

要使用lsof命令,如果系统上尚未安装lsof实用程序,则必须使用以下命令来安装它。

$ sudo apt install lsof

安装lsof工具

让我们使用lsof来查看哪些服务正在特定端口上侦听。

例子:

$ sudo lsof -i :80

该命令列出了使用TCP端口号80的所有进程。

使用端口80和lsof检查应用程序

方法3:使用fuser命令

fuser命令显示正在使用指定文件,套接字或文件系统的进程ID。您可以使用此命令显示在特定TCP端口上运行的进程ID。

如果尚未使用以下命令在系统上安装psmisc实用程序,则必须使用fuser命令:

$ sudo apt install psmisc

安装psmisc

让我们使用以下命令显示在TCP端口3306上运行的所有进程ID:

$ sudo fuser 3306/tcp

您可以使用此命令指定任何端口号以查看侦听过程。

使用热熔器命令

在上面的输出中,您可以看到进程ID 975正在侦听TCP 3306。

要查看此进程ID对应的程序,请运行以下命令:

句法:

$ ps -p [processID] -o comm=

在我们的情况下:

$ ps -p [975] -o comm=

检查端口以获取特定的进程ID

输出显示进程ID 975对应于程序名称MySDLd。因此,MySQLd程序的进程ID 975正在侦听端口号3306。

本文学习了三种方法,可以轻松查看Linux上特定进程正在侦听哪个TCP端口。

Linux:检查进程正在监听的端口号

Sidebar