在Linux系统中,8080端口是Web服务(如Tomcat、Spring Boot、Nginx等)最常用的默认端口之一。当遇到端口被占用(Address already in use)报错时,需要准确排查占用进程。以下是全网最专业的几种排查方法。

一、使用 lsof 命令(最推荐)
lsof(List Open Files)是排查端口占用的首选工具。执行:sudo lsof -i:8080。如果输出结果中包含 COMMAND、PID、USER 等信息,说明端口被占用,其中PID即为进程号。例如输出 java 1234 root 46u IPv6 0x... 0t0 TCP *:8080 (LISTEN),则表示PID为1234的Java进程占用了8080端口。
二、使用 ss 命令(现代且高效)
ss(Socket Statistics)是netstat的替代工具,速度更快。执行:sudo ss -tlnp | grep 8080。若输出包含 LISTEN 状态以及 users:(("java",pid=1234,fd=46)) 信息,则明确显示占用进程的PID和进程名。
三、使用 netstat 命令(传统方法)
对于旧系统,可使用netstat。执行:sudo netstat -tlnp | grep 8080。输出中若有 tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1234/java 这样的行,则1234即为占用8080端口的进程PID。
四、使用 fuser 命令(快速识别PID)
fuser可以直接返回占用端口的PID。执行:sudo fuser -v 8080/tcp。输出会显示 8080/tcp: 1234,即占用PID。
五、如何终止占用进程
查出PID后,若确认该进程可安全终止,执行 sudo kill -9 PID(例如:sudo kill -9 1234)即可释放端口。若不确定进程用途,建议先执行 ps -p PID -o comm,args 查看进程详情。
六、注意事项
1. 排查时务必使用 sudo 权限,否则可能因权限不足无法显示完整信息。
2. 若以上命令均无输出,说明8080端口未被占用,可放心启动服务。
3. 若需修改服务端口,可在配置文件中将8080更改为其他未被占用的端口(如8081)。

查看详情

查看详情