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

参考回答

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

netstat -tulnp | grep 8080

或:

lsof -i :8080

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

ss -tulnp | grep 8080

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

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


详细讲解与拓展

1. netstat 和 ss 的区别

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

ss -tulnp | grep 8080

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

2. lsof 命令解析

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

lsof -i :8080

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

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

3. 进一步获取进程详情

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

ps -aux | grep <PID>

或者:

cat /proc/<PID>/cmdline

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

4. 结束占用端口的进程

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

kill -9 <PID>

或:

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

总结

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

了解 ss 和 netstat 的区别,以及如何用 ps 或 cat /proc/PID/cmdline 进一步分析进程,会对面试有加分效果。

发表评论

后才能评论