设置为允许 Windows 防火墙共享驱动器

Windows 防火墙阻止了我让 Docker for Windows 在 Windows 10机器上共享 c: 的尝试。

当 Windows 防火墙关闭时工作良好。当它的时候,我得到

防火墙正在阻止 Windows 和 更多信息请参见文档。

文件上说

您不需要在任何其他网络上打开端口445, 允许连接到10.0.75.1端口445(Windows 主机) 10.0.75.2(虚拟机)。

我正在“谷歌搜索”试图找到如何做到这一点-有人能提出建议吗?

177374 次浏览

这取决于您安装了什么防火墙。在我的情况下,我已经禁用了内置的 Windows 防火墙,我正在使用 ESET 智能安全,所以我的规则看起来像:

  • 进去连接创建一个规则,因为您应该允许 Docker 连接到您的主机并将其设置为 允许

enter image description here

  • 正确设置端口,如文档中解释的 445:

enter image description here

  • 设置远程 IP 地址:

enter image description here

也许这不是答案,因为它与 Windows 防火墙无关,但可以给你一些提示。

好的,那么在同一个问题上运行之后, 我找到了一个解决方案。

我就是这么做的:


第一步: 打开 ESET,然后单击 < strong > Setup

click setup

第二步: 点击 网络保护

click network protection

第三步: 单击 < strong > 疑难解答向导

click troubleshooting wizard

第四步: 查找通信 10.0.75.2(默认 docker IP 设置) 只要检查 IP 范围是定义在您的多克设置。然后查找位于该范围内的 IP。

find the connection

第五步: 点击 解除封锁按钮,然后你应该收到这个屏幕。

click unblock

这为我自己解决了问题。

然后您可以转到 Rules 并检查添加的规则。


PS: 这是我的第一篇文章,对于任何不正确的程序表示抱歉。

遇到此错误时,我没有使用任何第三方防火墙。我确信这是一个 Windows 防火墙的问题,尽管残疾 Windows 防火墙对我不起作用。经过大量的研究,我终于找到了这篇博文: Docker on windows10错误: 防火墙正在阻止文件共享..。

结果是 ABc0和内置 Windows 防火墙有关。

The Fix

  1. 以太网(DockerNAT)网络适配器取消选中 微软网络的文件和打印机共享(您可以在 Windows 网络共享中心中找到连接)。
  2. 重新检查 it 并确保启用了它。

您实际上不需要共享 C 驱动器,只需要在 Hyper-V 虚拟网卡上重新安装(甚至可能取消单击 OK 然后选中) File and Print 共享服务。 看看这篇文章。

另外,如果您的网络配置文件(即公共)有限制,请考虑在执行上述操作之前,通过 PowerShell 命令将“ vEthernet (DockerNAT)”卡的默认“未识别网络”更改为 private:

Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private

在最近的 Windows10更新之后,我的 C 驱停止与 Docker 共享。当我试图重新分享时,我也遇到了同样的问题,说它被 Windows 防火墙屏蔽了。

通过上面的解决方案,我发现了一些对我有用的东西,它们比我在这个页面上看到的任何东西都要简单。在 控制面板所有控制面板项目网络和共享中心中,在 以太网(DockerNAT)连接上,我取消选中属性 < i > 微软网络共用档案及打印机 并保存设置。然后我再次检查属性以重新启用它,并再次保存它。

此时,我能够在 Docker 设置中重新共享 C 驱动器。我不知道为什么这个工作,但它不是一个防火墙问题,其中已经有一个条目的 DockerSmbMount。

我和卡巴斯基之间有点问题关掉卡巴斯基起作用了,所以我知道是防火墙的问题。在我的情况下,卡巴斯基由于某种原因已经阻塞了端口445。我必须使用防火墙、本地服务(TCP)的数据包规则,并从块端口列表中删除445。

Image 1

Image 2

我的解决方案是断开与 VPN 的连接,这正是问题的根源

