Virtualbox中的无线网络

我刚刚安装了我的第一个Ubuntu Server(12.04)实例,并立即遇到了以下问题:

  • 运行apt-get installupdate失败(见下文)
  • 运行ifconfig会生成以10.xxx开头的特殊IP地址,而我的路由器在其“附加设备”页面(其消费级Netgear)中根本看不到服务器

当我运行apt-get我会收到50多个以下错误:

 Failed to fetch . Temporary failure resolving .ubuntu.com 

我读了12.04的这个错误,并在这个论坛和服务器故障上发现了一些类似的post,建议进入/etc/resolv.conf并添加一个条目:

 nameserver 8.8.8.8 

令我惊讶的是,我发现/etc/resolv.conf是指向其他地方的符号链接,我必须先将其删除,然后创建一个带有上述条目的新符号。

我重新启动服务器并尝试再次运行apt-get ,结果相同。

如何开始诊断问题(我是一个相对较新的Linux / Ubuntu用户)?

其他可能有用的细节:

  • 这实际上是作为VirtualBox客户操作系统运行的虚拟机
  • 运行此VM的物理主机是我的笔记本电脑,它具有无线连接; 我想知道(不知何故)笔记本电脑是否正在以无线方式接入网络,但也许VBox VM和/或Ubuntu服务器操作系统没有配置为无线,所以没有什么是“通过”?

提前感谢任何指针!

编辑

这是我的VM的网络设置的快照(只有适配器1有填充其字段的任何信息,所以我假设我的VM只有1个适配器):

在此处输入图像描述

这是从终端运行ifconfig时的输出:

在此处输入图像描述

这是我从终端运行route时的输出:

在此处输入图像描述

运行ping google.com

在此处输入图像描述

简而言之:这是一个网络问题。

我看到场景的方式是这样的:

在此处输入图像描述

现在要正确查看问题所在,在这种情况下,我们需要先从外部网络检查内部网络。

  1. 确保路由器有互联网。 您可以使用相同的主机或连接到它的其他设备来检查这一点。

  2. 确保主机通过路由器或任何其他来源具有互联网。 要检查只是发送ping到google.com,例如: ping google.com

如果第1点和第2点都很好(你的路由器工作正常并且有互联网而你的主机有互联网)那么我们继续使用Guest和Virtualbox。 通过阅读虚拟机的ubuntu上的Wifi卡 ,可以了解如何在VirtualBox中处理无线支持

我们首先需要了解以下信息:

  • 虚拟机环境中没有无线连接。 所有“虚拟”连接均参考有线/有线连接。 因此,当您在虚拟客户机中启用网卡时,它是一个虚拟有线连接,您创建的不是虚拟无线连接。

  • 从主机到访客的虚拟连接与主机连接的连接类型无关(物理连接)。 如果主机通过有线或无线连接进行连接,则无关紧要或影响从主机到来宾的虚拟连接,因为有线和无线连接在Guest内部以相同的方式使用。 类似于下图的东西:

    在此处输入图像描述

  • 如果您的主人无法访问互联网,您的访客将无法访问。 同样的情况是,如果您的主机具有互联网访问权限,并且您从主机到访客的连接允许共享互联网,那么访客也很可能也具有互联网(使用Virtualbox的默认行为)。

  • 我将使用Virtualbox 4.1.20,它看起来与你正在使用的不同(可能相同,我不知道)。 我将添加网络图像只是为了帮助和显示差异:

    在此处输入图像描述

  • 我将使用Ubuntu 12.04作为主机和Guest(这在12.10或13.04中的工作方式相同)。 如果Windows是主机,则需要确保防火墙未阻止guest虚拟机将使用的特定端口。

  • 我假设主机没有使用代理,只是通过无线/有线连接直接连接到路由器。

  • 来自Guest的输出如下,ifconfig和route:

    在此处输入图像描述

现在到了你想要解决的问题:

  1. 配置VM Ubuntu Server的网络
  2. 获取VM连接到Internet
  3. 获取路由器以查看VM

