我在 VirtualBox 中配置了桥接网络,但我的路由器仅显示 1 个设备已连接。当客户操作系统 (Ubuntu) 启动时,路由器显示客户 IP 地址已连接。当我关闭 VirtualBox 时,路由器显示主机 (Windows) IP 地址已连接。我希望连接的两台设备同时显示在路由器上以进行端口转发。
答案1
该问题部分是由 Wi-Fi 引起的,部分是由于您的路由器存在缺陷。
您的路由器会尝试根据苹果它所看到的地址,以及最近从该 MAC 地址看到的活动 IP 地址。它不知道主机可以拥有多个 IP 地址。
(它的固件很可能是在假设主人不会这样做的情况下构建的任何任何高级网络 – 没有桥接、没有路由、没有虚拟机,只有一两台基本计算机。我有一个完全一样的 D-Link ADSL 调制解调器。)
Wi-Fi 并不完全像以太网——它不能完全桥接,因为连接的客户端只允许一MAC 地址。(Wi-Fi 标头中的相同 MAC 地址字段有两个用途 - 它还用于跟踪与接入点的物理连接或“关联”。)
为了使“桥接网络”与 Wi-Fi 配合使用,VirtualBox 必须隐藏虚拟机的 MAC 地址并将其替换为主机的 MAC 地址(换句话说,它实际上执行 MAC 层 NAT)。
这意味着您的路由器将主机和虚拟机视为单个 MAC 地址,并假定它实际上是单个设备。
幸运的是,“端口转发”完全是 IP 层,不应该关心 MAC 地址。因此,只要您的主机和虚拟机具有不同的(且静态的)IP 地址,您仍然应该能够配置端口转发。如果路由器军队您从列表中选择一个设备,您可以:
- 启动虚拟机,使其显示在路由器列表中
- 配置虚拟机的端口转发
- 关闭虚拟机并等待主机重新出现在路由器列表中
- 配置到主机的端口转发
但通常情况下,路由器应该允许您手动输入 IP 地址(而不是从列表中选择设备),这样可以完全避免该问题。
(我真的希望买一个更好的、不会做傻事的路由器。)