Linux下查看端口号对应的PID

1. 引言

在使用Linux系统过程中,经常会遇到需要查看端口号对应的进程ID(PID)的需求。通过查看PID,可以确定哪个进程在占用某个端口号,从而方便进行进一步的调试和处理。本文将介绍在Linux系统下如何查看端口号对应的PID。

2. 使用netstat命令查看端口号

2.1 netstat命令简介

netstat命令是一个非常常用的网络工具,可以用来查看网络连接、路由表、端口号等网络相关信息。在Linux系统中,netstat命令通常以root权限运行。

2.2 查看所有端口号

要查看所有的端口号及其对应的PID,可以使用以下命令:

netstat -tuln

该命令将显示所有的TCP和UDP监听的端口号,并列出对应的PID。

以下是一个示例输出:

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 512/sshd

tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 605/cupsd

tcp6 0 0 :::80 :::* LISTEN 721/apache2

tcp6 0 0 :::22 :::* LISTEN 512/sshd

udp 0 0 0.0.0.0:68 0.0.0.0:* 398/dhclient

udp 0 0 0.0.0.0:5353 0.0.0.0:* 646/avahi-daemon: r

udp 0 0 0.0.0.0:631 0.0.0.0:* 605/cupsd

udp6 0 0 :::5353 :::* 646/avahi-daemon: r

udp6 0 0 :::49507 :::* 398/dhclient

从上述输出中可以看到,在"PID/Program name"一列显示了端口号对应的PID以及对应的进程名称。

需要注意的是,上述命令将列出所有的监听端口号,包括系统自带的服务端口号,因此输出可能会很长。

2.3 筛选指定端口号

如果只想查看特定端口号对应的PID,可以使用以下命令:

netstat -tuln | grep 端口号

其中,将"端口号"替换成实际要查询的端口号。

以下是一个示例输出:

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      512/sshd 

从上述输出中可以看到,只显示了指定端口号22对应的PID和进程名称。

3. 使用lsof命令查看端口号

3.1 lsof命令简介

lsof命令也是一个非常实用的工具,可以查看系统中打开的文件和进程。通过lsof命令,我们可以方便地查看指定端口号对应的PID。

3.2 查看指定端口号

要查看指定端口号对应的PID,可以使用以下命令:

lsof -i :端口号

其中,将"端口号"替换成实际要查询的端口号。

以下是一个示例输出:

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

sshd 512 root 3u IPv4 7308 0t0 TCP *:22 (LISTEN)

从上述输出中可以看到,只显示了指定端口号22对应的PID和进程名称。

3.3 查看指定PID的相关信息

如果已经知道了某个进程的PID,可以使用以下命令查看该进程的相关信息:

lsof -p PID

其中,将"PID"替换成实际要查询的进程PID。

以下是一个示例输出:

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME

apache2 721 root 4u IPv6 12585 0t0 TCP *:80 (LISTEN)

apache2 722 www-data 4u IPv6 12585 0t0 TCP *:80 (LISTEN)

apache2 723 www-data 4u IPv6 12585 0t0 TCP *:80 (LISTEN)

从上述输出中可以看到,显示了指定PID对应的进程名称以及该进程打开的文件和端口号。

4. 结论

通过netstat和lsof命令,我们可以轻松地查看端口号对应的PID。这对于定位网络问题,找到占用特定端口号的进程非常有帮助。

以上就是在Linux系统下查看端口号对应的PID的方法。希望对您有所帮助!

操作系统标签