让我首先提一下,除非Virtualbox猜测支持端口转发,否则第3点是不可能的。 您的路由器只会看到从您的访客进行的转移,就好像它们是从实际主机进行的转移一样。 因此,如果没有转发(在最新版本上有所支持),路由器将永远不会看到VM,只看到主机。

当然有办法解决这个问题,比如告诉主机通过虚拟机引擎将内容转发给访客。 或配置(我更容易)客户端口转发。 例如:

在此处输入图像描述

因此,考虑到这一点,我们在访客中执行以下操作:

  1. 使用常见的ping google.com方法测试来宾是否可以访问Internet。

    如果ping工作,那么我们知道存在互联网连接。 问题可能是解析目标站点。

  2. 请尝试以下方法:

    /etc/init.d/network restart和/或dhclient

  3. validation/etc/network/interface是否正确。 我的例子是:

    在此处输入图像描述

  4. 在“Virtualbox配置”窗口的“网络选项”中更改适配器类型

  5. 测试Ubuntu Desktop客户端或其他操作系统是否正常工作。 (现在我只有12.10和12.04的桌面ISO映像)。

这绝对是一个网络问题。 要确认这一点,请先尝试ping本地网络中的IP:

 ping 10.1.1.1 

(很可能是你路由器的IP)

然后ping“外部世界”中的IP

此外,即使您在通过wifi连接的笔记本电脑上运行VM,也不需要在来宾计算机上配置wifi – VirtualBox模拟“有线”网络适配器,因此您的来宾操作系统认为它在计算机上运行用电缆连接到局域网。

在VirtualBox中配置网络是一个广泛的主题(虽然典型的设置通常是开箱即用的),您需要确保您的VM具有在VM的属性中配置的网络适配器等。

有关详细信息,请参阅http://www.virtualbox.org/manual/ch06.html 。

默认的VirtualBox设置(NAT)在主机和客户机之间创建“专用”网络,主机将所有来自客户机的流量转发到外部并将响应发送回来宾(类似于路由器将笔记本电脑连接到的方式)互联网)。 来宾在您的LAN中没有单独的IP地址,无法从您的笔记本电脑外部访问,但您可以从来宾访问Internet,因为数据包由主机转换为LAN,然后由路由器转换为Internet。 这解释了为什么在路由器的设置中没有看到单独的设备

这是我从你的问题中注意到的:

  1. 消息是:“无法获取。临时故障解决 .ubuntu.com”
  2. 你可以直接访问google.com。

我要说域名服务在解析该地址时存在问题,而不是在您的计算机中。 与进行ping相比,进行域查找没有什么特别之处。 您的网络必须正常工作,但已配置。

我建议您更改软件源以使用不同的Ubuntu存档,也许只是archive.ubuntu.com。

这对我有用:

试图设置无线无法正常工作
在Ubuntu VM上添加网络属性详细信息并在Windows上更改同样没有用

虽然主机是无线的,但是guest虚拟机(ubuntu VM)就好像是通过虚拟电缆连接,所以后面解决了这个问题:
Ubuntu VM窗口>设备>网络>网络设置…>选中Cable Connected复选框

/etc/resolv.conf是符号链接,删除它后将是符号链接,因为resolvconf总是重置它。

如果您想使用Google DNS,请将这些行添加到/etc/resolvconf/resolv.conf.d/head

 nameserver 8.8.8.8 nameserver 8.8.4.4 

如果要让路由器检测虚拟机,则应使用“桥接适配器”。 在网络适配器中,将“NAT”更改为“桥接适配器”。 如果将其设置为桥接适配器,则虚拟机将从DHCP服务器获取IP等。 如果您的路由器没有路由器,或者您的网络中没有路由器,则Virtualmachine无法自动获取设置,您必须手动指定它们。

我不确定.ubuntu.com没有解决,但我建议你尝试另一面镜子。

