我在 VirtualBox 上设置了两个网络接口(一个 NAT 和一个仅主机)。我使用这个虚拟机进行 Web 开发已有很长时间了。最近启动时,我无法再通过网络适配器的 IP 地址 ping 虚拟机。但是,我仍然可以通过端口转发访问虚拟机。
示例:我以前通过执行 来访问它ssh root@[ip-address-of-vm]
,但现在不再有效。但是,由于我已设置了客户机上的端口 22 到主机上的端口 2222 的转发,因此我仍然可以通过ssh root@localhost:2222
这种方式访问虚拟机。
这告诉我网络适配器“工作正常”,因为我仍然可以访问虚拟机。但突然间我无法通过它们自己的 IP 直接访问它们。我在主机上运行 Ubuntu,我尝试禁用 UFW 以防防火墙问题,但没有任何变化。如果这很重要的话,客户机正在运行 Debian。
我没有对虚拟机配置进行任何更改。我猜这可能与运行更新以及我下面发生了一些变化有关(例如,在我这样做时更新了新版本的 virtualbox apt dist-upgrade
)。
我有点困惑。有什么建议可以尝试吗?
答案1
答案似乎是vboxnet0
主机系统上的“仅主机”网络接口由于某种原因丢失了其 IP 配置 - 或者从一开始就没有成功配置。
通常,VirtualBox 本身会在主机操作系统上创建此虚拟接口,将其“启动”,并从主机专用子网中为其分配一个 IP 地址。(我不确定这是否应该在启动时发生,但我认为只有在重启后第一次启动 VirtualBox 时才会发生。)
同时,“NAT”网络无法访问也是正常的,因为 VirtualBox NAT 实际上并没有连接到主机的网络堆栈(它不使用 Linux 内置 NAT)——整个 10.0.2.x 网络由 VirtualBox 服务模拟,主机操作系统本身完全不知道它的存在。