我遇到了同样的问题,尝试了所有的修复方法——结果发现不止一个是必要的:

  • 添加防火墙规则(Norton Security for me)
  • 使网络私有化
  • 共享硬盘

我已经在 http://kajabity.com/2017/08/unblock-docker-for-windows-firewall-issues-with-host-volumes/上写了详细的解释

我在 F-security 上也遇到了同样的问题,DeepGuard 封锁了 Docker 的服务,我的解决方案是:

打开 F-security 客户端并单击“ 任务

enter image description here

选择「 允许程序启动

enter image description here

从列表“ com.docker.service”中选择,然后按“ 拿开

enter image description here

之后,重新开始 Docker 客户端,并尝试申请文件共享。

这里也有很好的故障排除指南: 错误: 防火墙正在阻止 Windows 和容器之间的文件共享

只有这个办法对我有帮助:

  • 进入 Hyper-V Manager-> Virtual Switch Manager-> DockerNAT-> Connection Type: change from inside to private,application,change back to inside,application
  • 重新启动 MobyLinuxVM
  • 重启码头
  • 将 Docker 网络配置文件设置为“ Private”。作为管理员在 PowerShell 中运行命令
    Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private
  • 在 DockerNAT 连接上为 Microsoft 网络重置文件和打印机共享
  • 转到 Docker-> 设置-> 共享驱动器和共享 C:

在最近的 Windows10更新之后,我的 G 盘不再与 Docker 共享。当我试图重新分享时,我也遇到了同样的问题,说它被 Windows 防火墙屏蔽了。

然后我试图解决这个问题的夫妇的建议,但我不能解决这个问题之后,我已经尝试重置凭据下面的共享驱动器和我的问题得到解决。

所以如果你想,那么你可以尝试这样做-

enter image description here

以上这些对我来说都不管用。

最后的诀窍是打开“ vEthernet (DockerNAT)”网络的属性,并在“ Networking”选项卡下面的列表底部勾选“ Hyper-V 可扩展虚拟交换机”。

不确定这是否是实际的修复或者它只是以某种方式为我重置了网络适配器... 但它工作了!

我的防火墙也有同样的问题不允许我共享我的 C 盘。我尝试了上面列出的所有解决方案,但没有一个对我有效。然后我从我的机器完全卸载了 docker < code > 控制面板程序和功能-> 选择 Docker for Windows-> Uninstall
然后转到 < a href = “ https://docs.docker.com/docker-for-windows/install/# download-docker-for-windows”rel = “ nofollow norefrer”> docker site 并单击 Get Docker for Windows (Stable)
之后我就能共享 C 驱动器了

每个人发布的东西对我来说都不起作用。

是这个。

我安装了 EDGE 版本。然后我去了 Windows Defender,关闭了 DOCKER NAT 的防火墙。(不是我实际的以太网适配器,只是 docker nat)

一旦我关闭了 Windows Defender/防火墙,它就能正常工作了。

呃,真希望这能帮到你们!

对于 AVG 互联网安全,在 防火墙设置下启用 互联网连接共享模式为我解决了这个问题。

enter image description here

即使在确保正确设置入站防火墙规则之后,即使在卸载和重新安装 文件和打印共享服务之后,它也不适合我。

解决方案: 除此之外,我还要做第三件事。我必须停用公共网络特定防火墙设置中的复选框 在公共网络上防止传入连接。在这样做之后,它也开始为我工作。请参阅本邮件末尾附加的截图。

不知道这个选项已经存在多久了,我现在正在写 Win 10 Pro 170916299.402。


1. 为公共网络打开特定的防火墙设置 Open specific firewall settings for public networks

2. 取消勾选此复选框 Uncheck this checkbox

在我的例子中,我在 < em > 高级防火墙 Windows Defender 上使用 残疾人“阻塞 TCP 445”并且它工作了。然后 启用它再次后设置 共享驱动器对多克。

setting of Block TCP 445

setting of Shared drives

对于那些无法通过任何手段解决这个问题的人,您可以尝试这样做: 手动映射驱动器到 docker 主机:

