【问题标题】:Google cloud instance not accessible by External IP外部 IP 无法访问 Google 云实例
【发布时间】:2021-04-18 18:05:21
【问题描述】:

我有一个谷歌云虚拟机实例,它基本上是由市场服务“Bitnami 认证的 Elasticsearch”创建的。我无法通过外部 IP 公开访问它。我也允许来自防火墙的 HTTP 和 HTTPS 流量。

我可以通过 ssh 连接它,但不能通过 HTTP。经过一番研究,我知道我的实例只能从 localhost(127.0.0.1) 访问,但我不知道如何使它可以公开访问。

我运行了netstat -antup 命令,结果如下。从中我只知道了 localhost(127.0.0.1):

我有另一个运行良好的实例。我可以通过 HTTP 访问,但不是这个,不知道为什么。

工作正常的实例,我将它与这个进行了比较,我能弄清楚的唯一区别是正确的实例正在侦听所有允许的端口 9200。截图如下:

PS:我的应用程序在端口 9200 上运行(我可以通过 ssh 登录并能够从服务器本身运行 curl)

我创建了一个防火墙规则来为所有人启用端口 9200。如下:

以下是适用于我的实例的防火墙规则:

我也在这里检查了所有类似的问题,但无法解决这个问题。任何帮助,将不胜感激。如果需要这方面的更多信息,我会提供。

提前致谢。

【问题讨论】:

    标签: google-cloud-platform


    【解决方案1】:

    ssh 是 22 端口。如果你想通过 http 和 https 访问你必须允许端口 80 和 443 (tcp)

    请注意,127.0.0.1 不是您的外部 IP 地址,您必须reserve a static external ip

    此外,如果您的实例已重新启动,则会分配一个新的临时 ip:

    仅在虚拟机停止并重新启动或实例终止之前,临时外部 IP 地址仍会附加到虚拟机实例。如果实例停止,则分配给该实例的任何临时外部 IP 地址都会释放回通用 Compute Engine 池,并可供其他项目使用。当停止的实例再次启动时,会为该实例分配一个新的临时外部 IP 地址。

    【讨论】:

    • 是的,127.0.0.1 用于本地主机。我已经允许来自防火墙的 HTTP 和 HTTPS,不是一样吗?您的意思是创建允许 80 和 443 的新防火墙规则吗?对于外部 IP,我有临时外部 IP。
    • gcloud 计算地址列表的输出是什么
    • 我是 GCP 新手。我确实在云外壳中运行了“gcloud 计算地址列表”命令并得到了“列出的 0 个项目”。作为回应。这是针对有两个实例的整个项目。其中只有一个实例存在此问题。
    • 感谢您的链接。但它说谷歌计算地址列表只计算静态 IP 地址,而不是临时外部 IP,这在我的情况下是正确的。我没有绑定到项目的任何静态 IP。我只有短暂的外部 IP。也许在未来,我有一个静态 IP,但现在,我想坚持使用临时 IP。
    【解决方案2】:

    因此,为了使用外部 IP 访问虚拟机,您需要具备以下条件

    1. 附加到虚拟机的外部 IP,它可以是临时 IP 或静态 IP。如下所示

    您可以通过选择下面屏幕截图中突出显示的 IP 将外部 IP 附加到 VM

    1. 假设应用程序已在此 VM 的 9023 端口上本地运行,您需要在防火墙规则中允许端口 9023 上的 tcp 流量到目标 VM。在规则中允许流量后,它将如下所示 -

    然后您应该能够访问http://<externalIP>:9023/,例如http://35.184.142.145:9023/

    我只是为在端口 9023 上运行的 nginx 服务器执行此操作,对于在任何端口上运行的任何应用程序都可以这样做。

    【讨论】:

    • 上述几点都完成了,但仍然没有运气。我使用防火墙规则的屏幕截图编辑了我的问题,以启用我的应用程序的端口 9200。
    • 您是否能够使用来自云外壳的 VM 的 InternalIP 卷曲应用程序。即 http://:9200 ?
    • 没有。我无法从云外壳访问它,它显示“连接超时”。但我可以通过 ssh 登录访问该应用程序。 '卷曲-XGET 127.0.0.1:9200'。我认为问题在于该应用程序只能从 localhost 访问,而不是公开访问。
    • 感谢@saurab_garg 的宝贵时间和帮助。我非常感谢。我能够解决这个问题。问题出在我的应用程序的弹性搜索上,而不是虚拟机实例上。我的应用程序绑定到 127.0.0.1,它是本地主机而不是所有网络接口。再次感谢您的宝贵时间。
    猜你喜欢
    • 1970-01-01
    • 2016-09-09
    • 1970-01-01
    • 2014-08-22
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    相关资源
    最近更新 更多