如何在AWS ubuntu上启用端口5000

时间:2015-08-06 19:46:31

标签: python amazon-web-services amazon-ec2 flask ubuntu-14.04

我在端口5000上的AWS Ubuntu服务器上运行了一个烧瓶应用程序(烧瓶在端口5000上运行默认值)。但是当我尝试访问该端口上的服务器时,它永远不会连接。

我在端口ng-if上为Custom TCP在AWS控制台上添加了一个安全组,用于任何IP地址5000,但我仍然无法访问它。

我是否必须重启服务器?或者我错过了什么?

让我知道要提供的任何其他信息。

2 个答案:

答案 0 :(得分:22)

除了允许通过安全组访问端口5000之外,您还需要确保您的应用正在侦听可以接受来自外部的TCP连接的IP。要收听所有IP,请在您的应用中使用:

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

而不是:

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

要查看应用程序正在侦听的地址,可以运行以下命令:

netstat -an | grep :5000

进行这些更改后,您需要重新启动Flask应用程序。

我假设您只是将它用于开发和测试,因为您将其保留在端口5000上,但是,当您准备将应用程序部署到生产环境中时,您需要将其放入它背后是一个真实的网络服务器我建议将nginxuWSGI一起使用。 Here is a guide配置Flask + nginx + uWSGI,这是主题上的official documentation from Flask

答案 1 :(得分:9)

除了@ Will的答案之外,您可能会使用默认情况下使用限制性iptables规则的任何Ubuntu AMI。 使用:

sudo iptables -L

列出任何现有规则。 使用:

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

如有必要,打开端口。