【问题标题】:Can't access Flask app running on 0.0.0.0 on GCE无法访问 GCE 上在 0.0.0.0 上运行的 Flask 应用程序
【发布时间】:2018-08-31 01:42:45
【问题描述】:

我在主机 '0.0.0.0' 和端口 7000 为我的本地 google 计算实例设置防火墙规则。

我执行了python server.py,它在https://0.0.0.0:7000上运行 但是当我在本地浏览器上输入https://external-ip:7000 时,它不起作用。

那么我怎样才能在谷歌计算引擎上运行flask并在我的本地计算机浏览器中打开呢?

server.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
   return 'Hello World’

if __name__ == '__main__':
   app.run(debug=1,port=7000,host='0.0.0.0')

【问题讨论】:

    标签: python flask google-compute-engine


    【解决方案1】:

    一些事情:

    检查您的 VPC 防火墙:

    https://cloud.google.com/vpc/docs/firewalls

    在您的终端中,通过发出以下命令查看连接是否在该主机上本地工作:

    telnet localhost 7000
    

    如果它连接了,那么它要么是防火墙,要么是下面的。

    如果您在 https 上运行,您可能需要以下内容:

    context = ('host.crt', 'host.key')
    app.run(host='0.0.0.0',port='7000', ssl_context=context)
    

    最后,它是 https:// 而不是 \

    【讨论】:

    • 当我在本地主机上尝试 telnet 时,它说“正在连接到 localhost...无法在端口 7000 上打开与主机的连接:连接失败”
    • 很可能是iptables相关的,需要添加一个iptables规则来允许该端口上的流量。 sudo iptables -A INPUT -p tcp --dport 7000 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPTsudo iptables -A OUTPUT -p tcp --sport 7000 -m conntrack --ctstate ESTABLISHED -j ACCEPT
    猜你喜欢
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2013-02-01
    相关资源
    最近更新 更多