WSL 2 requiere un trabajo extra en comparación con WSL 1.
-
Permitir el puerto(s) requerido(s) a través del firewall.
1.1 Lanzamiento Windows Defender Firewall with Advanced Security
1.2 En el panel izquierdo seleccione Incoming Rules
.
1.3 En el panel derecho haga clic en New Rule
.
1.4 Para el tipo de regla seleccione Port
. Siguiente.
1.5 Seleccionar TCP
y Specific local ports
. Introduzca el puerto, una lista de puertos separada por comas o un rango de puertos. Siguiente.
1.6 Seleccione Allow connection
. Siguiente.
1.7 Compruebe sólo el Public
perfil. Siguiente.
1.8 Introduzca un nombre para la regla, por ejemplo WSL
. Hecho.
-
Averigüe la dirección IP de WSL desde su interior:
grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'
Es la dirección IPv4 de la interfaz de red vEthernet (WSL)
.
-
Pruebe la conexión con el host de Windows utilizando curl
o telnet
:
3.1 curl ip.from.step.2:port
He utilizado este procedimiento para conectarme a un servidor Oracle y a un servidor X que funciona en Windows.
Actualización : Dado que la dirección IP de WSL cambiará cada vez que se reinicie Windows, es conveniente obtenerla automáticamente y actualizar el hosts
archivo.
En WSL:
-
ejecutar cat /etc/hosts
para averiguar el nombre del host de Windows.
-
Añade el siguiente código a ~/.profile
:
HOST=<WINDOWS_HOSTNAME>
IP_HOST=$(grep -m 1 $HOST /etc/hosts)
OLD_IP=$(echo "$IP_HOST" | awk '{print $1}')
NEW_IP=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}')
if [ "$NEW_IP" != "$OLD_IP" ]; then
echo "Updating IP Address-hostname mapping"
sudo sed -i "s|$IP_HOST|$NEW_IP\t$HOST|" /etc/hosts
echo "$HOST has the IP Address $NEW_IP"
fi