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

时间:2020-08-28 11:58:32

标签: web-services asp.net-core google-cloud-platform google-compute-engine

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

但是我没有回应,这应该已经打开了网站。 我添加了防火墙规则以允许流量,但仍然无济于事: enter image description here 我确定有很多人遇到这个问题,有帮助吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我和@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防火墙 。未为“类别”视图配置“控制面板”,您只需要选择 Windows防火墙
  2. 点击高级设置
  3. 点击入站规则
  4. 操作窗口中点击新规则

enter image description here

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

最后,您会看到如下规则: enter image description here

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