Buenas!, te traigo nueva información sobre temática del genial sistema operativo Windows.
Dale!
Windows 10 Subsistema de Windows para Linux (WSL) es genial. Lo estoy usando como mi principal entorno de desarrollo desde hace algún tiempo. Con la actualización más reciente de Creators Update, Microsoft está realmente esforzándose por recuperar a algunos desarrolladores web que dejaron su ecosistema de Windows hace décadas. Como dijo Microsoft, uno de los principales beneficios de WSL está dirigido a la comunidad de desarrolladores web en constante crecimiento. WSL ofrece cadenas de herramientas de construcción nativas sin desagradables soluciones de pirateo para Windows, lo que es una gran ventaja. La mayoría de las pilas modernas como Ruby on Rails y Node.js funcionan bastante bien en WSL (Actualización de creadores al menos).
Si ya ha utilizado Bash en Ubuntu en Windows (también conocido como WSL) para hacer desarrollo web, notará que solo se puede acceder a cualquier instancia de servidor que se ejecute dentro de Bash de forma predeterminada a través de localhost:portnumber. Estaría bien si todo lo que necesita es acceder a la aplicación web a través del solo anfitrión método, es decir, vaya a la barra de direcciones del navegador e ingrese http: // localhost: 8080. Si necesita acceder a la instancia del servidor WSL fuera del host Windows 10, descubrirá que no es accesible.
Esto no se debe a la falta de funciones o soporte del Subsistema de Windows para Linux, sino a Windows 10, el host no sabe qué puerto abrir para acceso externo. A diferencia de algunas aplicaciones que solicitan permisos de firewall cuando se ejecuta la aplicación por primera vez, WSL no solicita al host que permita que se abra un puerto específico cuando inicia un servidor de nodo o rieles dentro de Ubuntu en Windows.
Quizás, en la versión futura, Microsoft permitiría que WSL envíe una señal al host cuando un puerto específico comience a escuchar dentro de WSL. No obstante, aquí se explica cómo permitir que su servidor sea accesible externamente fuera de la máquina host de Windows 10.
Ir a Firewall de Windows con seguridad avanzada
En Reglas de entrada, agregue un Nueva regla

Establecer el tipo de regla como Puerto.

Entrar a Puerto local específico su servidor se ejecuta bajo WSL, en este caso, tengo el puerto 3000 ejecutando mi servidor de nodo.

En la pestaña Acción, asegúrese de “Permitir la conexión”

Si no está seguro de qué perfil, seleccione todos para aplicar esta regla.

Dé a esta regla un nombre descriptivo para que sea fácilmente identificable en la configuración del Firewall.

Una vez creada la regla, podrá encontrarla en la siguiente tabla.

Ahora intente acceder al servidor alojado dentro de WSL fuera de la máquina host con Windows 10 a través del nombre de host o la dirección IP. Debería poder cargar la página web sin ningún problema.

Así es como se accede a un servidor que se ejecuta dentro de WSL fuera de la máquina host con Windows 10. Por supuesto, cuando cambia el puerto del servidor de desarrollo, debe actualizar la regla o crear una nueva regla para adaptarse al nuevo puerto.
Actualización del 7 de junio de 2020:
Si está ejecutando WSL 2, puede encontrar el adaptador hyper-v en los adaptadores de red, y todo lo que necesita es configurar un reenvío de puertos para reenviar el puerto como se muestra a continuación.
netsh interface portproxy add v4tov4 listenport=3000 listenaddress=0.0.0.0 connectport=3000 connectaddress=172.18.28.x
Para obtener información adicional, consulte https://github.com/microsoft/WSL/issues/4150