我是网络新手,出于学习目的尝试在 VirtualBox 上设置多个 Ubuntu VM。
对于多节点 Hadoop 集群设置,
我在笔记本电脑上安装了 VirtualBox,并安装了 Ubuntu 客户虚拟机。然后我将 Ubuntu 虚拟机克隆为另一个虚拟机。然后,我通过添加带有仅主机选项的适配器#2 修改了两个虚拟机的网络,并在 VirtualBox 管理器首选项中的仅主机网络下启用了 DHCP 服务器选项。
然后,我启动了两个 Ubuntu VM,并在两个 VM 上更新了以下内容。
对于第一个虚拟机,
sudo gedit /erc/network/interfaces
添加以下行并保存,
auto eth1
iface eth1 inet static
address 192.168.56.101 <--- Used 192.168.56.102 for 2nd VM
netmask 255.255.255.0
sudo gedit /etc/hosts
在该行之后添加以下几行127.0.0.1 本地主机并删除了以下行127.0.1.1 我的笔记本电脑,
192.168.56.101 Node1
192.168.56.102 Node2
sudo gedit /etc/hostnale
-- 更新了正确的主机名。
完成这些更改后,我重新启动了两台虚拟机,但两台虚拟机上的互联网均无法使用,也无法执行 SSH。请就此问题提供建议。我想设置两台具有静态 IP 地址和互联网连接的 Ubuntu 虚拟机,并需要在它们之间执行 SSH。
答案1
首先需要了解接口的类型及其用途:
1) 仅主机:仅主机仅允许您与主机计算机通信。因此您无法使用互联网或与其他虚拟机通信。
2) NAT:NAT 允许您与其他虚拟机通信以及使用互联网。但您无法从网络上的其他 PC 访问在此虚拟机上运行的服务器。
3)Bridge:除了 NAT 提供的功能之外,使用 Bridge 您还可以从网络上的其他 PC 访问在此 VM 上运行的服务器。
希望这能有所帮助。尝试使用不同的界面进行测试,它会变得更加清晰。
答案2
这是不完整的提示场景,可能需要一些实验才能使其发挥作用,但理论上它是可以起作用的。
在 Virtual Box 中,您将拥有一个 NAT-LAN 网络适配器。将此网络驱动程序安装在两个虚拟机上。然后为“集群”服务器的新“内部”网络制定 IP 计划。
假设你的 PC 的 IP 范围是 192.168.56.x,你的虚拟盒子可以有 10.0.0.x 地址(参见私有 IPv4 范围)
在这种设置中,您的虚拟盒与您的内部网络分离(因为它们成为您的 LAN 的子网)。
您将能够访问互联网(下载、通过 NAT 系统访问网站),您还能够从另一个 VM(ftp/ssh/ports)看到一个 VM,但您将无法从内部网络访问这些机器(您局域网中的其他 PC,甚至您也无法通过使用托管 PC OS 上的 SSH 通过网络访问这些机器)。原因是 - 它们位于两个不同的网络上。
这个问题应该通过设置位于 192.168.56.x 和 10.0.0.x 网络上的软件路由器来解决(这里无法提供确切的解决方案),但我相信第三个虚拟机有两个虚拟网卡(针对这两个网络配置)和 IPfw 或类似功能的软件路由器应该可以解决这个问题。请注意,软件路由器的设置本身就需要大量工作。
您的一台虚拟机也可能运行带有多个虚拟网卡(一些在 nat 上,一些位于每个网络中)的软件路由器。
警告:您可能需要足够的 RAM 和更快的 PC 才能使此系统顺利运行(因为您可能同时运行 4 台主机)。研究这里提到的概念将帮助您了解有关部署的更多信息。