报错:
Port already in use: 1099
前言:1099/8080 端口冲突在Java开发的时候,很常见。一般的调查和处理方案如下:
问题类型1: 后台因为未能正确关闭tomcat 工程,导致后台仍然被占用,或者干脆就是开了两个同样端口的工程。(比如笔者之前前台开着Vue,并且也是8080)
1.如果能够知道具体的占用者,直接关闭即可。
2.如果没有发现具体的占用者。可以通过打开命令行(windows下cmd或者powershell)
执行
netstat -aon|findstr 1099
查看到pid ,杀掉即可。
taskkill -f -pid ${pid}
问题类型2:
1.如果通过 netstat 命令查不到具体的端口,那么请注意了!请确定您是否开启了 Hyper-V
笔者日常工作,使用比较多的还是windows,使用windows环境下的 hyper -v + docker。那么,hyper -v 是有预留端口的。
netsh interface ipv4 show excludedportrange protocol=tcp
注意到开始端口为1057 结束端口为1156 而1099 正好在这个区间内,正好被排除了!
解决方案如下:
1.关闭 hype-v。
通过控制台直接关闭。
2.调整tomcat端口为其他端口,比如10999
2021/05/28 更新,有网友提到,单独排除某些接口比较费劲,那么,可以手动指定端口预留范围.跳开常用的端口段
netsh int ipv4 set dynamicport udp start=49152 num=16383
检查结果
netsh int ipv4 show dynamicport tcp