如何移植 Google Compute Engine 实例?

dee*_*ndz 5 port mongodb node.js google-compute-engine

我已经使用 Google Compute Engine 平台设置了 VPS。在这个实例中,我建立了一个 MongoDB 数据库,该数据库在本地托管在默认端口 21017。我还建立了一个基于 REST API 的 NodeJS 服务器,并快速侦听端口 8080 上的连接。

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

我尝试按照这篇文章的答案进行操作:Enable Access Google Compute Engine Instance Via HTTP Port

但这并没有解决我的问题

Tux*_*ude 8

默认防火墙规则

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

默认防火墙规则是记录在这里

为入口打开端口

进入防火墙规则在此描述

推荐的方法是创建一个防火墙规则,允许8080包含您选择的特定标签的虚拟机的端口。然后将此标签关联到您希望允许进入的 VM 上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
Run Code Online (Sandbox Code Playgroud)

这是另一个堆栈溢出答案,它会引导您了解如何使用 Cloud Console Web UI(除了gcloud)允许特定端口上的入口流量进入您的虚拟机。

静态 IP 地址

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