2017-09-08 34 views
0

我有一台运行在Google Cloud Compute Engine上的虚拟机实例 - 一个可抢占的运行Ubuntu 17.04的免费层CPU。最终目标是将其连接到本地计算机上运行的MongoDB,即2015 Macbook Pro(OS 10.12.6)。但首先,我一直在努力确保虚拟机可以通过ping访问我的Mac。Google云虚拟实例无法ping通我的Mac(已选中的防火墙)

  • 从我的Mac上运行ping <VM's external IP>
  • ping从同一个wifi网络上的另一台Mac上运行我的Mac。
  • 从VM通过浏览器终端运行ping <Mac's IP>不是工作。

我禁用了我的Mac防火墙。我也配置了我的虚拟机的防火墙规则,以允许所有入站和出站流量,但无济于事:

ingress firewall rulesegress firewall rules

我怎么可能会得到这种情况下成功地ping我的Mac?

回答

0

您的Mac的IP地址是否以10.,192.168.172.16.172.32.开头?这些是private addresses只能在Mac的本地网络中访问,这是(部分)GCE无法访问您的虚拟机的原因。

这是一个非常常见的配置的一部分。 ISP只为您的家庭或企业分配一个(或少量)IP地址。网络上的路由器执行NAT以在本地网络上的计算机之间共享该IP地址,而私有IP地址则用于自己。由于路由器不知道如何处理入站MongoDB流量,因此会阻止它。

周围有此两种常用的方法是,通常在路由器的设置中发现:

  1. “端口转发”,你告诉流量在1234端口上的所有流量转发到你的Mac。这可以让MongoDB工作,但不能ping。
  2. 如果您有完整的额外IP地址,“DMZ”,您的路由器会将整个额外IP直接转发给您的实例。如果您只有一个IP地址,则该选项无法使用,因为需要为Wifi上的其他设备共享该IP。

您可能在路由器上也有防火墙。如果您使用DMZ或端口转发,则必须确保防火墙也允许流量通过。


这就是说,我不确定这是一个明智的做法。开放本地网络到互联网可能会造成重大的安全问题,另外它可能不可靠更昂贵(免费层仅提供1GB出口/月,您的数据库流量可能会超过此数)。

实际上,对于GCE中的实例运行MongoDB几乎肯定是您在各方面的更好选择。

相关问题