win10 hyper-v 引起的端口无法使用的问题解决 an attempt was made to access

an attempt was made to access a socket in a way forbidden by its access permissions

问题:docker desktop for windows 安装以后,需要开启windows的虚拟化hyper-v. 刚开始还使用正常,直到某一次重启电脑后,tomcat 8080 无法使用,利用netstat –ano|findstr “8080”发现根本没被占用,那为什么不能用呢?

原因:hyper-v 将某些端口进行了保留(也就是其他应用程序不能使用这些端口了)

解决

查看被保留的端口

管理员身份打开cmd或powershell,运行:
netsh interface ipv4 show excludedportrange protocol=tcp

C:\Users\wangz> netsh interface ipv4 show excludedportrange protocol=tcp

协议 tcp 端口排除范围

开始端口    结束端口
----------    --------
      5357        5357
      5700        5700
      8040        8139
      8140        8239
      8240        8339
      8340        8439
      8440        8539
      8640        8739
      8740        8839
      8884        8884
      8966        9065
      9350        9449
     50000       50059     *

* - 管理的端口排除。

我们发现8080端口其实就在其中,需要临时关闭hyper-v,来调整一下保留端口


关闭hyper-v

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

执行命令后,会提示重启,我们重启计算机

重启后,设置保留端口

重启后,请保留所需端口,以便Hyper-V不会将其保留

netsh int ipv4 add excludedportrange protocol=tcp startport=50051 numberofports=1

(可选)添加一个注册表项来防止Windows容器主机网络服务(HNS)保留端口,重启生效

reg add HKLM\SYSTEM\CurrentControlSet\Services\hns\State /v EnableExcludedPortRange /d 0 /f

重新启用hyper-v

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

最后测试,8080端口果然可以用了,但是,当我打开IDEA时,报错了,idea的端口占用?

在这里插入图片描述


继续在cmd中执行

netsh winsock reset
netsh int ipv4 set dynamicport tcp start=49152 num=16383
netsh int ipv4 set dynamicport udp start=49152 num=16383

好了,再次启动idea, 全部搞定~

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值