如何在 AWS 上启用端口 5000 ubuntu

How to enable port 5000 on AWS ubuntu

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

我在 AWS 控制台上为任何 IP 地址 0.0.0.0/0 在端口 5000 上添加了一个安全组 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 上,但是,当您准备好将应用程序部署到生产环境时,您需要把它放在一个真正的网络服务器后面。我建议在该主题上使用 nginx with uWSGI. Here is a guide to configuring Flask + nginx + uWSGI, and here is the official documentation from Flask

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

sudo iptables -L

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

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

必要时打开端口。