如何端口Google Compute Engine实例?

我已经使用Google Compute Engine平台build立了VPS。 在这个例子中,我已经build立了一个MongoDB数据库,这个数据库在默认的端口21017处被本地托pipe。我还build立了一个基于REST API的NodeJS服务器,并且在端口8080处使用快速监听连接。

现在,我只能在内部访问NodeJS站点。 如何将VPS端口8080暴露于外部IP地址,以便我可以在任何地方访问API?

我试着按照这个post回答: 启用访问谷歌计算引擎实例通过HTTP端口 。

但是这并没有解决我的问题

默认防火墙规则

Google Compute Engine防火墙默认阻止所有入站stream量(即传入networkingstream量)到您的虚拟机。 如果您的虚拟机是在默认networking上创build的,则只能使用22(ssh),3389(RDP)等端口。

这里logging了默认的防火墙规则 。

打开入口的端口

这里描述入口防火墙规则 。

build议的方法是创build一个防火墙规则,允许端口8080包含您select的特定标签的虚拟机。 然后将这个标签关联到您希望允许入口8080的虚拟机上。

如果你使用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 

这里是另一个堆栈溢出的答案 ,它引导您如何使用云控制台Web UI(除了gcloud ),允许特定端口上的入站stream量到您的虚拟机。

静态IP地址

您链接的答案仅描述如何分配一个静态IP地址并将其分配给您的虚拟机。 这一步独立于防火墙规则,因此如果您想要使用静态IP地址,可以组合使用。