调试程序进程无法启动,提示端口占用,Web server failed to start. Port xxxx was already in use.

发布于 2026-04-15  30.08k 次阅读


在用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

修改完重启即永久生效。