为互联网打开端口 5000 不适用于谷歌云计算引擎实例

Posted

技术标签:

【中文标题】为互联网打开端口 5000 不适用于谷歌云计算引擎实例【英文标题】:Opening port 5000 for the internet is not working for google cloud compute engine instance 【发布时间】:2018-12-04 07:16:24 【问题描述】:

我有一个带有 Ubuntu 16.04 的谷歌云计算引擎实例。我有一个烧瓶应用程序在端口 5000 上运行。

我已设置防火墙规则以允许 tcp:5000 的任何主机(使用 0.0.0.0/0 过滤器)的入口流量。我跑了

sudo ufw allow 5000

控制台上的命令。

此时,我希望通过在浏览器上输入 http://external_ip:5000 来查看烧瓶应用程序。但事实并非如此。我得到“external_ip 拒绝连接”。浏览器上的错误。我做错了什么?

如果我在端口 80 上运行烧瓶应用程序,它可以工作。

由于允许内部规则在防火墙规则中处于活动状态。我想也许可以尝试从同一项目下的节点访问(因此是相同的默认网络)。但没有运气。

【问题讨论】:

使用“netstat -plant”和“nmap ”验证端口 5000 在 VM 实例上处于侦听状态,并在运行时与烧瓶应用程序关联。此外,验证您创建的允许任何主机的入口流量的防火墙规则是否适用于实例托管烧瓶应用程序。也可以查看this thread作为参考。 【参考方案1】:

我遇到了同样的问题。修复的方法是,将主机参数添加到 Flask 应用程序,如下所示。默认情况下,Flask App 设计为仅在 localhost 上工作。这已经解决了我的问题

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

【讨论】:

以上是关于为互联网打开端口 5000 不适用于谷歌云计算引擎实例的主要内容,如果未能解决你的问题,请参考以下文章

谷歌云平台计算引擎

谷歌云获取存储桶 - 适用于 cli 但不适用于 python

身份验证不适用于使用 NodeJS 进行的谷歌云 API 身份验证

谷歌云虚拟机端口打不开

谷歌云平台计算引擎 SSL 证书

如果我将 Spring Boot 应用程序部署到谷歌云,我应该使用应用引擎还是计算引擎 [重复]