关于Windows端口没被占用提示An attempt was made to access a socket in a way forbidden by its access permissions

问题

某软件启动日志一直提示:An attempt was made to access a socket in a way forbidden by its access permissions。
我百度发现全是“netstat -aon|findstr “49157””这种,但是我试了发现没有进程占用。

原因

后来好不容易找到了TCP动态端口起始端口,发现很多人说改这个可以解决问题。

然后查到Windows Vista 和 Windows Server 2008 中,TCP/IP 默认动态端口范围已更改,通过里面的命令“netsh int ipv4 show dynamicport tcp”发现起始端口变成了1024。

最后Hyper-V和IDEA运行端口占用问题发现可能是因为开启了Hyper-V,导致ipv4的动态起始端口变成了1024。

解决方案

关闭Hyper-V

Microsoft Windows [版本 10.0.18363.752]
© 2019 Microsoft Corporation。保留所有权利。
C:\WINDOWS\system32>dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

或者采用传统方式,在控制面板的“程序和功能”中,找到“Windows功能”,取消Hyper-V的勾选。这两种方法都会要求重启。

修改动态端口范围

使用管理员身份运行cmd

C:\WINDOWS\system32>netsh int ipv4 set dynamicport tcp start=49152 num=16383
确定。

C:\WINDOWS\system32>netsh int ipv4 set dynamicport udp start=49152 num=16383
确定。

然后检查结果

C:\Users\Chirius>netsh int ipv4 show dynamicport tcp
协议 tcp 动态端口范围
启动端口 : 49152
端口数 : 16383

开启Hyper-V

C:\WINDOWS\system32>dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
部署映像服务和管理工具
版本: 10.0.18362.1
映像版本: 10.0.18363.752
启用一个或多个功能
[100.0%]
操作成功完成。
重新启动 Windows 以完成该操作。
是否立即重新启动计算机? (Y/N)

输入Y进行重启之后就解决了。

  • 11
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
根据提供的引用内容,"An attempt was made to access a socket in a way forbidden by its access permissions" 错误是由于Nginx配置文件中的端口占用所引起的。另外一个错误信息是"bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)",这个错误也是由于端口占用导致的。 解决这个问题的方法是找到占用端口的进程并停止它,或者修改Nginx配置文件中的端口。 以下是解决这个问题的步骤: 1. 首先,你可以使用命令行工具netstat来查找占用端口的进程。打开命令提示符或终端窗口,并输入以下命令: ```shell netstat -ano | findstr :80 ``` 这将显示占用端口80的进程的PID(进程ID)。 2. 然后,你可以使用任务管理器(Windows)或活动监视器(Mac)来找到对应PID的进程并停止它。在任务管理器或活动监视器中,找到对应PID的进程,并选择结束进程或强制退出。 3. 如果你无法找到对应PID的进程,或者停止进程后问题仍然存在,你可以尝试修改Nginx配置文件中的端口。打开Nginx配置文件(通常是nginx.conf),找到监听端口的行,将端口号修改为未被占用端口号,保存文件。 4. 最后,重新启动Nginx服务,以使配置更改生效。 请注意,以上步骤可能因操作系统和具体情况而有所不同。如果你遇到困难或问题仍然存在,请提供更多详细信息以便我能够更好地帮助你。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值