我在 VMWare 上配置并运行了 2 台虚拟机(Ubuntu 和 Kali)。这两台机器都连接在 VMWare 上配置了一个网络接口,即 NAT 接口。
根据我对 NAT 接口的发现,主机 IP 和互联网应该对虚拟机可见,事实确实如此。我遇到的问题是,主机 IP 也可以 ping 这些虚拟机的 IP,也可以直接通过虚拟机的 IP 地址访问部署在这些机器上的应用程序。
NAT 接口不应该出现这种情况。主机应该只能通过端口转发访问这些虚拟机。也就是说,配置了端口转发。要访问其中一个虚拟机,我宁愿使用主机的 IP 以及已应用端口转发规则的端口,这样此路由上的流量将被转发到所需端口上的指定虚拟机。
如果我的理解有误,我需要澄清为什么会发生这种情况,或者更多地了解 VMWare 如何在 NAT 接口上处理虚拟机。
还有一点需要注意的是,这些机器的 IP 都在 192.168.xx 范围内,而不是 NAT 接口上的机器默认使用的 10.0.xx 范围(据我所知)。
我能够直接从主机命令行 ping 虚拟机的私有 IP。我没想到 ping 会成功,因为虚拟机都在 NAT 接口上。
此外,虚拟机之间也可以相互通信,也就是说,我可以从一个虚拟机的 IP 成功 ping 通另一个虚拟机的 IP,而 NAT 则不会出现这种情况。