linux查看进程端口号

2,837 阅读2分钟

本文首发于公众号:布道谷

在 Linux 上查看进程占用的端口号,可以使用以下几种方法:


1. 使用 netstat 查看端口占用

netstat -tulnp | grep <端口号或进程名>
  • -t:显示 TCP 端口
  • -u:显示 UDP 端口
  • -l:仅显示 监听端口
  • -n:不解析主机名,加快查询速度
  • -p:显示 进程名称

示例:

查看 所有正在监听的端口

netstat -tulnp

查看 特定端口(例如 8080):

netstat -tulnp | grep 8080

输出示例:

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

其中:

  • 8080 是端口号
  • 12345 是进程 ID(PID)
  • java 是占用端口的程序

2. 使用 ss(比 netstat 更快)

如果你的 Linux 发行版较新,推荐使用 ss(比 netstat 更快):

ss -tulnp | grep <端口号或进程名>

示例:

ss -tulnp | grep 8080

3. 使用 lsof 查看端口对应的进程

lsof -i :<端口号>

示例:

lsof -i :8080

输出:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEjava      12345 root   10u  IPv6  12345      0t0  TCP *:8080 (LISTEN)
  • 12345 是进程 ID(PID)
  • java 是进程名称

如果 lsof 命令不存在,安装:

sudo apt install lsof   # Ubuntu/Debiansudo yum install lsof   # CentOS

4. 使用 pidof + netstat 查询特定进程的端口

如果你知道进程名称(如 java),可以用:

pidof java

然后:

netstat -tulnp | grep $(pidof java)

5. 使用 ps + grep 查找进程

如果你知道进程名(例如 java):

ps -ef | grep java

然后结合 netstat 或 ss 查询端口。


6. 直接查看某个进程的所有监听端口

如果你知道进程 PID(例如 12345),可以用:

netstat -tulnp | grep 12345

或者:

ls /proc/12345/fd | xargs -I {} ls -l /proc/12345/fd/{} | grep socket

7. 统计某个进程占用的端口数

bash

lsof -i | grep java | wc -l

这会统计 java 进程占用了多少端口。


8. 释放被占用的端口

如果某个端口被占用,可以杀掉进程:

kill -9 <PID>

示例:

kill -9 12345

总结

操作命令
查看所有监听端口netstat -tulnp
查看特定端口的进程`netstat -tulnp
查看进程占用的端口lsof -i :8080
查看进程 PIDpidof java
查看某进程监听的所有端口`ls /proc//fd
杀掉占用端口的进程kill -9 <PID>

🚀 推荐最简单的方法

netstat -tulnp | grep 8080

或者:

lsof -i :8080

这样可以快速找到进程 占用的端口号 🔥