windows系统保留端口,导致端口被占用,通过netstat找不到端口占用

1. 背景

最近心痒升级了系统到windows 11,感觉真的很香,接着使用新系统的机会,也接触了一波wsl2(Windows 10已有,但是一直没有使用过),为此也开启了Hyper-V,没想到却出现了一些端口占用的提示,搞得tomcat无法运行了,一波折腾,最终查明了原因并顺利解决。

2. 问题

使用IDEA启动tomcat,总是提示1099端口被占用,大致提示如下:

Error running **: Address localhost:1099 is already in use

3. 处理方案

按照一般处理方法,首先在终端下通过指令查找1099端口的使用情况,结果却发现并未找使用。

netstat -ano | findstr "1099"

一番资料搜集,发现当我们开启Hyper-V后,系统默认会分配给一些保留端口供Hyper-V使用,碰巧1099就被保留了!!!

那么我们只需要让系统不要保留1099端口即可(其他类似问题,也可以用相同方式处理)。

# 禁用Hyper-V
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

# 添加例外端口
netsh int ipv4 add excludedportrange protocol=tcp startport=1099 numberofports=1

# 启动Hyper-V
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

4. 总结

如果碰到类似的端口占用问题,在netstat找不到的情况下,不妨也考虑考虑系统保留的可能性,采用相同的方式,即可顺利解决。

顺便记录下常用操作,方便查阅。

# 禁用Hyper-V
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

# 启动Hyper-V
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

# 显示动态端口范围
netsh int ipv4 show dynamicport tcp
# 显示例外端口范围
netsh interface ipv4 show excludedportrange protocol=tcp

# 设置动态端口TCP范围
netsh int ipv4 set dynamicport tcp start=1024 num=13977
# 设置动态端口UDP范围
netsh int ipv4 set dynamicport udp start=1024 num=13977

# 添加例外端口
netsh int ipv4 add excludedportrange protocol=tcp startport=1099 numberofports=1

你可能感兴趣的:(windows系统保留端口,导致端口被占用,通过netstat找不到端口占用)