在用idea intellij 调试程序的时候,明明没有java进程,启动服务却老是提示
Web server failed to start. Port 8100 was already in use.
netstat -ano | findstr "8100"
也没有其他进程占用,就算有杀掉进程问题还存在,有时候重启也没用。
其实是因为开启了Hyper-V / WSL 保留端口,Hyper-V 会随机保留大量端口,导致"幽灵占用":
PS C:\Windows\system32> netsh int ipv4 show excludedportrange protocol=tcp
协议 tcp 端口排除范围
开始端口 结束端口
---------- --------
1077 1176
1177 1276
1277 1376
1377 1476
1477 1576
7993 8092
8093 8192
8262 8361
8362 8461
8462 8561
50000 50059 *
* - 管理的端口排除。
手动修改范围即可
# 以管理员执行
netsh int ipv4 set dynamicport tcp start=49152 num=16383
netsh int ipv4 set dynamicport udp start=49152 num=16383
# 验证设置
PS C:\Windows\system32> netsh int ipv4 show dynamicport tcp
协议 tcp 动态端口范围
---------------------------------
启动端口 : 49152
端口数 : 16383
修改完重启即永久生效。
Comments | NOTHING