如何在AWS ubuntu上启用端口5000



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

我在AWS控制台上为任何ip地址0.0.0.0/05000端口添加了一个安全组Custom TCP,但仍然无法访问它。

我必须重新启动服务器吗?还是我错过了什么?

除了允许通过安全组访问端口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上,但是,当您准备将应用程序部署到生产中时,您需要将其放在真正的web服务器后面。我建议使用nginx和uWSGI。下面是配置Flask + nginx + uWSGI的指南,这里是Flask关于这个主题的官方文档。

除了@Will的回答之外,你使用的任何Ubuntu AMI都可能默认带有限制性iptables规则。用途:

sudo iptables -L

列出所有存在的当前规则。用途:

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

在必要时打开端口。

最新更新