我已使用Google Compute Engine平台设置了VPS。在这种情况下,我已经建立了一个MongoDB数据库,该数据库在本地托管在默认端口21017上。我还设置了一个基于REST API的NodeJS服务器,通过端口8080的连接快速监听。
现在,我只能在内部访问NodeJS网站。如何将VPS端口8080暴露给外部IP地址,以便我可以在任何地方访问API?
我尝试按照这篇文章的回答:Enable Access Google Compute Engine Instance Via HTTP Port。
但这并没有解决我的问题
答案 0 :(得分:3)
默认情况下,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。
您链接的答案仅介绍如何分配静态IP地址并将其分配给VM。此步骤独立于防火墙规则,因此如果您要使用静态IP地址,则可以组合使用。