您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
j0785 发布于2022年12月16日 16:21

原创 An attempt was made to access a socket in a way forbidden by its access permissions.

6599 次浏览 读完需要≈ 4 分钟 Windows

内容目录

  • Windows平台运行程序或者执行命令报如下错误:

    Error: listen tcp 0.0.0.0:****: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

    Error: listen tcp 127.0.0.1:****: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

  • 提示:端口拒绝访问(本文示例端口是8001)
  • 查看对应的端口号 8001 是否被占用,netstat -aon|findstr 8001
  • 如果被占用,运行命令taskkill /pid 8001 -t -f结束进程,则问题解决
  • 如果未被占用,则需要查看端口号是否在 Hyper-V 保留tcp端口范围内,开始到结束范围内的端口不可用, netsh interface ipv4 show excludedportrange protocol=tcp,结果可以看到 8001 确实在在排除范围内

    1671176846263(1).jpg

    1671176892634(1).jpg

解决方法如下 :

  1. 最简单的办法就是修改程序或命令使用的端口
  2. 如果不修改使用端口,就需要修改保留端口,修改方法如下:

    • 最简单的办法-重启电脑:保留的端口是随机的,每次重启电脑都会改变,因此可以通过重启电脑来解决。
    • 重新设置一下【TCP 动态端口范围】,让 Hyper-V 只在设定的范围内保留端口即可:(管理员权限)

      netsh int ipv4 set dynamic tcp start=49152 num=16384

      netsh int ipv6 set dynamic tcp start=49152 num=16384

      先执行以上两个命令,然后重启电脑。

      重启后运行命令 netsh int ipv4 show dynamicport tcp 查看TCP动态端口范围

      或者运行命令 netsh interface ipv4 show excludedportrange protocol=tcp查看TCP排除范围

      1671178827475(1).jpg

  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论