两个并行运行的 VirtualBox VM 分配相同的 IP

两个并行运行的 VirtualBox VM 分配相同的 IP

我的 VirtualBox 中有一台虚拟机,我想将其用作模板/映像,因此我克隆了它。然后我同时启动了原始虚拟机和克隆虚拟机(以模拟我正在处理的某项工作的服务器集群),但是,两个实例都分配了相同的 IP 地址。这可能是我们的 DHCP 中的一个错误吗?我认为 VirtualBox 使用它来获取 IP 地址?或者可能是我设置虚拟机的方式出了问题?无论如何,我最终想解决这个问题,以便我可以同时使用同一映像的两个虚拟机。

答案1

您可能还需要更改machine-id

适用于 Ubuntu(来宾虚拟机):

sudo rm -f /etc/machine-id
sudo dbus-uuidgen --ensure=/etc/machine-id
sudo rm /var/lib/dbus/machine-id
sudo dbus-uuidgen --ensure
reboot

您也可以在 Ubuntunetplan配置文件中尝试此参数:

      dhcp4: yes
      dhcp-identifier: mac

答案2

这被称为 IP 冲突,可能会给网络带来严重问题。

您可以重新初始化克隆虚拟机的 MAC 地址;这仅意味着生成一个新的随机 MAC 地址。在克隆的虚拟机上,单击“设置”>>“网络”>>“高级”,然后单击两个圆形箭头以生成新的 MAC 地址。您的虚拟机需要关闭。启动时,您的 DHCP 服务器应为虚拟机分配不同的 IP 地址。

另请注意,当您克隆您的虚拟机时,您应该看到一个带有“重新初始化 MAC”字样的复选框,它会克隆虚拟机并生成一个新的 MAC,而不是克隆它。

如果您好奇的话,克隆虚拟机通常用于对虚拟机进行完整备份,在这种情况下,您需要 MAC 和 IP 相同,以防您必须使用备份。对于您克隆虚拟机以构建集群的情况,您需要在每次克隆时重新初始化 MAC。在此处输入图片描述

更新 1 回复您 2013 年 10 月 8 日的评论。

确保 IP 地址不是静态设置的。您在问题中提到,虚拟机应该从 DHCP 获取其 IP。如果是这种情况,配置应该如下所示。对于基于 Debian 的系统,它将位于 /etc/network/interfaces

auto eth0
iface eth0 inet dhcp

对于基于 Redhat 的系统,网络配置位于 /etc/sysconfig/network-scripts/ifcfg-eth0

您的第二条评论提到缺少 eth0。您有 eth1 吗?由于您的计算机更改了 mac 地址,操作系统会将原始 mac 保留为 eth0,并通常将 eth1 分配给新 mac。要重置 eth* 设备,以便您拥有 eth0 而不是 eth1,您需要清除 udev 网络规则。

处理网络可能会很麻烦。一种选择是删除克隆的虚拟机,再次克隆原始虚拟机并选中“重新初始化 mac”。我不确定这是否能解决您的问题,但也许可以。

答案3

当我在 Mac 上克隆 Ubuntu 时,我得到了相同的 IP 10.0.2.15VM。
为了解决这个问题,我首先关闭了 VM。
然后,对于每个 VM,
我选择设置,然后单击“网络”选项卡,然后更改附加到:Bridged Adapter
然后单击“高级”,选择允许所有混杂模式,
最后刷新 MAC 地址以更改 MAC 地址。单击“确定”。
现在启动 VM,您将获得不同的 IP 地址。
我得到了192.168.0.14第一个和192.168.0.15第二个 IP 地址。它们也可以从主机 Mac ping 通。

在此处输入图片描述

答案4

我今天也遇到了同样的情况。我为我的 Solaris VM 使用 NAT 适配器和仅主机以太网适配器。当我刷新仅主机适配器的 MAC 地址时,克隆的 IP 发生了变化。

相关内容