在 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 :80803. 使用 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。网友回复