如何让在不同计算机上运行的 Virtual Box VM 通过 LAN 进行通信?

如何让在不同计算机上运行的 Virtual Box VM 通过 LAN 进行通信?

过去两天我一直在尝试搭建 Hadoop 集群。我想要做的就是让两个正在运行的 Lubuntu VM(每个都在不同的计算机上)能够互相通信,这样其中一个可以作为主节点,另一个可以作为 map-reduce 的从节点。

我试过桥接模式,也试过桥接模式 + 仅主机模式,还试过介于两者之间的各种模式。我现在真的迷路了。我设法通过修改一些网络文件(忘记了它的名字,netapply 之类的)让它们拥有静态 IP,但我无法让它们通过 SSH 进行通信。

我读到的内容让我想到要将 VirtualBox 的仅主机 DHCP 设置为与路由器的 DHCP 上的设置相匹配。但我开始认为我肯定搞错了。

有人能告诉我最好的解决方法吗?好像之前没人这样做过,因为我找不到合适的指南。

答案1

为了让两台主机通信,它们之间必须有路由。这可以是0.0.0.0同一子网上机器的“随便什么”路由,也可以是通过默认网关,或者通过特定网关到特定网络的路由。

使用 VirtualBox,您有几种基本的网络类型。NAT 和 NAT 网络非常相似,因为虚拟机位于主机甚至看不到的子网中,但流量通过该主机路由。您可以通过在 VBox 设置中转发特定端口来让主机与虚拟机通信,但这有点麻烦。

仅限内部,虚拟机可以互相看到但看不到主机,主机也看不到它们。也没有 DHCP 服务,因此您需要自行管理 IP 或为 DCHP 设置某些内容。

仅主机与仅内部类似,但主机也会获得一个位于同一内部网络上的虚拟 NIC。如果选择此选项,则可以将主机配置为单向或双向路由,以便内部网络具有 LAN 和互联网访问权限。

桥接网络就是您想要的。使用桥接,您可以在主机上指定一个物理适配器,而虚拟机适配器将“连接”到该适配器。这意味着它将与您的 LAN 位于同一子网中,应该从执行此操作的任何设备获取 DHCP,等等。请注意,某些托管网络(例如学校和公司)会在单个交换机端口上阻止多个 MAC 并断开您的连接。

所以……做你想做的事。如果两个物理主机可以相互通信,并且你不在阻止单个端口上的第二/第三/等 MAC 的 LAN 上,那么你就可以开始了。只需将每个虚拟机放在主机上的桥接连接上,桥接到连接到 LAN 的主机上的物理适配器上。

相关内容