Ubuntu 未连接到 Hyper-V 中的网络

soa*_*dos 33 hyper-v windows-8 ubuntu-12.10

我无法通过 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 它,但是我的主机不能)。它所在的无线网络为什么要重要?

soa*_*dos 35

问题似乎是我所在大学的 AP(接入点)不支持桥接协议。

这是解决方法(据我所知,这种方式比默认情况下完成的桥接方式更健壮,但可能会有一些额外的开销(不确定有多少)):

  1. 创建内部网络交换机
  2. 将其连接到来宾操作系统
  3. 将内部虚拟适配器连接到 Hyper-V 创建的虚拟适配器,如下所示: 在此处输入图片说明.
    转到提供计算机 Internet 访问的适配器,然后单击共享。选择在步骤 1 中创建的适配器。
  4. 一切都应该运作良好。

此解决方案的功劳归功于宾厄姆顿大学的网络人员,更具体地说是 Joe 和 Alan。


小智 11

我有同样的问题。我使用的是只有无线连接的笔记本电脑。没有内置以太网卡。

系统为windows server 2012标准。我试图使用 hyper-v 安装 ubuntu 12.04 lts。我遇到了同样的问题。Ubuntu 将无法访问互联网,网络不断连接和断开连接。

所以,我遵循了“乔和艾伦”的方法。有用。

但我想找出为什么外部虚拟交换机不起作用。

看完这篇博客后,

将 Hyper-V 带入“Windows 8”

我发现了这个问题,也许还有更好的解决方案。

对于 hyper-v,如果外部虚拟交换机位于无线 NIC 的顶部,hyper-v 会使用 Microsoft 桥接器来进行 MAC 转换。因为一个无线信道绑定了一个MAC。如果您真的想了解,请阅读全文。

现在,根据那篇文章的信息,我可以很容易地得出结论,如果从外部查看服务器,物理网卡的同一 MAC 将有两个 IP 地址。

当然,如果您查看内部,这两个 IP 地址被分配给具有不同 MAC 地址的两个不同的虚拟网卡。但这两个 MAC 隐藏在桥后面,从外面看不到。

第一个 IP 将由主机操作系统使用(在我的例子中是 windows server 2012)。那个没有问题,因为 DHCP 服务器在机器启动时分配了一个。

问题来自第二个 IP 地址,当您启动虚拟机时(在我的情况下为 ubuntu),虚拟机将尝试从 DHCP 服务器获取 IP 地址,但会失败。大多数 DHCP 服务器,至少是我家中的路由器,不会将两个不同的 IP 地址分配给同一个 MAC。它可能会根据虚拟机的 DHCP 请求返回相同的 IP 地址,但是,它不起作用,因为我们不能对两台机器使用相同的 IP 地址。如果有人可以捕获 DHCP 的数据包,则可能会发现问题的详细信息。

这里有一些关于DHCP 的更多信息

我不确定是否有任何 DHCP 服务器可以为一个 MAC 提供两个 IP。根据@soandos 的描述,似乎是的。

现在,我们知道真正的问题是虚拟机无法获取分配的 ip 地址。

那么,有什么解决办法呢?

最简单的方法是在虚拟机中分配一个静态 IP 地址。启动虚拟机后,您可以为该虚拟机分配一个静态 IP 地址。这对我很有效,因为我只在家里使用我的笔记本电脑。

但是在某些情况下,例如在公共 wifi 中,您可能无法(安全地)执行此操作。