Configuración del Firewall de Windows para permitir que Docker para Windows comparta la unidad


139

Firewall de Windows está bloqueando mi intento de permitir que Docker para Windows comparta C: en la máquina con Windows 10.

Funciona bien cuando Firewall de Windows está apagado. Cuando está encendido consigo

Un firewall está bloqueando el uso compartido de archivos entre Windows y los contenedores. Ver documentación para más información.

La documentación dice

No necesita abrir el puerto 445 en ninguna otra red. De forma predeterminada, permite conexiones al puerto 10.0.75.1 445 (el host de Windows) desde 10.0.75.2 (la máquina virtual).

Estoy "buscado en Google" al tratar de encontrar cómo hacerlo, ¿alguien puede aconsejarme?


20
Cisco AnyConnect VPN estaba bloqueando esto para mí, después de salir de la VPN, funcionó.
Chris Wolf el

1
Tengo a Cisco bloqueándome, pero NECESITO estar en la VPN y compartir Docker ... ¿Alguna idea?
Nicolas Irisarri

1
Seguí esto para Norton Firewall y funcionó perfectamente stackoverflow.com/questions/45159006/…
Robin Sanner

Vea la publicación a continuación que responde a esta pregunta superuser.com/questions/1470821/…
Aravind S

1
@NicolasIrisarri: Resolví el mismo problema (necesito usar ambos al mismo tiempo). La solución es usar una subred diferente a la protegida por AnyConnect. Vea mi respuesta a continuación: stackoverflow.com/a/58406873/9064636
Averell

Respuestas:


151

En realidad, no es necesario compartir la unidad C, solo reinstalar (o incluso desmarcar, hacer clic en Aceptar y luego marcar) el servicio de uso compartido de archivos e impresiones en la tarjeta de red virtual Hyper-V. Ver este artículo

Además, si hay restricciones en sus perfiles de red (es decir, públicos), considere cambiar la "red no identificada" predeterminada para la tarjeta "vEthernet (DockerNAT)" a privada a través de este comando de PowerShell antes de hacer lo anterior:

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

44
Tuve que cerrar Docker para Windows y reiniciarlo después de ejecutar el comando Powershell anterior. Puede ejecutar Get-NetConnectionProfilepara asegurarse de que la DockerNATred esté en la Privatecategoría
seangwright

1
El enlace a blog.olandese.nl/2017/05/03/… resolvió mi problema. ¡Muchas gracias!
Andrie

1
Ninguno de estos funcionó para mí, así que intenté: stackoverflow.com/a/47837191/1895627
Andrei

3
No puedo desinstalar eso, recibo un error 0x80071779, intenté deshabilitar -> habilitar. También firewall deshabilitado ... También traté de configurarlo como privado, todavía no funciona, ¿alguna idea?
BrunoLM

2
desinstalar el servicio de uso compartido de archivos e impresiones:Disable-NetAdapterBinding -Name "vEthernet (DockerNAT)" -ComponentID ms_server
Marcel DB

73

Ok, entonces después de ejecutar el mismo problema, he encontrado una solución.

Esto es lo que hice:


Paso 1: abre ESET. Luego haga clic en Configuración

haga clic en configurar

Paso 2: haga clic en Protección de red

haga clic en protección de red

Paso 3: haga clic en el asistente de solución de problemas

haga clic en asistente de solución de problemas

Paso 4: busque la comunicación 10.0.75.2 ( configuración predeterminada de IP de la ventana acoplable) Simplemente verifique el rango de IP definido dentro de la configuración de la ventana acoplable. Luego busque la IP que reside en ese rango.

encuentra la conexión

Paso 5: haga clic en el botón Desbloquear , entonces debería recibir esta pantalla.

haga clic en desbloquear

Esto resolvió el problema por mí mismo.

Luego puede ir a las Reglas y verificar la regla que se agregó.


PD: Esta es mi primera publicación, perdón por cualquier procedimiento incorrecto.


Esta publicación fue extremadamente útil para mí, porque al agregar las reglas como se explica en los documentos, las direcciones IP mencionadas fueron diferentes. Goed Bezig!
DelphiLynx

