Linux 中查找占用特定端口的进程

在 Linux 系统中,如果你已知某个端口被占用,可以通过以下几种方法查找对应的进程 ID(PID)以及获取进程的详细信息。

方法 1:使用 netstat

使用 netstat 命令可以查看网络连接和监听端口的信息。

命令

1
netstat -tulnp | grep <端口号>

示例

查找 6379 端口:

1
netstat -tulnp | grep 6379

输出示例

1
2
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      2448/docker-proxy   
tcp6 0 0 :::6379 :::* LISTEN 2454/docker-proxy

方法 2:使用 lsof

lsof 命令用于列出打开的文件及其对应的进程。

命令

1
lsof -i :<端口号>

示例

查找 6379 端口:

1
lsof -i:6379

输出示例

1
2
3
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 2448 root 4u IPv4 38430 0t0 TCP *:6379 (LISTEN)
docker-pr 2454 root 4u IPv6 23712 0t0 TCP *:6379 (LISTEN)

方法 3:使用 ss

ss 是一个更现代的网络工具,用于查看 socket 状态。

命令

1
ss -tulnp | grep <端口号>

示例

查找 6379 端口:

1
ss -tulnp | grep 6379

输出示例

1
2
tcp    LISTEN     0      128     *:6379                  *:*                     users:(("docker-proxy",pid=2448,fd=4))
tcp LISTEN 0 128 [::]:6379 [::]:* users:(("docker-proxy",pid=2454,fd=4))

获取进程详细信息

一旦你获得了 PID,可以使用 ps 命令查看进程的详细信息。

命令

1
ps -p <PID> -o pid,comm,args

示例

查找 PID 为 2448 的进程:

1
2
3
4
5
6
7
[root@luffy ~]# ps -p 2448 -o pid,comm,args
PID COMMAND COMMAND
2448 docker-proxy /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 6379 -container-ip 172.24.0.2 -container-port 6379
[root@luffy ~]# ps -a 2448
PID TTY STAT TIME COMMAND
2448 ? Sl 0:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 6379 -container-ip 172.24.0.2 -container-port 6379
14505 pts/0 R+ 0:00 ps -a 2448

总结

通过上述三种方法,你可以成功查找占用特定端口的进程及其 PID,并进一步获取进程的详细信息。这在进行网络故障排除或管理监听服务时非常有用。


Linux 中查找占用特定端口的进程
https://luffy997.github.io/2025/01/06/Linux-中查找占用特定端口的进程/
作者
Luffy997
发布于
2025年1月6日
许可协议