Https://github.com/docker/for-win/issues/466#issuecomment-416682825

研究在这里: https://github.com/docker/for-win/issues/466#issuecomment-398305463

对于域网上的 Windows10计算机,在创建 Hyper-V 虚拟以太网适配器时,它被归类为公共网络。你必须将其改为私有网络,以允许更宽松的 Windows 防火墙规则,从而允许文件共享。

在 PowerShell 中运行以下命令:

Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private

如果您的机器的虚拟 Hyper-V 网络连接被称为其他名称,则更改名称的引号。

正如另一个答案中所说的,Docker 不能很好地使用 VPN。 如果您使用 Nordvpn,您必须禁用 “局域网上的隐形”,可能还有 “互联网终止开关”

如果你已经这样做了,它应该工作,甚至与 VPN 活动。

NordVPN Client

我的问题是 Cisco Anyconnect VPN 干扰了内部 Docker 网络

要修正这个问题,请转至:
Cisco Anyconnect 设置 > 首选项 > 检查 Allow local (LAN) access when using VPN

我觉得很简单。直接去找你的网络连接。你可以去 控制面板/网络及共用。你会发现各种各样的连接。搜索 Docker 连接。选择默认值。选择网络后,转到属性。在属性部分启用选项 可扩展虚拟开关。这将有助于虚拟容器使用网卡。

这(下面的链接)似乎是我迄今为止找到的最好的解决方案。它在重新启动时持续存在。这里最好解释一下: https://gist.github.com/biggyspender/8b5b2ed9ff63de31045d41304e3915b3

VEthernet 网络接口似乎是在每次系统启动时动态创建的,它是在“ Public”组中创建的,而不是在“ Private”组(它工作的地方)中创建的。Docker 启动脚本(在上面的链接中调用)中的编辑将自动执行上面 David Tesar 提到的 powershell 命令/修复..。

我有更多的运气添加到脚本的功能,而不是编辑脚本和改变’内部’到’私人’。

对我来说(经过几个小时的尝试-n-error) ,是将子网掩码从 255.255.255.240改为 255.255.255.0(这不应该改变任何东西)。

作为“试错法”的一部分,我已经做了文章中列出的所有其他事情,但是没有任何成功。.但最后一步成功了。.恢复到 255.255.255.240并不会打破这个良性循环。

我承认,这说不通。.但它可能与仅由网络改变触发的内部状态有关。

不管怎样,如果我只帮了一个,那么这些努力都是值得的。

Docker Desktop edge, 2.0.4.1 (34207)

启用选项 Hyper-V 可扩展虚拟开关为我工作。其他解决方案没有为我工作。 我修改了 虚拟开关管理器-DockerNAT-Extensions- 虚拟交换机扩展面板中的配置。

另一个解决办法!我不确定我是如何解决这个问题的,但我认为是下面的方法解决了这个问题。

  • 打开 Hyper-V 管理器
  • 选择 Virtual Switch Manager
  • 如果多个虚拟交换机被称为 DockerNAT,则将其中一个重命名为任何其他名称。
  • 确保 DockerNAT 具有连接类型的内部网络。
  • 另外,确保任何副本的连接类型为“外部网络”,并使用以太网连接,而不是无线连接(在下拉菜单中)。
  • 按确定并关闭 Hyper-V 管理器
  • 重新启动计算机(两次,以防万一)。
  • 现在,尝试在 Docker For Windows 中共享 Docker 驱动器。

对我来说,我唯一要做的就是暂时关闭 Symantec Endpoint Protection 的防火墙。在 Docker 设置 GUI 中共享 C 驱动器。回来启用赛门铁克的防火墙。(没有 powershell 命令等)。.)

enter image description here

如果上面的方法都不管用,只要确保你没有连接到 VPN就可以了。这正是发生在我身上的事情,我被连接到一个 VPN 使用思科 AnyConnect 客户端,还要确保你设置了一个静态 DNS 在多克设置。

