如何查看占用端口8080 的进程 ?

参考回答

要查看占用端口 8080 的进程,可以使用 netstatlsof 命令:

netstat -tulnp | grep 8080
Bash

或:

lsof -i :8080
Bash

或者使用 ss 命令(推荐):

ss -tulnp | grep 8080
Bash

其中:
-t:显示 TCP 端口
-u:显示 UDP 端口
-l:显示监听的端口
-n:不解析域名,直接显示端口号
-p:显示进程信息

如果系统没有 netstat,可以使用 ss,它是 iproute2 提供的工具,速度更快。


详细讲解与拓展

1. netstatss 的区别

netstat 是传统的网络状态查询工具,但在现代 Linux 发行版(如 Ubuntu 20.04+)中,已经被 ss 取代。
ss 速度更快,能够更精准地显示端口和进程信息,因此推荐使用:

ss -tulnp | grep 8080
Bash

相比 netstatss 直接从内核获取信息,不需要通过 /proc 解析,所以执行效率更高。

2. lsof 命令解析

lsof(list open files)用于查看打开的文件,包括网络端口:

lsof -i :8080
Bash

它的优点是:
– 可以直接查找占用某个端口的进程
– 适用于所有 Unix 系统(Linux、macOS)

lsof 需要安装(部分系统默认没有),可以用 ss 作为替代。

3. 进一步获取进程详情

一旦找到占用 8080 端口的进程 ID(PID),可以进一步查看详细信息:

ps -aux | grep <PID>
Bash

或者:

cat /proc/<PID>/cmdline
Bash

可以看到该进程是由哪个命令启动的。

4. 结束占用端口的进程

如果需要终止该进程,可以使用:

kill -9 <PID>
Bash

或:

fuser -k 8080/tcp  # 直接终止占用8080端口的进程
Bash

总结

  • ss -tulnp | grep 8080:推荐,速度快,适用于现代 Linux
  • netstat -tulnp | grep 8080:适用于老旧系统
  • lsof -i :8080:适用于 macOS 和 Linux
  • kill -9 <PID>fuser -k 8080/tcp 结束占用端口的进程

了解 ssnetstat 的区别,以及如何用 pscat /proc/PID/cmdline 进一步分析进程,会对面试有加分效果。

发表评论

后才能评论