如何启用对托管在 GCP VM 实例上的 Web 服务的访问

How to enable access to a web service hosted on GCP VM instance

我构建了一个 Web 应用程序,它使用 .netcore(VS 中的默认应用程序)在端口 5000 上运行和侦听。 我在 GCP 上创建了一个 VM 实例,并在配置中允许了 http 和 https 流量。 我 运行 应用程序,并使用外部 ip(我成功 ping 通了)从浏览器访问它: http://:5000

但是我没有得到任何回应,这应该已经打开了网站。 我添加了防火墙规则以允许流量,但仍然没有帮助: 我相信很多人都遇到过这个,有帮助吗?

防火墙正在丢弃您的流量。 您应该打开端口 5000,而不是 http(端口 80)或 https(端口 443)。

我和@Iñigo的看法一样,可能是防火墙问题

您可以使用以下命令创建规则:

gcloud compute --project=my-project firewall-rules create rule-for-netcore --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:5000 --source-ranges=0.0.0.0/0

输出应该是这样的:

Creating firewall...⠹Created [https://www.googleapis.com/compute/v1/projects/my-project...l/firewalls/rule-for-netcore].
Creating firewall...done.
NAME              NETWORK  DIRECTION  PRIORITY  ALLOW     DENY  DISABLED
rule-for-netcore  default  INGRESS    1000      tcp:5000        False

编辑 1

您还需要在 windows 防火墙中打开端口:

  1. 开始菜单中,单击控制面板,单击系统和安全,然后然后点击Windows防火墙。控制面板没有配置'Category'查看,你只需要selectWindows防火墙.
  2. 单击高级设置
  3. 单击入站规则
  4. 操作中单击新规则 window。

  1. 单击端口规则类型
  2. 单击“下一步”。
  3. 协议和端口 页面上单击 TCP。
  4. Select 特定本地端口 并键入类似 5000-5010 的值(这只是您需要添加所需端口的示例)
  5. 单击“下一步”。
  6. 在“操作”页面上单击允许连接
  7. 单击“下一步”。
  8. 配置文件 页面上单击适合您的环境的选项。
  9. 单击“下一步”。
  10. 在“名称”页面上输入一个名称,例如“Open port for test”
  11. 单击“完成”。
  12. 重新启动 实例。

最后你会看到这样的规则:

您可以参考以下link获取更多信息