如何进行Google Compute Engine实例的端口转发?

9
我使用 Google Compute Engine 平台建立了一个 VPS。在该实例中,我已经建立了一个 MongoDB 数据库,并将其本地托管在默认端口 21017。我还使用基于 NodeJS 的 REST API 和 express 建立了一个服务器,监听连接的端口是 8080。
目前,我只能在内部访问 NodeJS 站点。如何将 VPS 端口 8080 暴露给外部 IP 地址,以便我可以随时访问 API?
我尝试按照此帖子的答案进行操作:Enable Access Google Compute Engine Instance Via HTTP Port。但这并没有解决我的问题。
1个回答

12

默认防火墙规则

Google Compute Engine防火墙默认会阻止所有入站流量(即传入的网络流量)到达您的虚拟机。如果您的VM是在默认网络上创建的,则允许使用一些端口,如22(ssh),3389(RDP)等。

这里记录了默认防火墙规则

开放入站端口

入站防火墙规则在这里描述

推荐的方法是创建一个防火墙规则,该规则允许端口8080到包含您选择的特定标签的VM。然后,在要允许入站8080的VM上关联此标签。

如果您使用gcloud,可以按照以下步骤执行:

# Create a new firewall rule that allows INGRESS tcp:8080 with VMs containing tag 'allow-tcp-8080'
gcloud compute firewall-rules create rule-allow-tcp-8080 --source-ranges 0.0.0.0/0 --target-tags allow-tcp-8080 --allow tcp:8080

# Add the 'allow-tcp-8080' tag to a VM named VM_NAME
gcloud compute instances add-tags VM_NAME --tags allow-tcp-8080

# If you want to list all the GCE firewall rules
gcloud compute firewall-rules list

这里是另一个Stack Overflow答案,它将指导您如何通过Cloud Console Web UI(以及gcloud)允许特定端口的流入流量到您的VM。

静态IP地址

您链接的答案仅描述如何分配静态IP地址并将其分配给您的VM。此步骤与防火墙规则无关,因此可以与之结合使用,如果您想使用静态IP地址。


如果有人想知道如何列出所有实例以查找它们的名称,请检查以下 gcloud 命令:gcloud compute instances list - Muneeb Ahmad Khurram

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接