如何查看占用端口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:推荐,速度快,适用于现代 Linuxnetstat -tulnp | grep 8080:适用于老旧系统lsof -i :8080:适用于 macOS 和 Linuxkill -9 <PID>或fuser -k 8080/tcp结束占用端口的进程
了解 ss 和 netstat 的区别,以及如何用 ps 或 cat /proc/PID/cmdline 进一步分析进程,会对面试有加分效果。