Accediendo a una distribución WSL 2 desde su red de área local (LAN)

Accediendo a una distribución WSL 2 desde su red de área local (LAN)

Tengo una máquina con Windows 10 con WSL2 (ejecutando Ubuntu 22.04.1 LTS) y una máquina Linux en la LAN de la máquina con Windows. Puedo conectarme desde el host de Windows al servidor SSH que se ejecuta en WSL. Ahora quiero conectarme a WSL desde la máquina Linux o a la máquina Linux desde WSL. Ahora segúnesta respuestaEjecuté el siguiente comando en PowerShell en mi sistema Windows:

netsh interface portproxy add v4tov4 listenport=4000 listenaddress=0.0.0.0 connectport=4000 connectaddress=192.168.101.100

¿Dónde 192.168.101.100está la IP del WSL? Entonces, ¿cómo hago SSH desde la máquina Linux directamente a WSL? Lo intenté ssh -p 4000 windowsHost@windowsAdresspero no funciona:

#ssh -vvv -p 4000 windowsHost@windowsAdress
OpenSSH_6.7p1 Debian-5+deb8u8, OpenSSL 1.0.1t  3 May 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to windowsAdress [windowsAdress] port 4000.

... y se queda atascado ahí.

Respuesta1

En tusotra pregunta, muestra su /etc/ssh/sshd_configservidor SSH ejecutándose en el puerto predeterminado 22. Si este es el caso, deberá ajustar el reenvío de su puerto connectporta:

netsh interface portproxy add v4tov4 listenport=4000 listenaddress=0.0.0.0 connectport=22 connectaddress=192.168.101.100

Esto reenviará conexiones desde el puerto 4000 en el host de Windows al puerto 22 en el host WSL2.

Es posible que también necesite una regla de firewall, como se menciona en los comentarios. Sin embargo, tudeberíaNormalmente recibe una solicitud del Firewall de Windows Defender para permitir la conexión la primera vez que lo usa.

Tenga en cuenta que tendrá que ajustar cada connectaddressvez que reinicie (o reinicie WSL2) porque la dirección IP se asigna dinámicamente. También es una buena práctica eliminar las antiguas reglas de reenvío de puertos cada vez. Por esta razón, me resulta más fácil usar SSH para manejar el reenvío de puertos. No repetiré todos los pasos aquí, pero puedes encontrar los detalles en"Opción 2" de esta respuesta.

información relacionada