我在 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 地址?
我猜您的计算机已使用 Wi-Fi 连接。问题在于,典型的 Wi-Fi 客户端设备不可能从与其“关联”MAC 不同的 MAC 地址发送数据包。使用 Wi-Fi 接口不可能进行普通的桥接;VirtualBox 只能通过在发送虚拟机数据包之前重写其主机的 MAC 地址(本质上是进行 MAC 级 NAT)来使其工作。
(DHCP 仍然有效并向虚拟机发出不同的地址,因为 DHCP 请求有自己的“客户端 MAC 地址”字段,并且在此之上有一个完整独立的“DHCP 客户端 ID”——DHCP 服务器认为您的主机是代表其他设备获得租约。)
获取唯一 MAC 地址(如果您的情况需要的话)的唯一现实选择是为您的 VM 主机使用以太网连接。
(也可以让 VirtualBox 在 UDP 内对虚拟机流量进行隧道传输,并让其他一些连接以太网的设备对它们进行解封装,但这当然只有在您实际上有另一个连接以太网的设备充当中继时才有效……最好是这样。运行 Linux 的一个。)