我使用mirrors.ubuntu.com/mirrors.txt ,它总是包含最近的镜像。 要使用它,请将这些行添加到/etc/apt/sources.list

 deb mirror://mirrors.ubuntu.com/mirrors.txt precise main restricted universe multiverse deb mirror://mirrors.ubuntu.com/mirrors.txt precise-updates main restricted universe multiverse deb mirror://mirrors.ubuntu.com/mirrors.txt precise-security main restricted universe multiverse deb-src mirror://mirrors.ubuntu.com/mirrors.txt precise main restricted universe multiverse deb-src mirror://mirrors.ubuntu.com/mirrors.txt precise-updates main restricted universe multiverse deb-src mirror://mirrors.ubuntu.com/mirrors.txt precise-security main restricted universe multiverse 

如果您也想要后退,请添加以下行:

 deb mirror://mirrors.ubuntu.com/mirrors.txt precise-backports main restricted universe multiverse deb-src mirror://mirrors.ubuntu.com/mirrors.txt precise-backports main restricted universe multiverse 

对我来说http://mirrors.ubuntu.com/mirrors.txt包含:

 http://ubuntu.trumpetti.atm.tut.fi/ubuntu/ http://www.nic.funet.fi/pub/mirrors/archive.ubuntu.com/ http://mirrors.nic.funet.fi/ubuntu/ http://archive.ubuntu.com/ubuntu/ 

因为我在芬兰

此链接提供了有关如何使用命令行连接到无线网络的教程: http : //www.linuxjournal.com/content/wi-fi-command-line 。

但是,您可能希望还原resolv.conf文件。

好。 一个小问题! 你可以在浏览器上使用互联网吗? 如果是,请尝试以下操作:尝试更改服务器选择更新管理器,定义,从中下载,然后选择更靠近您的服务器。 然后再次尝试检查您的更新。

我认为这是一个错误。 请尝试告诉我它是否有效。

我还在VirtualBox上运行ubuntu桌面和服务器。 我和你一样有同样的问题。 我的解决方法不是将VirtaulBox中的网卡设置为NAT,而是将其作为桥接适配器。

我希望它有所帮助!;)

PS:从链接Serghey发布(VirtualBox手册):

“桥接网络这是为了满足更高级的网络需求,例如网络模拟和在客户机中运行服务器。启用后,VirtualBox将连接到您安装的一个网卡并直接交换网络数据包,从而绕过主机操作系统的网络堆栈。”

这个问题主要是由于主机WiFi适配器(由wifi路由器的DHCP服务器)和Guest接口(由Nat网络下的VirtualBox DHCP服务器)分配相同的IP地址。

从有关集成DHCP服务器的VirtualBox文档中微调VirtualBox NAT引擎 :

 In NAT mode, the guest network interface is assigned to the IPv4 range 10.0.x.0/24 by default where x corresponds to the instance of the NAT interface +2. So x is 2 when there is only one NAT instance active. In that case the guest is assigned to the address 10.0.2.15, the gateway is set to 10.0.2.2 and the name server can be found at 10.0.2.3. 

查看主机的WiFi适配器的IP地址,您会发现分配给它的地址也来自10.0.2.0/24网络范围。

这就是问题的原因,因为现在VirtualBox的Nat驱动程序因主机和访客地址来自同一子网这一事实而感到困惑。

要解决此问题,您可以使用VBoxManage命令更改VirtualBox DHCP服务器提供的子网(当VM关闭时):

 Vboxmanage modifyvm VMName --natnet1 "198.162/16" 

你很高兴(因为198.162.0.0几乎从未在SOHO网络设备的DHCP服务器中使用过)。

您需要安装“VirtualBox Oracle VM VirtualBox Extension Pack”。

首先,在你的ubuntu(我在Mint上)终端上运行VBoxManage --version 。 接下来,从https://www.virtualbox.org/wiki/Downloads下载与您的VBox版本对齐的扩展包。

在VBox上,单击Ctrl + G (’首选项’)并向下滚动到’扩展’选项卡。 单击“添加新包”,然后添加下载的文件并安装。

试试吧!