侧边栏壁纸
  • 累计撰写 88 篇文章
  • 累计创建 41 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

Hyper-V WSL2 动态端口占用修改

勤为径苦作舟
2023-09-16 / 0 评论 / 0 点赞 / 95 阅读 / 0 字

简介

在使用 IDEA 启动项目时,提示某些端口被占用,但是使用netstat -ano | findstr 端口号却没有。如果 Windows 启用了 Hyper-V 的话,会占用指定范围内的一些端口,我们只需把这个范围调高就行。

步骤

  1. 查看“协议 tcp 动态端口范围”和“协议 tcp 端口排除范围”,前者的启动端口是从哪个端口开始,端口数是占用多少端口,后者的开始端口和结束端口之间的端口会被占用。
    # 查看协议 tcp 动态端口范围
    $ netsh int ipv4 show dynamicport tcp
    
    # 查看协议 tcp 端口排除范围
    $ netsh interface ipv4 show excludedportrange protocol=tcp
    
  2. 临时解决方案
    # 重置端口,但仍可能在范围中
    $ netsh winsock reset
    
    # 排除单个端口,startport 为开始排除的端口,numberofports 为往后排除的数量
    $ netsh int ipv4 add excludedportrange protocol=tcp startport=8001 numberofports=1
    
  3. 最终解决方案,修改动态端口范围。需要以管理员身份运行命令。
    # 关闭 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
    

参考

0

评论区