端口占用处理
项目启动报端口正在使用
1 | 09:25:12.866 [restartedMain] ERROR org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter : |
windows端口占用处理
1.查看被占用端口所对应的 PID
输入命令【netstat -aon|findstr + “端口号”】后按回车。假设我们要查的是端口号“8092”,那么就输入【netstat -aon|findstr “8092”】,然后回车。这样我们就可以查到这端口的PID是“13160”。
1 | C:\Users\X Bear>netstat -ano | findstr 8092 |
2.查看指定PID的进程
如果想查看是哪个进程占用了“8092”端口,就输入命令【tasklist|findstr ”8092”】后回车。就可以看到结果是“Java. exe”。
3.结束进程
方法一:输入命令【taskkill -pid 进程号 -f】后回车,就可以终止进程。如我们要终止PID号“13160”,那么就输入【taskkill -pid 13160-f】。-f 强制执行
1 | C:\Users\X Bear>taskkill -pid 13160 |
1 | C:\Users\X Bear>taskkill -F -pid 13160 |
方法二:win10可以打开按“Shift + Ctrl + Esc” 组合键,打开任务管理器,切换到【详细信息】板块,找到PID对应的程序,然后右键选择“结束任务”。
Linux 端口占用处理
1. 查找占用端口的进程
使用以下命令查看哪个进程占用了端口(以端口 8080
为例):
1 | sudo lsof -i :8080 |
输出示例:
1
2COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 12345 user 123 IPv6 12345 0t0 TCP *:http-alt (LISTEN)-
COMMAND
:进程名称。 -
PID
:进程 ID。 -
USER
:运行该进程的用户。 -
NAME
:端口信息。
-
如果不知道具体端口,可以使用以下命令列出所有占用端口的进程:
1 | sudo netstat -tuln |
2. 结束占用端口的进程
找到进程 ID (PID) 后,使用以下命令结束进程:
1 | sudo kill -9 12345 |
-
-9
表示强制结束进程。
如果需要结束多个进程,可以一次性结束:
1 | sudo kill -9 12345 54321 |
3. 检查端口是否已释放
再次运行以下命令,确认端口是否已释放:
1 | sudo lsof -i :8080 |
如果没有输出,说明端口已成功释放。
4. 其他常用命令
查找所有占用端口的进程:
1
sudo netstat -tuln
根据进程名称查找 PID:
1
pgrep java
查看某个进程的详细信息:
1
ps -fp 12345
5. 防止端口被占用
如果端口经常被占用,可以采取以下措施:
- 修改应用程序端口:将应用程序的端口改为其他未被占用的端口。
- 检查启动脚本:确保没有重复启动同一应用程序。
- 使用端口管理工具:如
nmap
或netstat
,定期检查端口使用情况。
6. 示例:解除端口 8080 占用
1 | # 查找占用 8080 端口的进程sudo lsof -i :8080# 结束进程(假设 PID 为 12345)sudo kill -9 12345# 确认端口是否已释放 |
通过以上步骤,你可以轻松解除 Linux 上的端口占用问题!