如何端口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地址,可以组合使用。