如果你把网络适配器的类型改为 Trusted network,使用卡巴斯基安全部队就可以很容易地解决这个问题。

设置 > 保护 > 防火墙 > 网络 > vEthernet (DockerNAT) > 选择“可信网络”

enter image description here enter image description here enter image description here enter image description here

似乎很多人在运行 Cisco AnyConnect 时都会遇到这个问题。我遇到了同样的问题,我是这样解决的:

原因: Docker 使用的子网在 Cisco AnyConnect 管理的 保安路线列表中(我相信这个列表是由您的 VPN 管理员管理的)。

解决方案: 更改 Docker 使用的子网,使其不与 AnyConnect 管理的列表重叠。

例如,在我的例子中,我从10.0.75.0(与10.0.0.0/8重叠)改为172.31.0.0/28。 enter image description here

  1. 打开 windows 的 Windows Defender 防火墙设置。
  2. 打开「 Windows Defender 防火墙属性」连结
  3. 选择私有配置文件选项卡
  4. 按“受保护的网络连接”自定义按钮
  5. 取消选中“ vEthernet (DockerNAT)”
  6. 回到 Dockers 桌面,应用共享

逐步指令图像

我的解决方案:

我正在使用 QuickHeal 杀毒软件,通过以下步骤,它为我工作。

步骤 # 1 转到防火墙保护 Step1

步骤 # 2 选择高级设置 Step2

步骤 # 3 在“网络配置文件”列中查找“公共”,然后打开“文件和打印机共享”选项“ ON” Step3

我试了这里和 https://github.com/docker/for-win/issues/360上列出的所有东西

我什么都没用。

我在一个 Docker 容器上运行我的开发环境,而在 Corporate VPN (Cisco AnyConnect)上,我需要在容器上挂载我的本地驱动器来访问我的项目文件。

这里有一个适用于我的 docker 黑客技术。

那么

docker run -v C:/Users/kumar.joshi/KumarData:/mnt --name dev <image:latest>

将成为

docker run -v C:/Users/kumar.joshi/KumarData:/mnt --name dev --publish 8000:8000 <image:latest>

确保端口没有被使用,否则你会得到这个错误:

绑定0.0.0.0:8000失败: 端口已经分配

简而言之,使用 Edge 版本。

自2.1.5.0(2019-11-04)以来,Docker for Windows 的 Edge 版本提供了一个文件共享的新实现,不需要修改防火墙 Https://docs.docker.com/docker-for-windows/edge-release-notes/

”新的文件共享实现: Docker Desktop 引入了一个新的文件共享实现,它使用 gRPC、 FUSE 和 Hypervisor 套接字而不是 Samba、 CIFS 和 Hyper-V 网络。新的实现提供了改进的 I/O 性能。此外,在使用新的文件系统时:

Users don’t have to expose the Samba port, and therefore do not experience issues related to IT firewall or the drive-sharing policy.
There is no need to provide user credentials to Docker Desktop. File access rights are automatically enforced when accessing mounted folders through containers.

"

你可以下载边缘版本: https://download.docker.com/win/edge/Docker%20Desktop%20Installer.exe

注意,到目前为止,边缘版本2.1.7.0将用于下一个稳定版本: “注意: Docker Desktop Edge 2.1.7.0是即将发布的主要稳定版本的候选版本。”.因此使用 Edge 的风险相对较低。或者您可以等待下一个稳定版本,以避免所有这些防火墙问题。

对我来说,唯一的方法是在我的电脑上创建一个本地用户,并在共享时使用它作为凭证。

更多信息请点击: https://www.mattwoodward.com/2019/05/09/docker-on-windows-10-sharing-a-drive-when-logging-in-with-a-microsoft-account/

在2020年1月25日获发

看来,这是一个问题,在旧版本,我安装了最后一个版本:

Docker version 19.03.5, build 633a0ea

它不需要任何配置就能为我工作。

enter image description here

上面的建议对我来说都不起作用,但卸载 Docker 桌面(重新启动 PC)和重新安装 Docked 最终解决了这个问题。