Cómo habilitar el puerto 5000 en AWS ubuntu

Tengo una aplicación de matraz que se ejecuta en el servidor de AWS Ubuntu en el puerto 5000 (el matraz se ejecuta de manera predeterminada en el puerto 5000). Pero cuando bash acceder al servidor en ese puerto, nunca se conecta.

0.0.0.0/0 un grupo de seguridad en la consola de AWS como Custom TCP en el puerto 5000 para cualquier dirección IP 0.0.0.0/0 , pero aún no puedo acceder a ella.

¿Tengo que reiniciar el servidor? ¿O me estoy perdiendo algo?

Déjame saber cualquier información adicional para proporcionar.

Además de permitir el acceso al puerto 5000 a través del Grupo de seguridad, también debe asegurarse de que su aplicación está escuchando en una IP que puede aceptar conexiones TCP desde el exterior. Para escuchar en todas las direcciones IP, en su aplicación, use:

 if __name__ == '__main__': app.run(host='0.0.0.0', debug = False) 

En lugar de:

 if __name__ == '__main__': app.run(host='127.0.0.1', debug = False) 

Para ver en qué dirección está escuchando su aplicación, puede ejecutar este comando:

 netstat -an | grep :5000 

Después de realizar estos cambios, deseará reiniciar su aplicación Flask.

Supongo que solo está usando esto para el desarrollo y las pruebas, ya que lo está manteniendo en el puerto 5000 , pero cuando esté listo para implementar su aplicación en producción, debe ponerla detrás de un servidor web real. Recomendaría utilizar nginx con uWSGI . Aquí hay una guía para configurar Flask + nginx + uWSGI, y aquí está la documentación oficial de Flask sobre el tema.

Además de la respuesta de @Will, es posible que la AMI de Ubuntu que esté utilizando venga con reglas iptables restrictivas de forma predeterminada. Utilizar:

 sudo iptables -L 

para enumerar las reglas actuales que existen. Utilizar:

 sudo iptables -A INPUT -p tcp --dport 5000 -j ACCEPT 

para abrir el puerto si es necesario.