No soy el tipo más entendido con redes, pero aquí va ...
He creado una aplicación con NodeJS y me gustaría probar la aplicación en mi LAN con mi familia. La aplicación escucha en el puerto 1337
para las conexiones y yo puede tener acceso a la multa de aplicaciones a través de mi propio ordenador escribiendo localhost:1337
, 192.168.0.3:1337
o incluso http://joel-pc:1337/
en la barra de direcciones del navegador.
También estaré ejecutando Apache junto con NodeJS, y puedo acceder a esta multa escribiendo 192.168.0.3
o http://joel-pc/
en la barra de direcciones de un navegador siempre que esté conectado a la misma red.
Ahora aquí está la parte extraña; Si detengo el servicio apache, cambio mi aplicación de nodo para escuchar en el puerto 80
(http) en lugar de 1337
eso, será accesible en mi PC escribiendo localhost
, 192.168.0.3
o incluso http://joel-pc
en la barra de direcciones de mi navegador. Sin embargo, todavía no puedo acceder a NodeJS en ninguna otra PC de mi red aparte de la mía.
Intenté crear una regla de salida dentro de Windows 7 para permitir el acceso al puerto 1337, pero aún no puedo acceder a mi servidor NodeJS en ninguna otra PC que no sea la mía, incluso si está escuchando en el puerto 80. ¿Hay algo obvio? Me estoy perdiendo aquí?
fuente
Respuestas:
Lo más probable es que su aplicación de nodo esté vinculada a la dirección IP de bucle invertido en
127.0.0.1
lugar de a "todas las IP",0.0.0.0
ya que este es el comportamiento predeterminado delisten
. Especifique tanto el puerto como la IP en su llamada comoserver.listen(80, '0.0.0.0');
e intente nuevamente.fuente
localhost
funciona como una cadena, pero en otras hay que escribirlo como127.0.0.1
Obtenga su IP de red local actual y ejecute el servidor http de esta manera:
fuente
::
o0.0.0.0
)Primero, debe agregar
C:\Program Files (x86)\node
a la lista de aplicaciones confiables en su firewall.Luego, en su aplicación de nodo, puede escribir:
o:
o:
o:
o:
o:
Cada una de estas 6 combinaciones funciona en mi caso: node.js en Windows Server 2016, protegido por un proxy de la compañía.
fuente
Hacer lo siguiente funcionó para mí en una PC con Windows. Prueba esto: abrir
Luego busque node.js en la lista y haga clic en cambiar configuración> Asegúrese de que el acceso privado esté marcado y luego haga clic en Aceptar.
fuente
Encontré una buena solución para este problema. En lugar de hacer todas las configuraciones (configurar el firewall, el puerto de reenvío, etc.) utilicé localtunnel, que es una utilidad para exponer el servidor de nodo local a través de Internet. Puede usarlo para fines de desarrollo, prueba y uso compartido, simplemente no lo use para producción.
Primero debe instalar localtunnel de la siguiente manera:
Después de eso, configure su aplicación de nodo para que su servidor de nodo se ejecute en localhost. Por ej .:
Anote your_port, que en mi caso era 3000 , e inicie su servidor de nodo.
Abra otra terminal y escriba el siguiente comando para ejecutar localtunnel.
Después de esto, en la terminal obtendrá una URL que puede usar para fines de desarrollo / prueba. Esta URL estará disponible en Internet para que pueda compartirla también con otros. Mientras se esté ejecutando su localtunnel, otros pueden acceder a su servidor de nodo local.
Para obtener más opciones de configuración / ayuda, puede consultar la documentación: https://www.npmjs.com/package/localtunnel
fuente