我刚刚安装了我的第一个 Ubuntu Server(12.04)实例并立即遇到了以下问题:
- 正在运行
apt-get install
或update
失败(见下文) - 运行
ifconfig
会产生以 开头的特殊 IP 地址10.x.x.x
,而我的路由器在其“附加设备”页面中根本看不到服务器(它是消费级 Netgear)
当我运行时,apt-get
出现以下 50 多个错误:
Failed to fetch <some-http-url>. Temporary failure resolving <blah>.ubuntu.com
我阅读了有关 12.04 的这个错误,并在该论坛和服务器故障上找到了一些类似的帖子,建议进入/etc/resolv.conf
并添加一个条目:
nameserver 8.8.8.8
令我惊讶的是,我发现这/etc/resolv.conf
是一个指向其他地方的符号链接,我必须先删除它,然后使用上面指示的条目创建一个新的。
我重新启动了服务器并尝试apt-get
再次运行,结果相同。
我该如何开始诊断问题(我是一个相对较新的 Linux/Ubuntu 用户)?
可能有帮助的其他详细信息:
- 这实际上是作为 VirtualBox 客户操作系统运行的虚拟机
- 运行此 VM 的物理主机是我的笔记本电脑,它具有无线连接;我想知道笔记本电脑是否(以某种方式)以无线方式接入网络,但也许 VBox VM 和/或 Ubuntu 服务器操作系统未配置无线,因此没有任何东西“通过”?
提前感谢任何指点!
编辑:
这是我的虚拟机的网络设置的快照(只有适配器 1 在其字段中填充了信息,因此我假设我的虚拟机只有 1 个适配器):
ifconfig
这是我从终端运行时的输出:
route
以下是我从终端运行时的输出:
跑步ping google.com
:
答案1
简而言之:这是一个网络问题。
我所看到的场景是这样的:
现在要正确地看到问题出在哪里,在这种情况下,我们需要首先从外网检查到内网。
确保路由器有互联网。您可以使用同一台主机或连接到它的其他设备来检查这一点。
确保主持人通过互联网路由器或任何其他来源。要检查,只需向 google.com 发送 ping 即可,例如:
ping google.com
。
如果第 1 点和第 2 点都很好(您的路由器运行良好,并且有互联网,您的主机也有互联网),那么我们继续使用 Guest 和 Virtualbox。阅读 VirtualBox 中如何处理无线支持可能会有所帮助虚拟机 ubuntu 上的 Wifi 卡
我们首先需要了解以下几个信息:
Virtualbox 环境中没有无线连接。所有“虚拟”连接均指有线/有线连接。因此,当您在虚拟客户机中启用网卡时,它是一个虚拟有线您正在创建的连接不是虚拟的无线的一。
从主机到客户机的虚拟连接与主机所连接的连接类型(物理连接)无关。如果主机通过有线或无线连接,则主机到客户机的虚拟连接无关紧要,也不会受到影响,因为客户机内部有线和无线连接的使用方式相同。类似于下图:
如果您的主机无法访问互联网,您的客户机也无法访问互联网。同样,如果您的主机可以访问互联网,并且主机与客户机之间的连接允许共享互联网,那么客户机也很可能可以访问互联网(Virtualbox 的默认行为)。
我将使用 Virtualbox 4.1.20,它看起来与您使用的有所不同(可能相同,我不知道)。我将添加网络图像以帮助显示差异:
我将使用 Ubuntu 12.04 作为主机和客户机(这在 12.10 或 13.04 中同样有效)。如果 Windows 是主机,您需要确保防火墙没有阻止客户机将使用的特定端口。
我假设主机没有使用代理,只是通过无线/有线连接直接连接到路由器。
使用 ifconfig 和 route 时 Guest 的输出如下:
现在来看看你想要解决的问题:
- 为虚拟机 Ubuntu Server 配置网络
- 让虚拟机连接到互联网
- 获取路由器以查看虚拟机
首先我要说的是,除非 Virtualbox 猜测支持端口转发,否则第 3 点将是不可能的。您的路由器将只看到来自您的客户机的传输,就好像它们是来自实际主机的传输一样。因此,如果没有转发(最新版本在一定程度上支持转发),路由器将永远看不到虚拟机,只能看到主机。
当然,有办法解决这个问题,比如告诉主机通过 VirtualBox 引擎将内容转发给客户机。或者配置(我认为更容易)客户机进行端口转发。例如:
考虑到这一点,我们在 Guest 中执行以下操作:
使用常用方法测试客人是否可以访问Internet
ping google.com
。如果 ping 成功,我们就知道有互联网连接。问题可能出在解析目标网站。
请尝试以下操作:
/etc/init.d/network restart
和/或dhclient
验证是否
/etc/network/interface
正确。我的示例如下:更改适配器类型在 Virtualbox 配置窗口的网络选项中。
测试 Ubuntu 桌面客户端或其他操作系统是否正常工作。(目前我只有 12.10 和 12.04 的桌面 iso 映像)。
答案2
这肯定是网络问题。要确认这一点,请先尝试 ping 本地网络内的 IP:
ping 10.1.1.1
(这可能是你的路由器的 IP)
然后 ping “外部世界” 的 IP
此外,即使您在通过 wifi 连接的笔记本电脑上运行 VM,您也不需要在客户机上配置 wifi - VirtualBox 模拟“有线”网络适配器,因此您的客户操作系统认为它在通过电缆连接到 LAN 的机器上运行。
在 VirtualBox 中配置网络是一个广泛的话题(尽管典型的设置通常开箱即用),您需要确保您的 VM 在 VM 的属性等中配置了网络适配器。
看http://www.virtualbox.org/manual/ch06.html更多细节。
默认的 VirtualBox 设置 (NAT) 会在主机和客户机之间创建一个“私有”网络,主机会将来自客户机的所有流量转发到外部,并将响应发送回客户机(类似于路由器将笔记本电脑连接到互联网的方式)。客户机在您的 LAN 中没有单独的 IP 地址,无法从笔记本电脑外部访问,但您可以从客户机访问互联网,因为数据包由主机转换到 LAN,然后由路由器转换到互联网。这解释了为什么您在路由器的设置中看不到单独的设备
答案3
我从你的问题中注意到了以下几点:
- 消息为:“无法获取。暂时无法解析 <blah>.ubuntu.com”
- 您可以正常访问 google.com。
我想说,域名服务在解析该地址时出现了问题,而不是您的计算机出了问题。与执行 ping 相比,执行域查找并没有什么特别之处。您的网络必须正常工作,无论它是如何配置的。
我建议您将软件源更改为使用不同的 Ubuntu 档案,也许只是 archive.ubuntu.com。
答案4
/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 无法自动获取设置,您必须手动指定它们。
我不确定这<blah>.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/
因为我在芬兰。