如何让 VirtualBox 来宾(运行 Windows)访问 Internet?

ump*_*sky 31 virtualbox virtualbox-networking

我有一个 VirtualBox 虚拟机。主机运行 Ubuntu。来宾(虚拟)机器运行 Windows XP。

我在谷歌上搜索了这个问题,人们声称他们通过将适配器类型更改为 NAT 来修复它,但我没有这样的选择:

在此处输入图片说明

任何的想法?

更新:

在将其切换到 NAT 后,它也不起作用。以下是当前设置(显示所有详细信息):

在此处输入图片说明

这是显示一些网络信息的访客屏幕截图:

(请注意,此问题是关于如何在 VirtualBox 中为 VM 提供 Internet 访问权限,因此 Windows 图片的存在不会自动使此题偏离主题!)

在此处输入图片说明

更大的图像在这里。

Eli*_*gan 35

设置 NAT

NAT不是Adapter Type的选项。相反,它是Attached to的一个选项。

单击当前显示Bridged Adapter 的位置,您应该能够选择NAT

顺便说一句,将其更改为NAT有时会有所帮助的原因并非特定于 Windows 来宾。相反,如果您的物理(主机)PC 位于 LAN 上,桥接适配器(以及NAT)通常可以正常工作。如果您的物理 PC 仅与一台计算机建立网络连接——通常情况是将它直接插入只有一个以太网端口的电缆/DSL/ISDN 调制解调器——那么就没有本地网络可以桥接到,所以你必须使用NAT

如果您使用桥接适配器并且您的主机在物理 LAN 上,您的来宾计算机将自动能够看到 LAN 上的计算机并被其看到。如果在 LAN 上使用NAT,来宾计算机将能够看到 LAN 上的其他计算机,但 LAN 上的其他计算机(虚拟主机除外)将无法看到它。

如果您对更多详细信息感兴趣,请参阅这些关于网络桥接网络地址转换的文章

如果那行得通,那太好了。除此以外...

检查访客的网络配置

在虚拟机中,打开网络连接配置(从控制面板或开始菜单 > 设置)。除非您在 VirtualBox 中为来宾机器手动配置了多个接口(或者通过 USB 转发将实际网络适配器连接到它),否则您只会看到一个,除非您更改了它的名称,否则它将被称为本地连接(可能后面有一个数字)。

右键单击它并单击Properties

来宾机,Windows XP 网络连接:这是点击“属性”的第一个地方

连接使用以下项目下,单击Internet 协议 (TCP/IP),然后单击属性

来宾机器,Windows XP“本地连接”显示协议和服务列表

确保配置正确。

对于桥接连接

如果您在 VirtualBox 中保持虚拟机的网络适配器桥接,而不是将其切换到 NAT,那么就好像有一个连接三个设备的第 2 层网络交换机

  • 虚拟机。
  • 物理主机。
  • 无论物理主机连接到什么(在桥接的特定主机网络适配器上)。例如,如果您的计算机插入路由器,则就像交换机插入路由器一样。如果它以无线方式连接到接入点,则交换机就像是一个无线网桥

因此,您的 VM 在“网络上”相当于您的主机。无论它有什么设置(当然除了它的 IP 地址),你的虚拟机都应该有。

对于 NAT 连接

如果您在 VirtualBox 中为Attached to选择了NAT,那么您的真实计算机就像一个小型家庭/办公室路由器。你的主机运行着一个只能被 VirtualBox 虚拟机访问的 DHCP 服务器,来宾从中获取所有的网络配置信息。

VirtualBox的DHCP服务器将同时提供IP地址和DNS信息给客人,所以两者的这两个选项应该选择:

  • 自动获取IP地址
  • 自动获取DNS服务器地址

来宾计算机、Windows XP TCP/IP 设置、常规选项卡

这是关键。

对于这个问题中的系统来说,这是一个特殊的问题。如果这是配置的唯一问题,那么修复它应该可以完全解决问题。

您有手动设置,而不是 DHCP。

这可以工作,但手动设置需要正确,并且您还需要确保 IP 不在路由器分配的 IP 地址范围内(或者可能与路由器上的另一台设备发生冲突)网络)。

