Configuraciones de Windows:
- Ejecutando un servidor web de muestra con el puerto 5000 abierto (ver imagen 1)
- Firewall de Windows completamente cerrado
WSL2:
- Puede acceder exitosamente a Internet y hacer ping a las ventanas con la IP del host o
$(hostname).local
, pero no puedecurl http://172.18.16.1:5000
sandowner@ENIGMATIC-MACHINE:~$ hostip=$(ip route | grep default | awk '{print $3}')
sandowner@ENIGMATIC-MACHINE:~$ echo $hostip
172.18.16.1
sandowner@ENIGMATIC-MACHINE:~$ ping 172.18.16.1
PING 172.18.16.1 (172.18.16.1) 56(84) bytes of data.
64 bytes from 172.18.16.1: icmp_seq=1 ttl=128 time=0.514 ms
64 bytes from 172.18.16.1: icmp_seq=2 ttl=128 time=0.690 ms
^C
sandowner@ENIGMATIC-MACHINE:~$ ping $(hostname).local
PING ENIGMATIC-MACHINE (172.18.16.1) 56(84) bytes of data.
64 bytes from ENIGMATIC-MACHINE (172.18.16.1): icmp_seq=1 ttl=128 time=0.355 ms
64 bytes from ENIGMATIC-MACHINE (172.18.16.1): icmp_seq=2 ttl=128 time=0.729 ms
^C
sandowner@ENIGMATIC-MACHINE:~$ curl http://172.18.16.1:5000
^C (will timeout)
- Tampoco se puede acceder al puerto 5000 del host desde un navegador WSL2 y terminará con
ERR_CONNECTION_TIMED_OUT
(ver imagen 2)
¡Cualquier ayuda será apreciada! ¡Gracias!
Respuesta1
Cuando quieras conectartede WSL 2 al anfitrión, no existen mecanismos especiales. WSL 2 se ejecuta en una máquina virtual y es un host remoto en lo que respecta a la pila de redes de Windows. Eso significa:
- No puede acceder a aplicaciones vinculadas a
localhost
, ninguna IP en127.0.0.0/8
o::1
- El firewall debe permitir la conexión entrante.
Desafortunadamente, la red virtual WSL 2 tiene direcciones dinámicas totalmente impredecibles, por lo que escuchar solo allí significa que tendrá que actualizar la configuración del servicio de red todo el tiempo. En su lugar , es más fácil vincularse a 0.0.0.0
o ::
(“todas las interfaces”). Esto significa que todos podrán conectarse, así que asegúrese de conocer las consecuencias si se encuentra en una red que no es de confianza.