我正在运行多个虚拟机。我使用的是 VirtualBox,虚拟机的网络设置是 NAT。
主机的 IP 以 192.168.1.x 开头,默认网关为192.168.1.1
。而虚拟机(Windows XP 和 Metasploitable2)的 IP 以 开头10.0.2.x
,默认网关为10.0.2.2
。
如果我ping 192.168.1.x
从 Windows XP 运行(Windows 10(主机)的 IP),它会显示主机已启动(损失 0%),而如果我ping 10.0.2.x
从 Windows10(主机)运行(Windows XP 或 Metasploitable2 的 IP),我会收到“请求超时”的信息。
Windows XP(虚拟机)截图:
Windows 10 主机截图:
答案1
由于 VirtualBox 默认将 10.0.2.0 网络分配给其 NAT 网络(请参阅文档):
虚拟机从 VirtualBox 集成的 DHCP 服务器接收其在专用网络上的网络地址和配置。这样分配给虚拟机的 IP 地址通常与主机位于完全不同的网络上。由于可以设置虚拟机的多个卡以使用 NAT,因此第一张卡连接到专用网络 10.0.2.0,第二张卡连接到网络 10.0.3.0,依此类推。如果您出于某种原因需要更改客户机分配的 IP 范围,请参阅第 9.11 节“微调 VirtualBox NAT 引擎”。
此外,10.0.2.2
在您的情况下是您的主机的接口(除了的另一个接口192.168.1.x
)。
这就是 NAT(网络地址转换)的工作原理。VirtualBox 转换您机器的地址10.0.0.x
,并将数据包作为来自主机(即)的数据包发送192.168.1.x
。它使用与您的主机相同的默认网关192.168.1.1
。它对来自的数据包进行反向转换后退到虚拟机。
但是您将无法使用10.0.2.0
网络上的地址 ping 客户机。它位于 VirtualBox NAT 路由器后面。
您可以配置 NAT 网络,或使用桥接适配器。但在这个问题中,您问为什么它们有不同的默认网关。