+
95
-

回答

在 Linux 系统上,可以通过以下几种方式来找到监听特定端口的进程及其进程 ID(PID):

1. 使用 netstat 命令
sudo netstat -tuln | grep :端口号
-tuln 参数用于显示 TCP(-t)和 UDP(-u)的监听(-l)的端口,以及显示数字格式的地址(-n)。grep :端口号 用于过滤出监听特定端口号的行。

例如,要找到监听 8080 端口的进程:

sudo netstat -tuln | grep :8080

输出类似于:

tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      12345/java

这里的 12345 就是监听 8080 端口的进程的 PID,java 是进程的名称。

2. 使用 ss 命令
sudo ss -tuln | grep :端口号
-tuln 参数类似于 netstat 命令的作用,用于显示 TCP(-t)和 UDP(-u)的监听(-l)的端口,以及显示数字格式的地址(-n)。grep :端口号 用于过滤出监听特定端口号的行。

例如,要找到监听 8080 端口的进程:

sudo ss -tuln | grep :8080
3. 使用 lsof 命令
sudo lsof -i :端口号

例如,要找到监听 8080 端口的进程:

sudo lsof -i :8080

输出类似于:

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    12345 root   12u  IPv6  12345      0t0  TCP *:8080 (LISTEN)

这里的 12345 就是监听 8080 端口的进程的 PID。

注意事项:在上述命令中,需要以 root 或具有足够权限的用户身份运行,以便能够查看所有进程的信息。如果没有安装 netstat、ss 或 lsof 命令,可以通过包管理器安装,例如在 Ubuntu 上可以使用 sudo apt install net-tools 安装 netstat。

网友回复

我知道答案,我要回答