简介
在使用 IDEA 启动项目时,提示某些端口被占用,但是使用netstat -ano | findstr 端口号
却没有。如果 Windows 启用了 Hyper-V 的话,会占用指定范围内的一些端口,我们只需把这个范围调高就行。
步骤
- 查看“协议 tcp 动态端口范围”和“协议 tcp 端口排除范围”,前者的启动端口是从哪个端口开始,端口数是占用多少端口,后者的开始端口和结束端口之间的端口会被占用。
# 查看协议 tcp 动态端口范围 $ netsh int ipv4 show dynamicport tcp # 查看协议 tcp 端口排除范围 $ netsh interface ipv4 show excludedportrange protocol=tcp
- 临时解决方案
# 重置端口,但仍可能在范围中 $ netsh winsock reset # 排除单个端口,startport 为开始排除的端口,numberofports 为往后排除的数量 $ netsh int ipv4 add excludedportrange protocol=tcp startport=8001 numberofports=1
- 最终解决方案,修改动态端口范围。需要以管理员身份运行命令。
# 关闭 Hyper-V $ dism.exe /Online /Disable-Feature:Microsoft-Hyper-V # 修改协议 tcp/udp 动态端口范围,其中 start 为启动端口,num 为端口数,start + num 不能大于 65535。我的习惯是从 60000 开始。 $ netsh int ipv4 set dynamicport tcp start=60000 num=5535 $ netsh int ipv4 set dynamicport udp start=60000 num=5535 # 开启 Hyper-V,再重启计算机即可 $ dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
评论区