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!
netstat -tln | grep 8000
podría arrojar algo de luz sobre el problema. Si la dirección local del servidor es en127.0.0.1:8000
lugar de0.0.0.0:8000
, solo será accesible a través de la interfaz de bucle invertido.Respuestas:
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.
fuente
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.
fuente