如何移植Google Compute Engine实例?

时间:2017-07-17 05:03:13

标签: node.js mongodb port 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

但这并没有解决我的问题

1 个答案:

答案 0 :(得分:3)

Default Firewall rules

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

default firewall rules are documented here

打开入口端口

ingress firewall rules are described here

建议的方法是创建防火墙规则,允许端口8080包含您选择的特定标记的VM。然后将此标记关联到您要允许进入的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

以下是another stack overflow answer,其中介绍了如何使用Cloud Console Web UI(除gcloud之外)允许特定端口上的入口流量到您的VM。

Static IP addresses

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