如何获取 Windows 上运行的虚拟机的真实 mac 地址

如何获取 Windows 上运行的虚拟机的真实 mac 地址

我无法获取在 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 在客户端支持它。)

相关内容