我无法通过 hyper-V 将 Ubuntu 客户机(12.10 和 12.04)连接到互联网。
以下是我目前所做的工作(非常感谢@Kronos 关于该主题的博客文章):
- 在交换机管理器中创建了一个交换机,将连接设置为外部,选择我的 wifi 卡(Intel Centrino Ultimate-N 6300 AGN)。如果重要,则在扩展下检查 Microsoft 过滤平台。
- 将此开关添加到我的 Ubuntu 客户机中。
- 我也尝试了不同的无线网卡(Aethros 9285),但遇到了同样的问题。
- 通过我的有线卡连接就可以了(假设我选择了那张卡,而且我当然是有线连接的)。
- 使其成为旧式网络适配器并不能解决问题。
Ubuntu 可以看到此连接,但无法连接到它。以下是我尝试让 Ubuntu 连接的操作:
- 启动并重新启动网络管理器
- 重启机器
- 验证它是否确实可以看到适配器(导致设备多次未准备好)
我怎样才能让它正常工作?
更新:连接到另一个无线网络(只是不是我大学的那个)时,它就可以正常工作。此外,即使我切换位置,Ubuntu 似乎仍然连接到网络,尽管一切都从 10.0.44.159 返回“目标主机无法访问”(我假设那是我的主机,因为客户机可以正常 ping 它,但我的主机不能)。为什么它所在的无线网络很重要?
答案1
问题似乎是我所在大学的 AP(接入点)不支持桥接协议。
以下是解决方法(据我所知,这种方法比默认的桥接方式更为强大,但可能会有一些额外的开销(不确定有多少)):
- 创建内部网络交换机
- 将其连接到客户操作系统
- 将内部虚拟适配器连接到 Hyper-V 创建的虚拟适配器,如下所示:
。
转到为机器提供互联网访问的适配器,然后单击共享。选择在步骤 1 中创建的适配器。 - 一切都会顺利进行。
该解决方案的贡献归功于宾汉姆顿大学的网络人员,特别是乔和艾伦。
答案2
我也遇到了同样的问题。我使用的笔记本电脑只有无线连接。没有内置以太网卡。
系统是 windows server 2012 standard。我尝试使用 hyper-v 安装 ubuntu 12.04 lts。我遇到了同样的问题。Ubuntu 无法访问互联网,网络一直连接和断开。
所以,我遵循了“乔和艾伦”的方法。它很有效。
但我想找出外部虚拟交换机无法工作的原因。
当我读完这篇博客后,
我发现了这个问题并且可能有一个更好的解决方案。
对于 hyper-v,如果外部虚拟交换机位于无线 NIC 之上,hyper-v 会使用两者之间的 Microsoft 桥接器进行 MAC 转换。因为一个无线信道与一个 MAC 绑定。如果您真的想了解,请阅读全文。
现在,根据该文章的信息,我可以很容易地得出结论,如果从外部查看服务器,则物理 NIC 的同一个 MAC 将有两个 IP 地址。
当然,如果你往里看,这两个 IP 地址被分配给了两个不同的虚拟网卡,并且 MAC 地址也不同。但这两个 MAC 地址隐藏在网桥后面,从外面是看不到的。
第一个 IP 将由主机操作系统(我的情况是 Windows Server 2012)使用。这个没有问题,因为 DHCP 服务器在机器启动时会分配一个。
问题出在第二个 IP 地址上,当您启动虚拟机时(我的情况是 ubuntu),虚拟机将尝试从 DHCP 服务器获取 IP 地址,但会失败。大多数 DHCP 服务器(至少我家里的路由器)不会为同一个 MAC 分配两个不同的 IP 地址。它可能会在虚拟机的 DHCP 请求后返回相同的 IP 地址,但是,它不会起作用,因为我们不能对两台机器使用相同的 IP 地址。如果有人可以捕获 DHCP 的数据包,可能会发现问题的详细信息。
这里有一些更多信息DHCP
我不确定是否有任何 DHCP 服务器可以为一个 MAC 提供两个 IP。根据 @soandos 的描述,似乎可以。
现在,我们知道真正的问题是虚拟机无法获得分配的 IP 地址。
那么,解决方案是什么?
最简单的方法就是在虚拟机中分配一个静态 IP 地址。启动虚拟机后,您可以为该虚拟机分配一个静态 IP 地址。这对我来说非常有效,因为我只在家使用笔记本电脑。
但在某些情况下,例如在公共 wifi 中,您可能无法(安全地)做到这一点。
答案3
soandos 的解决方案对我来说并不可靠。相反,liuhongbo 的建议奏效了。以下是可靠运行的设置。Ubuntu 虚拟机内的网络设置在左侧,ipconfig
Windows 8 的列表在右侧。
请注意,Ubuntu 和 Windows 8 中的子网掩码、默认网关和 DNS 服务器是相同的。唯一的区别是 IPv4 地址,仅相差一位数字。