11
Para todos los usuarios de ESET, esta es la solución, ¡gracias!
cudacoder

2
Una excelente contribución de Franche Van Den Berg, gracias. Esta es, de hecho, la solución para los usuarios de ESET, y muy elegante.
Vacilando

Para ESET, asegúrese de que la red de acopladores esté en la Zona de confianza
WhiteKnight del

Esta solución exacta me funcionó perfectamente. ¡Gracias!
khalid

63

Solo esta solución me ayuda:

  • Vaya a Administrador de Hyper-V -> Administrador de conmutador virtual -> DockerNAT -> Tipo de conexión: cambie de interno a privado, aplique, cambie de nuevo a interno, aplique
  • Reiniciar MobyLinuxVM
  • Reiniciar Docker
  • Establezca el perfil de red de Docker en 'Privado'. Ejecute el comando en PowerShell como administrador
    Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private
  • Restablecer el uso compartido de archivos e impresoras para redes Microsoft en la conexión DockerNAT
  • Vaya a Docker -> Configuración -> Unidades compartidas y comparta C:

66
Vale la pena mencionar que Set-NetConnectionProfilese debe ejecutar en PowerShell como administrador y no como Cmd normal. Funciona bien para mí, pero el adaptador Ethernet sigue funcionandounidentified network
DarkMukke

3
bombardeo de alfombras FTW. Ninguna de las otras soluciones funcionó. Gracias.
David West

Esto funcionó al 100%. Ninguna de las otras opciones funcionó esta vez y la solución final fue configurar la red como Privada.
lordg

¡Gracias hombre! Salvaste mi día. Esa es solo una manera de solucionar este maldito error.
TimeCoder

Trabajó para mi. La mayor parte de la otra solución no lo hizo. asegúrese de seguir TODOS los pasos. Me perdí el paso "Establecer el perfil de red de Docker en 'Privado' Set-NetConnectionProfile -interfacealias" vEthernet (DockerNAT) "-NetworkCategory Private" bajo mi propio riesgo.
Sr. Slim el

54

Mi solución fue desconectarme de la VPN; eso estaba causando el problema


2
También resolví el problema después de desconectarme de mi VPN, que por supuesto, no intenté hasta agotar todas las demás posibilidades. suspiro
Kirkaiya

Estaba buscando la mitad del día y solo necesitaba desconectarme de la VPN. ¡Gracias!
HELPME

1
Solución simple ... ¡Gracias!
MilanYadav

1
¡Gracias! Olvidé mi cliente VPN que se inicia automáticamente en el arranque de Windows.
Fabio Formosa

¡Gracias! Seguí diferentes instrucciones sin éxito, pero una vez desconectado de VPN, ¡funcionó!
MeIr

27

No estaba usando ningún firewall de terceros cuando me encontré con este error. Estaba convencido de que era un problema de Firewall de Windows, aunque deshabilitar Windows Firewall no funcionó para mí. Finalmente encontré esta publicación de blog después de mucha investigación: error de Docker en Windows 10: un firewall está bloqueando el intercambio de archivos ...

Terminó NO teniendo que ver con el Firewall de Windows incorporado.

La solución

  1. Desmarque Compartir archivos e impresoras para redes Microsoft desde el adaptador de red vEthernet (DockerNAT) (puede encontrar la conexión en el Centro de redes y recursos compartidos de Windows ).
  2. Vuelva a verificarlo y asegúrese de que esté habilitado.

Me funcionó perfectamente, ¡Gracias!
LewisCheng-MSFT

Aparentemente esto también funcionó para mí. Revisé el Firewall de Windows y ya tenía la regla correcta, probablemente preinstalada por la propia ventana acoplable.
Davide Inglima

Sería bueno saber por qué esto funciona y cuál es la causa raíz real del problema. Parece suceder con frecuencia.
Jason Rowe

El problema es que debe hacerlo nuevamente después de reiniciar el sistema
AFD

@AFD, interesante, no tengo ese problema.
jiminikiz

22

