我已经在 Windows 11 上安装了 VirtualBox。然后,我在桥接模式下安装了虚拟机(ubuntu),以便 ubuntu 可以从 dhcp 服务器获取 IP 地址。Windows 11 获取 ip 地址 10.0.1.113,ubuntu 虚拟机获取 10.0.1.111。当我从同一子网(10.0.1.158)内的另一台计算机 ping 时,我得到了正确的 ping 响应,但两个 IP 地址(10.0.1.113 和 10.0.1.158)具有相同的 MAC 地址。VirtualBox 或其他任何软件中是否有任何选项可以为安装在这台计算机上的计算机和虚拟机设置不同的 MAC 地址?
答案1
我猜你的电脑是使用 Wi-Fi 连接的。问题在于,典型的 Wi-Fi 客户端设备不可能从与其“关联”MAC 不同的 MAC 地址发送数据包。使用 Wi-Fi 接口无法进行普通桥接;VirtualBox 只能通过重写虚拟机的数据包使其在发送之前具有主机的 MAC 地址(本质上是执行 MAC 级 NAT)来实现桥接。
(DHCP 仍然有效并向虚拟机发出不同的地址,因为 DHCP 请求有自己的“客户端 MAC 地址”字段,并且在此基础上还有一个完全独立的“DHCP 客户端 ID”——DHCP 服务器认为您的主机正在代表其他设备获取租约。)
获取唯一 MAC 地址的唯一现实选择(如果您的情况有必要)是使用以太网连接您的 VM 主机。
(也可以让 VirtualBox 在 UDP 内部传输虚拟机的流量,并其他以太网连接的设备对它们进行解封装,但这当然只有当您实际上有另一个以太网连接的设备充当中继时才有效......最好是运行 Linux 的设备。)