在这种情况下,手动设置根本不正确,因为:

  1. 主机通过其向来宾提供 Internet 连接的网络接口上的 IP 地址与其在物理网络上的 IP 地址不同。即使您计算机的 IP 地址“在现实生活中”是 192.168.1.1,来宾也无法以这种方式访问​​它。

    • 更有可能的是,如果您自己这样设置,您可能一直认为您应该将现实生活中的家庭/办公室路由器的 IP 地址(通常是 192.168.1.1)作为默认网关和主 DNS 服务器。

    但是guest不能直接访问你桌子上(或任何地方)的物理NAT路由器,因为VM和真实路由器之间传输的任何数据都必须经过VM的路由器,而VM的路由器就是你的电脑(通过那个特殊的虚拟网络访问界面)。

  2. 由于默认网关错误,不会发生路由,虚拟机无法访问您计算机外的任何物理网络设备。

  3. 由于 VM 的 IP 地址在正确的范围之外(通常为 10.2.2.*)并且子网掩码为 255.255.255.0,因此无法访问正确的范围。(子网掩码是正确的,但它与 IP 一起标识了错误的子网。)

  4. DNS 服务器也必须是固定的,否则无法通过其域名访问任何主机(如 askubuntu.com)。

如果出于某种原因您需要使用“静态 IP”,即不使用 DHCP,那么您必须从 VirtualBox 获取正确的信息并输入它。如果您需要帮助,请告诉我(我可以扩展它以包含说明)。

假设 DHCP 对您没问题,您可以通过使您的Internet 协议(TCP/IP 属性)常规选项卡设置看起来像上面的屏幕截图来解决问题。

仍然没有互联网连接?解决问题的时间

从客人方收集更多信息可能会有所帮助。在神秘地未连接到 Internet 的虚拟化 Windows XP 系统中,安装 VirtualBox 来宾附加件(通过单击设备>安装来宾附加件;有关详细信息,请参阅手册)。重新启动,看看是否可以连接到 Internet。如果不能,您仍然完成了一些有用的工作,因为现在您可以在来宾剪贴板和主机剪贴板之间进行复制和粘贴。

所以在 Windows 中打开命令提示符。一种方法是运行:

开始 > 运行... > cmd.exe

现在运行此命令以获取有关 Windows 来宾系统的网络接口和连接的信息。

ipconfig /all
Run Code Online (Sandbox Code Playgroud)

然后将命令提示符中的所有文本复制到剪贴板。通过右键单击命令提示符窗口内的任意位置,可以在上下文菜单中访问此功能。然后,您可以在具有可用 Internet 连接的 Ubuntu 主机系统上编辑您的问题,并将其粘贴。

  • 更一般地说,对于这个问题的提问者以外的人:

    然后,您可以将其粘贴到 Ubuntu 主机系统中的应用程序中,从而允许您在 Windows VM 挂起/关闭时引用它。您可以将其提供给任何试图帮助您的人。您可以在 Ask Ubuntu 上将其包含在您自己的问题中

    (但是,如果您的网络问题出在虚拟安装中,而不是虚拟硬件或 VirtualBox 软件中——例如,如果您的 VM 可以正常访问 Internet,直到您安装了一些非来宾添加的Windows 软件——那么您的问题对于 Ask Ubuntu 来说,可能会被认为是题外话。不过,对于超级用户来说,它可能是题外话。)

  • 我更改了自动获取 IP 和 DNS 并且成功了!您的回答准确而详细,非常感谢您的回答,我相信对于其他有类似问题的人来说,这将是非常有用的资源。我接受了您的回答并开始赏金,24 小时后将我目前的声望增加 100。谢谢! (2认同)

fro*_*man 11

这个解决方案非常适合我(主机操作系统:Ubuntu 14.04;来宾操作系统:Windows XP SP3):

在“NAT”->“高级”->“适配器类型”中选择“ PCnet-PCI II (Am79C970A) ”。

  • 在 Windows 7 上作为主机工作,在 Windows XP 上作为来宾工作 (2认同)