Mi unidad C dejó de ser compartida con Docker después de una reciente actualización de Windows 10. Recibía el mismo problema al decir que estaba bloqueado por el firewall de Windows cuando intentaba compartirlo.

Mirando a través de las soluciones anteriores, encontré algo que funcionó para mí que es más simple que cualquier otra cosa que vi en esta página. En el Panel de control \ Todos los elementos del Panel de control \ Centro de redes y recursos compartidos , en la conexión vEthernet (DockerNAT) , desmarqué la propiedad Compartir archivos e impresoras para redes Microsoft y guardé la configuración. Luego revisé la propiedad nuevamente para volver a habilitarla y la guardé nuevamente.

En este punto, pude volver a compartir la unidad C en la configuración de Docker. No tengo idea de por qué funcionó, pero no fue un problema de firewall, que ya tiene una entrada para DockerSmbMount.


WOW esto es un error decepcionante. Busqué todo el día gracias
FAjir

esto casi funcionó. ¡No recibo el mensaje de firewall pero la casilla de verificación no permanece marcada!
jokab

17

Tuve este problema con Kaspersky; apagar Kaspersky funcionó, así que supe que era el firewall. En mi caso, Kaspersky ya estaba bloqueando el puerto 445 por alguna razón. Tuve que ir a Reglas de paquetes para el firewall, servicios locales (TCP) y eliminar 445 de la lista de puertos de bloques.

Imagen 1

Imagen 2


1
¡Trabajó para mi! Pero la IU se veía diferente en Kaspersky ES 10. Se puede encontrar así: pestaña Configuración> Seleccione "Firewall" en el lado izquierdo> haga clic en el botón "Reglas de paquetes de red"> Seleccione "Conexión TCP local"> Seleccione Editar en la parte superior
Simon B.

1
En lugar de eliminar 445 de la lista, cambié 'Acción' de 'Bloqueado' a 'Por reglas de aplicación' y funcionó para mí. Así que supongo que eliminar 445 de 'Servicios locales (TCP)' y crear una nueva regla 'Docker SMB Mount' con la acción 'Por reglas de aplicación' también debería funcionar.
Jimson Kannanthara James

Este me funcionó. Tuve que detener Kaspersky y luego intentar habilitar la unidad compartida en Docker para Windows.
gdyrrahitis

Gracias por compartir la solución para Kaspersky. Funcionó para mi.
namit

Tuve el mismo problema y seguí a matthewhorne.me/…
Anthony O.

11

Para máquinas con Windows 10 en redes de dominio, cuando se crea el adaptador Ethernet virtual Hyper-V, se clasifica como una red pública. Debe cambiarlo a una red privada para permitir las reglas de Windows Firewall más relajadas y, por lo tanto, permitir el intercambio de archivos.

Ejecute el siguiente comando en PowerShell:

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

Cambie el nombre entre comillas si la conexión de red virtual de Hyper-V de su máquina se llama de otra manera.


Funcionó como un encanto para mí. Ejecuté el comando en una sesión de Powershell 6 en Windows 10 v10.0.17763 compilación 17763, Docker v18.09.2 compilación 6247962 y ejecuté Norton Security Suite.
Adam

9

Mi problema fue que Cisco Anyconnect VPN interfirió con la red interna del acoplador

para solucionar esto, vaya a:
Configuración de Cisco Anyconnect> Preferencias> verificarAllow local (LAN) access when using VPN


Esto funcionó para mí cuando las sugerencias de Compartir impresión de archivos no lo hicieron. Anyconnect Allow local (LAN) access when using VPNya estaba marcado, así que lo desactivé, desconecté, volví a verificar la opción y volví a conectarme a la VPN. Docker para Windows luego aplicó el recurso compartido de la unidad según lo deseado.
Aaron

No funcionó para mí, tuve que desconectar Cisco AnyConnect para compartir unidades. ¿Algunas ideas?
Jack

