我有一个在Google Cloud Compute Engine上运行的虚拟机实例 - 一个运行Ubuntu 17.04的可抢占的免费层CPU。最终目标是将其连接到在我的本地计算机上运行的MongoDB,即2015 Macbook Pro(OS 10.12.6)。但首先,我一直在尝试确保VM可以通过ping
到达我的Mac。
ping <VM's external IP>
。ping
我的Mac从同一个无线网络上的另一台Mac工作。ping <Mac's IP>
不起作用。我已禁用Mac的防火墙。我还配置了VM的防火墙规则以允许所有入站和出站流量无效:
ingress firewall rules,egress firewall rules
如何让这个实例成功ping我的Mac?
答案 0 :(得分:0)
您的Mac的IP地址是以10.
,192.168.
还是172.16.
和172.32.
之间开头的?这些private addresses只能在您的Mac本地网络中访问,这是(部分)GCE无法访问您的VM的原因。
这是非常常见的配置的一部分。 ISP仅为您的家庭或企业分配一个(或少量)IP地址。网络上的路由器执行NAT以在本地网络上的计算机之间共享该IP地址,而不是为自己使用私有IP地址。由于路由器不知道如何处理入站MongoDB流量,因此会阻止它。
通常可以在路由器设置中找到两种常见方法:
您可能在路由器上也有防火墙。如果您使用DMZ或端口转发,则必须确保防火墙也允许流量通过。
那就是说,我不确定这是明智之举。打开您的本地网络到互联网可能会产生重大的安全问题,而且它可能更加昂贵(免费等级仅提供1GB出口/月,您的数据流量可能超过此值)。
实际上,在GCE中运行MongoDB几乎可以肯定是一个更好的选择。