![为什么 VirtualBox 为两个虚拟机实例分配相同的 IP 地址?两者都使用仅主机网络](https://linux22.com/image/1373793/%E4%B8%BA%E4%BB%80%E4%B9%88%20VirtualBox%20%E4%B8%BA%E4%B8%A4%E4%B8%AA%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%AE%9E%E4%BE%8B%E5%88%86%E9%85%8D%E7%9B%B8%E5%90%8C%E7%9A%84%20IP%20%E5%9C%B0%E5%9D%80%EF%BC%9F%E4%B8%A4%E8%80%85%E9%83%BD%E4%BD%BF%E7%94%A8%E4%BB%85%E4%B8%BB%E6%9C%BA%E7%BD%91%E7%BB%9C.png)
VB 版本:4.2.16
客户机操作系统版本:Ubuntu 12.4 LTS
主机操作系统版本:OSX 10.8.4
我创建了两个虚拟机。每个虚拟机都分配了两个网络适配器:NAT 和 Host-only。
这是仅主机适配器的定义方式:
这是来自 VirtualBox 两个实例的屏幕截图。
看起来两台机器的接口 virbr0 的 IP 都是 192.168.122.1。
正如@kenster 所言,VB 没有创建 virbr0 接口。我不知道它从何而来。
显然 eth0 来自 NAT 适配器。两个虚拟机的 eth0 具有相同的 IP。以下是其中一个虚拟机的屏幕截图:
我应该从第二个仅主机适配器期待一个 eth1 吗?如果是,为什么没有创建它?
VB 偏好设置中的仅主机 dhcp 设置:
那么,为什么 VB 为两个盒子分配两次相同的 IP?
答案1
抱歉,问题中产生了太多噪音。
基本上是这样的:
1)我第一次创建两个虚拟机时只使用一个网络适配器(NAT)
2)然后我在 VirtualBox 中又添加了一个仅主机适配器,并错误地期望新的接口会出现在 ifconfig 中
我的问题的解决方案
在 /etc/network/interface 中添加新的 eth1 并重新启动网络。
答案2
如果您从已创建的安装中创建了克隆,请检查两个安装的 MAC 地址。
如果 MAC 地址相同,更改 MAC 地址在其中一台机器上并重新启动它。
答案3
删除内核的网络接口规则文件,以便重新生成
# rm -f /etc/udev/rules.d/70-persistent-net.rules
# reboot
它将适用于您的克隆虚拟机。
答案4
解决此问题的另一种方法是将网络从 NAT 更改为网桥。对我而言,这种方法有效。