Ubuntu KVM 主机上的 Windows Guest VM 没有互联网

Ubuntu KVM 主机上的 Windows Guest VM 没有互联网

我在运行于 Ubuntu 12 的 KVM 中安装了 Windows 7 作为客户机。Windows 似乎运行良好,只是它无法访问任何外部域或 IP。

客户机可以 ping 通主机的 IP,主机也可以 ping 通客户机的 IP,但仅此而已。

我使用了默认 NAT 设置,其他人报告说该设置应该可以正常工作。我该怎么做才能解决这个问题?

编辑:我也在同一个主机上运行 VirtualBox,也运行 Windows VM,并且它的互联网运行良好。

编辑:Ubuntu 主机的路由表:

user@localhost:~$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth2
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth2
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth2
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0

virbr0 是我尝试在 Virtualbox 中设置桥接时留下的一些旧桥,但由于 Virtualbox 可以使用 NAT,因此不再使用它。我曾尝试将它与 KVM 一起使用,但没有成功。

答案1

在 oftc-channel #virt 上进行一些讨论之后,@laine 向我指出了解决方案。

显然,ubuntu 12.04 上缺少 resolv.conf 文件(至少在我安装的 linux mint 13 上)。它被一些 resolvconf 目录树取代。

要为客人启用互联网:我必须

  1. sudo iptables --flush => 在主机上,可能已经过时了,我不知道。它清除了一些规则。
  2. 将“nameserver8.8.8.8”添加到 /etc/resolv.conf
  3. 重启

之后,它起作用了

编辑:请注意,步骤 2 也在主机上执行。我认为是 Linux Mint (ubuntu 12.04),缺少 /etc/resolv.conf 文件。

答案2

有什么原因导致你不能使用桥接网络?总是当虚拟机需要访问互联网时,以桥接模式运行,我一般推荐这种模式(您没有给出桥接模式不是一个好主意的任何理由)。就网络连接而言,虚拟机将被视为一等公民。

答案3

您在虚拟机上使用的 NIC 错误。我曾经在 Oracle virtualbox 上的 ubuntu 12.04 上运行 xp/7/8,没有任何问题。不要使用 nat host only 类型的 NIC。使用在网络上为您提供物理地址的选项,这样您就可以单次跳转到网关。

相关内容