首页 文章

Google Cloud 虚拟实例无法ping我的Mac(已检查防火墙)

提问于
浏览
0

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

  • 从我的Mac上运行 ping <VM's external IP> .

  • ping 我的Mac从同一个wifi网络上的另一台Mac工作 .

  • 通过浏览器终端 does not 工作从VM运行 ping <Mac's IP> .

我已经禁用了Mac的防火墙 . 我还配置了我的VM的防火墙规则以允许所有入站和出站流量,但无济于事:

ingress firewall rulesegress firewall rules

我怎样才能让这个实例成功ping我的Mac?

1 回答

  • 0

    您的Mac的IP地址是以 10.192.168. 还是 172.16.172.32. 之间的?开头的?这些是private addresses只能在Mac的本地网络中访问,这是(部分)GCE无法访问您的VM的原因 .

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

    有两种常见的方法可以在路由器设置中找到:

    • "port forwarding"您告诉流量将端口1234上的所有流量转发到您的Mac . 这可以使MongoDB工作,但不能ping .

    • 如果您有完整的额外IP地址,"DMZ"您的路由器直接将整个额外的IP转发到您的实例 . 如果您只有一个IP地址,则这不是一个选项,因为需要为Wifi上的其他设备共享IP .

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


    也就是说,我不确定这是否合理 . 打开您的本地网络到互联网可能会产生重大的安全问题,而且它可能更加昂贵(免费等级仅提供1GB出口/月,您的数据流量可能超过此值) .

    实际上,在GCE内的实例上运行MongoDB几乎肯定是一个更好的选择 .

相关问题