当前位置: 首页>>技术问答>>正文


如何让VirtualBox guest虚拟机(运行Windows)访问Internet?

, ,

问题描述

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

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

virtualbox,virtualbox-networking,ubuntu

任何的想法?

更新:

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

virtualbox,virtualbox-networking,ubuntu

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

(请注意,这个问题是关于如何在VirtualBox中提供VM Internet访问,因此Windows的图片不会自动生成此off-topic!)

virtualbox,virtualbox-networking,ubuntu

Larger image here.

最佳解决思路

设置NAT

NAT不是适配器类型的选项。相反,它是附加的选项。

单击当前显示桥接适配器的位置,您应该能够选择NAT。

顺便说一句,将其更改为NAT的原因有时候有助于Windows客户端。相反,如果您的物理(主机)PC在LAN上,桥接适配器(以及NAT)通常可以正常工作。如果您的物理PC只有一台计算机的网络连接 – 如果它直接插入只有一个以太网端口的电缆/DSL /ISDN调制解调器,通常就是这种情况 – 那么就没有本地网络可以连接到,那么你必须使用NAT。

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

如果您对更多细节感兴趣,请参阅network bridgingnetwork address translation上的这些文章。

如果有效,那很好。除此以外…

检查访客的网络配置

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

在其上单击Right-click,然后单击属性。

virtualbox,virtualbox-networking,ubuntu

在“连接”下,使用以下各项,单击“Internet协议(TCP /IP)”,然后单击“属性”。

virtualbox,virtualbox-networking,ubuntu

确保配置正确。

对于桥接连接

如果您在VirtualBox中保留VM的网络适配器bridged,而不是将其切换到NAT,那么就好像连接三个设备的layer 2 network switch

  • 虚拟机。

  • 物理主机。

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

因此,您的VM是”networkologically”等效于您的主机。无论它有什么设置(当然除了IP地址),你的虚拟机应该有。

对于NAT连接

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

VirtualBox DHCP服务器将为guest虚拟机提供IP地址和DNS信息,因此应选择以下两个选项:

  • 自动获取IP地址

  • 自动获取DNS服务器地址

virtualbox,virtualbox-networking,ubuntu

这是关键。

这是该问题中系统的特殊问题。如果这是配置的唯一问题,那么解决这个问题应该完全解决问题。

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

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

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

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

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

    但是客户无法直接访问桌面(或任何地方)的物理NAT路由器,因为在VM和真实路由器之间传输的任何数据都必须通过VM的路由器,而VM的路由器是您的计算机(通过该特殊虚拟网络访问)接口)。

  2. 由于默认网关错误,因此不会发生路由,并且VM无法访问计算机外部的任何物理网络设备。

  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 guest虚拟机添加项(通过单击Devices> Install Guest Additions;有关更多信息,请参阅the manual)。重新启动,看看您是否可以连接到Internet。如果你不能,你仍然完成了一些有用的东西,因为现在你可以在访客和主机剪贴板之间复制和粘贴。

因此,在Windows中打开命令提示符。一种方法是运行:

Start > Run… > cmd.exe

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

ipconfig /all

然后将命令提示符中的所有文本复制到剪贴板。在命令提示符窗口内的任何位置由right-clicking引发的上下文菜单中都可以访问此功能。然后,您可以在具有有效Internet连接的Ubuntu主机系统上编辑问题,然后将其粘贴。

  • 更一般地说,对于此问题的提问者以外的人:您可以将其粘贴到Ubuntu主机系统中的应用程序中,允许您在Windows VM挂起/关闭时引用它。您可以将它提供给任何想要帮助您的人。您可以在Ask Ubuntu上将它包含在您自己的问题中(但是,如果您的网络问题出在虚拟安装中,而不是虚拟硬件或VirtualBox软件 – 例如,如果您的VM访问Internet,直到您安装了一些除了客户添加之外的Windows软件 – 那么你的问题可能会被认为是Ask Ubuntu的主题。虽然它可能是Super User的on-topic。)

次佳解决思路

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

在’NAT’->’Advanced’->’Adapter Type’中选择“PCnet-PCI II(Am79C970A)”。

第三种解决思路

NAT位于附加到drop-down列表中。

适配器类型是高级的,在大多数情况下不必更改..

Bridged也应该正常工作,但你必须调整网络接口。名称必须设置为主机上的互联网接口(很可能是无线的wlan,以太网的eth)。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6591.html,未经允许,请勿转载。