Win10 Docker启动容器时,端口莫名没权限被拒绝
HDUZN

在Win10系统中,装了Docker desktop,启动容器的时候,突然提示”Permission denied” 了。

之前还正常的,突然某次开机后,就提示映射的端口没有权限,被拒绝了。

输入 netstat -ano | findstr "50000" 查看端口占用信息时,它却无任何输出。端口并没被占用使用。

这是没有权限直接被拒绝了,并不是被占用了。

然后网上查了下。

找到原因:

出现这个错误的原因是 Windows 10 的补丁 KB4074588 中存在一个已知问题:

安装此更新后,应用程序可能无法保留或绑定到以前工作的端口。

这些端口会被 Hyper-V 拿来保留备用,处于备用的端口无法被其他程序使用,用户登录后,系统会随机保留一些端口。使用 netsh interface ipv4 show excludedportrange protocol=tcp 可以查看被保留的端口段,每次重启都有可能是不同的端口。

因此,当你的系统启用 Hyper-V 或安装 Docker(安装 Docker Desktop 会启用 Hyper-V)之后,这个问题可能就会出现。

1.查看被保留的端口段

所以,先用以下命令在Windows PowerShell查看了下被保留的端口段,范围内的端口段被保留了,就无法使用了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
netsh interface ipv4 show excludedportrange protocol=tcp

# 运行结果如下:
协议 tcp 端口排除范围

开始端口 结束端口
---------- --------
5357 5357
14353 14452
14453 14552
14553 14652
14653 14752
14759 14858
50000 50059 *

* - 管理的端口排除。

2.查看某个端口TCP是否可用

具体查看某个端口是否可用,可以用命令测试:Test-NetConnection localhost -Port <端口号>

当看到结果TcpTestSucceeded : False,False就不能用了,如果是True就可以用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 测试50000端口是否可用
Test-NetConnection localhost -Port 50000

# 运行结果如下:
警告: TCP connect to (::1 : 50000) failed
警告: TCP connect to (127.0.0.1 : 50000) failed


ComputerName : localhost
RemoteAddress : ::1
RemotePort : 50000
InterfaceAlias : Loopback Pseudo-Interface 1
SourceAddress : ::1
PingSucceeded : True
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded : False

解决方法

这个问题的解决方法有两种:

1.最粗暴的方法

直接重启电脑,因为端口会随机改变。多重启几次,总能解决的。
不过以后仍有可能会遇到同样的问题。

2.排除掉需要使用的端口

1).禁用 Hyper-V

2).添加需要排除的端口范围

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

这个命令的作用是添加一个 TCP 端口范围,其中端口从 50051 开始,共计 1 个端口。同时,这个范围中的一个端口将被排除,以确保该端口不会被其他应用程序占用。

netsh:Windows 中的一个命令行工具,用于配置网络参数。
int ipv4:表示要配置 IPv4 网络接口。
add excludedportrange:添加一个被排除的端口范围。
protocol=tcp:指定排除的是 TCP 端口。
startport=50051:指定排除的端口范围的起始端口为 50051。
numberofports=1:指定端口范围中要排除的端口数量为 1。

3).重新启用 Hyper-V

PS.第2种方法也只是重启电脑前可以解决,只要重启电脑了,端口又随机了,还是会有可能再碰到这个问题。所以,我决定,直接就重启电脑算了。

  • 本文标题:Win10 Docker启动容器时,端口莫名没权限被拒绝
  • 本文作者:HDUZN
  • 创建时间:2023-05-10 10:12:45
  • 本文链接:http://hduzn.cn/2023/05/10/Win10端口莫名被拒绝问题/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论