我无法获取在 Windows 计算机上运行的虚拟盒的 mac 地址。我发现虚拟盒的 mac 地址与 Windows 计算机的 mac 地址相同。我的 Windows 计算机与路由器通过 wifi 连接。
但是如果它在 Ubuntu 操作系统上运行,我无法获取真正的虚拟盒的 mac 地址,并且 Ubuntu 与路由器是通过有线连接的。
谁能告诉我原因?提前谢谢了!
答案1
在这种情况下,操作系统实际上并不重要——主要区别在于 Wi-Fi 与有线以太网。
由于 Wi-Fi 是无线的,因此其标头中需要有更多的 MAC 地址 - 除了常规的以太网源/目标 MAC 之外,所有 Wi-Fi 帧还需要知道无线电发送器/接收器(站点和 AP)的 MAC,以确保只有正确的设备才能接收它。
然而问题在于,普通 Wi-Fi 客户端只能一“发送者”字段 – 始终假设原始发送者的 MAC 完全相同。同样,当 AP 发送数据包时,它只放置一个“接收者”MAC;它还假设接收站也是最终接收者。
换句话说,单个 Wi-Fi 连接不能同时使用不同的 MAC 地址(更改 MAC 需要断开连接)。因此 VirtualBox 必须使用 ARP-NAT 来假装它仍然是同一个操作系统发送数据包。
(有特殊的 Wi-Fi 连接模式,例如“WDS-Bridge”,允许 MAC 地址欺骗,但必须双方都支持 - 许多廉价 AP 不包含该选项,并且只有 Linux 在客户端支持它。)