Puerto de escucha en localhost: 8000 pero no en ip: 8000

9

Hola, estoy ejecutando una aplicación web en el puerto 8000. Cuando accedo desde el servidor local localhost: 8000, responde bien, 127.0.0.1:8000 también funciona, pero 192.168.1.7:8000 no funciona. 192.168.1.7 es la ip de mi servidor.

Además, si intento ir a otra aplicación web que se ejecuta en el puerto 80, funciona 192.168.1.7

Habilité el firewall de ufw y configuré el permiso predeterminado de ufw. Estoy usando el servidor ubuntu 12.04

¿Alguna sugerencia sobre por qué no puedo acceder a mi aplicación en el puerto 8000 usando la dirección IP: 8000?

¡Gracias por adelantado!

Marioneta
fuente
1
La aplicación probablemente esté escuchando la dirección localhost (127.0.0.1) en lugar de todas las direcciones locales (0.0.0.0). Sin embargo, no ha proporcionado suficiente información en su aplicación para que las personas lo ayuden a solucionar esto.
James Henstridge
Mi aplicación que se ejecuta en el puerto 8000 es solo un sitio web. Quizás esta copia / pegado de netstat revelará más sobre mi red:
Marionette
3
Bueno, correr netstat -tln | grep 8000podría arrojar algo de luz sobre el problema. Si la dirección local del servidor es en 127.0.0.1:8000lugar de 0.0.0.0:8000, solo será accesible a través de la interfaz de bucle invertido.
James Henstridge
revise sus iptables

Respuestas:

5

Como señala @JamesHenstridge, el comportamiento que está observando no se debe a que Ubuntu bloquee su aplicación en algunas IP, sino que su aplicación se vincula explícitamente solo a la interfaz de bucle de retorno local (127.xxx). Al menos si no instaló y configuró un firewall para bloquear específicamente ese puerto.

Debe consultar la documentación de su aplicación para ver si hay una configuración para que escuche en otras (o en todas) las interfaces.

Sergey
fuente
¿También está familiarizado con el reenvío de puertos en su enrutador? Si va a conectarse desde Internet en el puerto 8000, debe reenviar el puerto 8000 a la máquina ip.
wlraider70
0

En un archivo de configuración de su aplicación, debe configurar su aplicación para escuchar un IP externo: su puerto. Significa que hay un archivo de configuración en el que puede encontrar una directiva que le dice a la aplicación que escuche 127.0.0.1:xxxx o localhost: xxxx. Esta es la IP a cambiar con una IP interna (por ejemplo: 192.168.1.40) o una IP externa

A veces, la IP localhost debe reemplazarse por 0.0.0.0:xxxx, lo que significa que la aplicación debe responder a una solicitud de cualquier IP.

Iptables también puede ayudar a reenviar paquetes desde una IP interna a una IP externa.

Nicolas Guérinet
fuente