【问题标题】:How to enable port 5000 on AWS ubuntu [closed]如何在 AWS ubuntu 上启用端口 5000 [关闭]
【发布时间】:2015-08-07 04:21:02
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你能发布netstat -an | grep :5000的输出吗?

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


【解决方案1】:

除了允许通过安全组访问端口 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 上,但是,当您准备将应用程序部署到生产环境时,您需要将它放在后面一个真正的网络服务器。我建议使用nginxuWSGIHere is a guide 配置Flask + nginx + uWSGI,这里是official documentation from Flask 的主题。

【讨论】:

  • 谢谢@Will 我想通过使用 nginx 和 uWSGI 来做你提到的类似事情。该文件会对我有所帮助。
  • 您的回答非常完美。再次感谢
  • 没问题,很高兴能帮到你:)
  • 谢谢威尔,搞定了。
  • 非常感谢老兄,我必须搜索 1 小时才能找到这个
【解决方案2】:

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

sudo iptables -L

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

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

必要时打开端口。

【讨论】:

  • 好点,我没想到,谢谢 :)
  • 这对我使用 ID_LIKE="rhel fedora" 的 Amazon Linux AMI 有所帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-29
  • 2013-07-18
  • 1970-01-01
  • 2020-08-29
  • 1970-01-01
  • 1970-01-01
  • 2018-05-12
相关资源
最近更新 更多