Linux下找出进程正在侦听的端口号

作为Linux用户,我们有时需要知道特定进程正在侦听哪个端口号。 所有端口都与OS中的进程ID或服务相关联。 那我们怎么找到那个港口? 本文介绍了三种不同的方法,供您查找进程正在侦听的端口号。

我们在Ubuntu 18.04 LTS/Ubuntu 18.10系统上运行了本文中描述的命令和过程。

方法1:使用netstat命令

Netstat或网络统计实用程序用于查看与网络连接相关的信息。 这包括有关接口统计信息,路由表等信息。 此实用程序在大多数Linux系统上都可用,因此我们可以使用它来查看有关某些进程在系统上使用哪些端口的信息。

要使用netstat命令,您需要安装net-tools实用程序(如果它尚未通过以下命令安装在您的系统上):

linuxidc@linuxidc:~/桌面/www.linuxidc.com$ sudo apt install net-tools

Linux下找出进程正在侦听的端口号

然后运行以下命令:

linuxidc@linuxidc:~/桌面/www.linuxidc.com$ sudo netstat -ltnp
激活Internet连接 (仅服务器)
Proto Recv-Q Send-Q Local Address          Foreign Address        State      PID/Program name   
tcp        0      0 127.0.0.53:53          0.0.0.0:*              LISTEN      537/systemd-resolve
tcp        0      0 127.0.0.1:631          0.0.0.0:*              LISTEN      772/cupsd         
tcp6      0      0 :::21                  :::*                    LISTEN      732/vsftpd         
tcp6      0      0 ::1:631                :::*                    LISTEN      772/cupsd

Linux下找出进程正在侦听的端口号

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

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

例如,在netstat命令的上述输出中,进程ID为 732的vsftpd程序在端口号21上运行。

您还可以通过将grep函数合并到命令中来过滤特定端口的统计信息。

例:

linuxidc@linuxidc:~/桌面/www.linuxidc.com$ sudo netstat -ltnp | grep -w ':21'
tcp6      0      0 :::21                  :::*                    LISTEN      732/vsftpd 

Linux下找出进程正在侦听的端口号

方法2:使用lsof命令

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

要使用lsof命令,如果已通过以下命令在系统上未安装lsof实用程序,则需要安装它:

linuxidc@linuxidc:~/桌面/www.linuxidc.com$ sudo apt install lsof

Linux下找出进程正在侦听的端口号

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

例:

linuxidc@linuxidc:~/桌面/www.linuxidc.com$ sudo lsof -i :21
COMMAND PID USER  FD  TYPE DEVICE SIZE/OFF NODE NAME
vsftpd  732 root    3u  IPv6  27550      0t0  TCP *:ftp (LISTEN)

Linux下找出进程正在侦听的端口号

此命令将列出使用TCP端口号21的所有进程。

方法3:使用fuser命令

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

要使用fuser命令,您需要安装psmisc实用程序(如果它已经未通过以下命令安装在您的系统上):

linuxidc@linuxidc:~/桌面/www.linuxidc.com$ sudo apt install psmisc

Linux下找出进程正在侦听的端口号

您可以在此命令中指定任何端口号以查看其侦听进程。

使用fuser命令

linuxidc@linuxidc:~/桌面/www.linuxidc.com$ sudo fuser 21/tcp
21/tcp:                732

Linux下找出进程正在侦听的端口号

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

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

语法:

$ ps -p [processID] -o comm=

我们运行以下命令测试:

linuxidc@linuxidc:~/桌面/www.linuxidc.com$ ps -p 732 -o comm=
vsftpd

Linux下找出进程正在侦听的端口号

输出显示进程ID 732对应于程序名称vsftpd。 因此,程序vsftpd的进程ID 732正在侦听端口号21。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12376.html