Al parecer, nuestros guerreros de la red corporativa han asegurado 0.0.0.0/0, así que no tengo suerte :-(
Jack

8

Como se indicó en otra respuesta, Docker no juega bien con una VPN. Si está utilizando Nordvpn, tiene que deshabilitar "Invisibilidad en LAN" y probablemente "Internet Kill Switch" .

Si lo ha hecho, debería funcionar incluso con la VPN activa.

Cliente NordVPN


2
¡Gracias! Esto lo resolvió para mí. Estuve atrapado por 2 semanas!
user3034

1
Muchas gracias! Varias horas por el drenaje de jugar con la configuración de red, ¡esto es lo único que funcionó para mí!
AnotherShruggingPhysicist

6

Eso depende de qué firewall tenga instalado. En mi caso, he deshabilitado el Firewall de Windows incorporado y estoy usando ESET Smart Security, por lo que mis reglas se ven así:

  • Cree una regla para la conexión IN ya que debe permitir que Docker se conecte a su host y configúrelo en Permitir

ingrese la descripción de la imagen aquí

  • Configure el puerto correctamente como se explica en los documentos que significan 445:

ingrese la descripción de la imagen aquí

  • Configure la dirección IP remota:

ingrese la descripción de la imagen aquí

Tal vez esta no sea la respuesta, ya que no está relacionada con el Firewall de Windows, pero podría darle una pista sobre qué hacer.


Gracias Reynier: seguí lo que muestras lo mejor que pude en el equivalente de Firewall de Windows. - Pestaña General = "Habilitado" - Pestaña Protocolos y Puertos = Protocolo TCP y puerto local = 445 - Pestaña Alcance = IP remota = 10.0.75.2 Pero recibí el mismo mensaje de error. Permitió todos los puertos y direcciones IP: el mismo resultado. ¿Otra regla tiene prioridad?
Ribeye

Será mejor si agrega algunas capturas de pantalla de lo que tiene porque odio el Firewall de Windows y nunca lo he tratado antes ...
ReynierPM

¿Cómo puede seleccionar la aplicación "Sistema"?
Küzdi Máté

No es necesario agregar la aplicación "Sistema", pero debe asegurarse de que la red DockerNAT sea confiable en redes conocidas con rango de IP 10.0.75.1/24
Miguel Febres

No estamos usando ESET: /
Ionel Lupu

4

Nada de lo anterior funcionó para mí.

Lo que finalmente hizo el truco fue abrir las propiedades de la red "vEthernet (DockerNAT)" y marcar la casilla "Interruptor virtual extensible Hyper-V" en la parte inferior de la lista en la pestaña "Redes".

No estoy seguro de si esta es la solución real o si de alguna manera restableció el adaptador de red para mí ... ¡pero funcionó!


4

Parece que muchos tienen este problema al ejecutar Cisco AnyConnect. Tengo el mismo problema y así es como lo resolví:

La causa: la subred utilizada por Docker está en la lista de Rutas seguras administradas por Cisco AnyConnect (creo que esta lista es administrada por el administrador de su VPN).

La solución: cambiar la subred utilizada por Docker para que no se superponga con la lista que administra AnyConnect.

Por ejemplo, en mi caso, cambié de 10.0.75.0 (que se superpuso con 10.0.0.0/8) a 172.31.0.0/28. ingrese la descripción de la imagen aquí


3

Tuve el mismo problema e intenté todas las soluciones, y resultó que era necesario más de uno:

  • Agregar una regla de firewall (Norton Security para mí)
  • Hacer que la red sea privada
  • Comparte el viaje

He escrito una explicación completa en http://kajabity.com/2017/08/unblock-docker-for-windows-firewall-issues-with-host-volumes/


1
“Si bien este enlace puede responder la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia ”.
McGrady

La clave aquí para mí fue hacer que la red de Docker fuera privada.
Mike Caron

3

Mi unidad G dejó de ser compartida con Docker después de una actualización reciente de Windows 10. Recibía el mismo problema al decir que estaba bloqueado por el firewall de Windows cuando intentaba compartirlo.

Luego intenté resolver este problema por un par de sugerencias, pero no puedo resolverlo después de eso, intenté restablecer las credenciales a continuación de Unidades compartidas y mi problema se resolvió.

Entonces, si quieres, puedes intentar hacer esto:

ingrese la descripción de la imagen aquí


3

Todo lo que todos publicaron NO FUNCIONÓ para mí.

Esto lo hizo.

Instalé la versión EDGE. Luego fui a WINDOWS DEFENDER y deshabilité el firewall para DOCKER NAT. (no mi adaptador de ethernet real, solo el docker nat)

Una vez que desactivé el defensor / firewall de Windows DE ESA forma, funcionó bien.

ugh Realmente espero que eso ayude a algunos de ustedes!


deshabilitar el firewall para una conexión específica (dockerNat) ayudó. ¡Muchas gracias!
Mafu

Explique cómo exactamente deshabilitó el firewall de Windows Defender para un adaptador / conexión de red específico.
cuervo vulcano

3

En mi caso, deshabilité "Bloquear TCP 445" en Firewall de Windows Defender con seguridad avanzada y funcionó. Luego lo habilitó nuevamente después de configurar las unidades compartidas en Docker.

configuración del bloque TCP 445

configuración de unidades compartidas


Me acabo de dar cuenta de que personalmente agregué esta regla de firewall cuando las herramientas de piratería de la NSA se filtraron. ¡Gracias!
Danny Z

2

Tuve el mismo problema con F-secure, DeepGuard estaba bloqueando el servicio Docker. Mi solución fue:

Abra el cliente F-secure y haga clic en " Tareas "

ingrese la descripción de la imagen aquí

Elija " Permitir que se inicie un programa "

ingrese la descripción de la imagen aquí

Elija de la lista "com.docker.service" y presione " Eliminar "

ingrese la descripción de la imagen aquí

Después de eso, reinicie el cliente Docker e intente solicitar el uso compartido de archivos.

También muy buena guía de solución de problemas aquí: Error: un firewall está bloqueando el intercambio de archivos entre Windows y los contenedores


2

Tuve el mismo problema con el firewall que no me permitía compartir mi unidad C. Intenté todas las soluciones mencionadas anteriormente y nada funcionó para mí. Luego desinstalé Docker completamente de mi máquina. Control Panel\Programs\Programs and Features -> select Docker for Windows -> Uninstall
Luego, vaya al sitio web de Docker y haga clic enGet Docker for Windows (Stable)
Después de eso, pude compartir la unidad C


1
Literalmente he intentado todo lo demás, solo esta solución funcionó para mí. ¡Gracias hombre!
Charis Moutafidis

2

Para AVG Internet Security, habilitar el Modo de uso compartido de la conexión a Internet en la configuración de Firewall me ayudó.

ingrese la descripción de la imagen aquí


2

Incluso después de garantizar que la regla de firewall entrante esté configurada correctamente e incluso después de desinstalar y reinstalar el Servicio de uso compartido de archivos e impresión , no funcionó para mí.

Solución: además de eso, también tuve que hacer una tercera cosa. Tuve que desactivar la casilla de verificación Evitar conexiones entrantes cuando estoy en una red pública en la configuración de firewall específica para redes públicas. Después de hacerlo, comenzó a funcionar para mí también. Ver capturas de pantalla adjuntas al final de este mensaje.

No sé cuánto tiempo esta opción ya ha estado allí. Actualmente estoy trabajando en Win 10 Pro 1709 16299.402.


1. Abra configuraciones de firewall específicas para redes públicas Abrir configuraciones de firewall específicas para redes públicas

2. Desmarque esta casilla de verificación Desmarca esta casilla de verificación


2

Con Kaspersky Internet Security puede resolver esto fácilmente si cambia el vEthernet (DockerNAT)tipo de adaptador de red a Trusted network.

Configuración> Protección> Cortafuegos> Redes> vEthernet (DockerNAT)> Seleccione "Red de confianza"

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí


2

25 de enero de 2020

Parece que es un problema en las versiones anteriores, instalé la última versión:

Docker version 19.03.5, build 633a0ea

y funcionó para mí sin ninguna configuración.

ingrese la descripción de la imagen aquí


1

Este (enlace a continuación) parece ser la mejor solución que he encontrado hasta ahora. Es persistente en todos los reinicios. Se explica mejor aquí: https://gist.github.com/biggyspender/8b5b2ed9ff63de31045d41304e3915b3

La interfaz de red vEthernet parece crearse dinámicamente cada vez que se inicia el sistema, y ​​se crea en el grupo 'Público' en lugar de en el grupo 'Privado' (donde funciona). Las ediciones en uno de los scripts de inicio de Docker (llamados en el enlace de arriba) automatizan el comando / corrección de PowerShell señalado por David Tesar arriba ...

Tuve más suerte al agregar la función al script en lugar de editar el script y cambiar 'Internal' a 'Private'.


1

Si ninguno de los anteriores funciona, solo asegúrese de no estar conectado a una VPN . Eso es exactamente lo que me sucedió, estaba conectado a una VPN usando el cliente Cisco AnyConnect, también asegúrese de establecer un DNS estático en la configuración de la ventana acoplable.


Si necesita ambos (VPN AnyConnect y Docker), vea mi comentario stackoverflow.com/a/58406873/9064636
Averell

1

Intenté todo lo que aparece aquí y en https://github.com/docker/for-win/issues/360

Nada me funcionó.

Ejecuto mi entorno de desarrollo en un contenedor acoplable y, mientras estoy en Corporate VPN (Cisco AnyConnect), necesito montar mi unidad local en el contenedor para acceder a mis archivos de proyecto.

Aquí hay un hacker que funcionó para mí. Agregue --publish 8000:8000a su comando de ejecución de docker existente.

Entonces

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

se convertirá

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

Asegúrese de que el puerto no se use; de ​​lo contrario, recibirá este error:

El enlace para 0.0.0.0:8000 falló: el puerto ya está asignado


1

En resumen, use la versión Edge.

La versión Edge de Docker para Windows desde 2.1.5.0 (2019-11-04) tiene una nueva implementación de uso compartido de archivos sin requerir modificaciones del firewall https://docs.docker.com/docker-for-windows/edge-release-notes / /

"Nueva implementación para compartir archivos: Docker Desktop presenta una nueva implementación para compartir archivos que utiliza sockets gRPC, FUSE e Hypervisor en lugar de redes Samba, CIFS e Hyper-V. La nueva implementación ofrece un mejor rendimiento de E / S. Además, cuando se utiliza el nuevo sistema de archivos:

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.

"

Puede descargar la versión de borde: https://download.docker.com/win/edge/Docker%20Desktop%20Installer.exe

Tenga en cuenta que, a partir de ahora, la versión Edge de 2.1.7.0 se utilizará para la próxima versión estable: "Nota: Docker Desktop Edge 2.1.7.0 es el candidato de la versión para la próxima versión estable". Por lo tanto, el riesgo de usar Edge es relativamente bajo. O bien, puede esperar la próxima versión estable para evitar todos estos problemas de firewall.



0

Lo encontré bastante fácil. Solo ve a tus conexiones de red. Puede ir al Panel de control / Red y uso compartido. Encontrarás varias conexiones. Busca la conexión de Docker. Seleccione el que sea predeterminado. Después de seleccionar la red, vaya a Propiedades. En la sección de propiedades, active la opción Interruptor virtual extensible Hyper-V . Esto ayudará al contenedor virtual a usar la tarjeta de red.


0

Lo que lo hizo por mí (después de varias horas de prueba y error) fue cambiar la máscara de subred de 255.255.255.240a 255.255.255.0(que no debería cambiar nada).

Como parte de la prueba y error, hice todo lo demás que figura en el artículo, pero sin ningún éxito ... pero este último paso lo hizo ... y volver a 255.255.255.240no romper el buen ciclo.

Lo admito, no tiene sentido ... pero podría estar relacionado con un estado interno que solo se activa por el cambio de red.

De todos modos, si solo he ayudado a uno, valió la pena el esfuerzo.

Docker Desktop edge, 2.0.4.1 (34207)
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.