VirtualBox中的NAT网络中的VM上没有Internet访问


14

我在Ubuntu 14.04 LTS的VirtulBox 5中使用以下设置创建了NAT网络

Natework名称:NatNetwrok1
网络CIDR:10.0.2.0/24
支持DHCP:启用
支持IPv6:禁用,
无需任何端口转发

此外,我有两个VM(两个Xubuntu克隆),我已经设置了Network(网络)设置,以在每个VM上启用两个NIC(在所有四个适配器中都具有以下设置):

附加到:“ NAT网络”
名称:“ NatNetwrok1”

当我运行两个虚拟机时,我可以在运行ifconfig命令时看到以下设置

ifconfig在Xubuntu1上的结果

eth0      Link encap:Ethernet  HWaddr 08:00:27:00:8c:03  
          inet addr:10.0.2.9  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe00:8c03/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:12133 (12.1 KB)  TX bytes:8517 (8.5 KB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:9e:20:e8  
          inet addr:10.0.2.8  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe9e:20e8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:10294 (10.2 KB)  TX bytes:8798 (8.7 KB)

ifconfig在Xubutracentu2上的结果

eth0      Link encap:Ethernet  HWaddr 08:00:27:00:8c:03  
          inet addr:10.0.2.9  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe00:8c03/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:12133 (12.1 KB)  TX bytes:8517 (8.5 KB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:9e:20:e8  
          inet addr:10.0.2.8  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe9e:20e8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:10294 (10.2 KB)  TX bytes:8798 (8.7 KB)

这4个IP之间的Ping正常工作,
但是我无法访问这两个VM上的Internet,
但是如果将“ NAT Network”更改为“ NAT”,我可以访问网络,但似乎已成为不同虚拟网络的一部分,因此我无法ping他们彼此之间
有人可以帮助我确定和解决问题吗?

谁能解释一下NATNAT网络之间的区别


同样的问题...有人可以帮忙吗?
monitor35

我最近在默认ubuntu存储库中使用虚拟盒5.0.40遇到了此问题。为了解决这个问题,我为每个VM配置了两个接口。一个使用内部NatNetwork,另一个使用桥接模式。在来宾操作系统(ubuntu 16.04)下,您需要调整/ etc / network / interfaces,以便第二个界面在来宾中显示。这样一来,每个VM都可以位于内部NAT中,并且可以同时访问Internet。
JulioHM

Answers:


7

为什么不工作?

在16.04(大概14.04)的NAT网络的主要封装版本功能的VirtualBox(5.0.36)被窃听

核实!

您可以自己检查:如果ls /usr/lib/virtualbox/VBoxNetNAT可执行文件存在,则可能存在其他问题。

修理它!

此错误已在较新版本中修复。因此,您应该安装一个新版本:

删除旧版本

例如,如果使用进行安装apt,则可以运行:

sudo apt remove virtualbox --auto-remove

安装新版本

该修复程序可用于较新的版本(Ubuntu yakkety +)。对于旧版本:

  • 访问virtualbox.org,并手动下载最新版本
  • 要么
  • 使用以下脚本:

    # add the official repository
    wget -q -O - https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo apt-key add -
    echo deb http://download.virtualbox.org/virtualbox/debian `lsb_release -cs` non-free contrib | sudo tee /etc/apt/sources.list.d/virtualbox.org.list
    # install the newer version
    sudo apt install virtualbox-5.1
    

1
如果您安装了virtualbox的先前版本,请确保同时也卸载virtualbox-dkms以使此修补程序起作用。否则,你可能仍然被卡住没有互联网
巴拉克Itkin

7

我在默认的apt仓库中使用VirtualBox 5.0.40遇到了这个问题。为了解决这个问题,我将每个VM配置为使用两个网络接口。

  • 适配器1:桥接适配器(到您的实际网卡)
  • 适配器2:NAT网络(您选择)

在guets OS(Ubuntu 16.04)下,您需要进行调整/etc/network/interfaces以显示第二个界面。就我而言,我需要VM在NAT网络内部使用静态IP,这就是我所得到的。

## Bridge to Internet
auto enp0s3
iface enp0s3 inet dhcp

## NAT Network among VMs
## Static is optional
## DHCP if you don't need it
auto enp0s8
iface enp0s8 inet static
  address 10.10.11.100
  netmask 255.255.255.0

当然,这假设我的NAT网络使用了子网10.10.11.0/24。根据您的情况调整数字或将其留给dhcp。

注意:在静态配置中要注意的一件事是,对于这种特殊情况,您不能为其分配默认网关。给enp0s8一个默认的(如10.10.11.1)会导致操作系统创建该网关的路由和路由还可以搞砸了你的互联网连接,以及。仅当此特定接口需要路由到其他网络(配置的接口除外)时,才需要这样做。

要找出Ubuntu为您的环境分配的接口名称,您可以dmesg | grep eth

在此处输入图片说明


当我在eth0和eth1中都使用“ dhcp”时,我的工作效果更好。它只是自动为NAT分配了10.0.2.15,而我的公共Internet eth1没有IP,但是我可以从VM ping Internet!
Milean'Sep

6

根据VirtualBox手册,这些是VM的网络功能:

  • NAT: VM和主机之间的内部网络。此外,您还可以访问Internet。处于NAT模式的两个或多个VM之间没有连接,仅与主机和Internet连接。

  • 内部:具有此配置的所有VM之间将具有连通性,但不能与主机或Internet连通。

  • 仅主机:使用此配置,将在主机和所有VM之间创建一个虚拟网络,但是您将无法访问Internet。

  • NAT网络:您可以访问同一预定义NAT网络和主机中的所有VM,但无法连接到Internet。

  • 桥接:您的虚拟机将与主机位于同一网络中,就像该主机是该网络中的其他计算机/服务器一样,因此,如果您的主机具有虚拟机,则将具有Internet访问权限。

  • 通用:很少使用的高级且更具体的配置。

因此,如果要创建与主机连接的内部网络,请选择“ NAT网络”,但请注意,您将无法访问Internet。仅当您只想从虚拟机访问Internet而没有其他任何设置时,才设置NAT。

但是,如果要在两个VM和Internet之间建立连接,则这些设置都不适合您。据我所知,您唯一的选择是将两个VM都配置为桥接模式,这样它们将成为您主机网络中的“不同”计算机,并且您将能够对它们进行ping通,并从其中的任何一个ping通Internet。

另一方面,由于两台计算机都具有相同的MAC地址(ifconfig命令信息中的HWaddr),因此您似乎将一个VM与另一个VM隔离了,请注意,应选中以下复选框:“ 重新初始化所有网卡的MAC地址克隆时。具有相同MAC地址的两个设备总是会产生问题。

我不是VirtualBox的专家,所以也许其他用户可以告诉您其他可行的配置,以获取所需的信息。我希望这个信息对您有所帮助。

有关更多信息,请阅读此内容


3
NAT网络会阻止您的访客连接到Internet 是不正确的。我可以从NAT网络上的VM guest虚拟机连接到Internet。根据对forums.virtualbox.org/viewtopic.php?f=3&t=69504的最后评论,“ NAT模式意味着每个VM都隔离在其自己的路由器后面... NAT网络与NAT相同,只是您可以拥有多个VM连接到同一内部路由器。”
eebbesen 2016年

2

这可能是VirtualBox中的错误。我也遇到过同样的情况(Ubuntu 16.04.2 LTS,VirtualBox 5.0.32_Ubuntu r112930):设置NAT网络,为两个Ubuntu VM配置该网络。每个VM可以ping / SSH到另一个VM,通过端口转发,我可以从主机SSH到每个VM。但是虚拟机内部无法访问Internet。一位同事在Windows主机,VirtualBox(未知版本)和相同的VM上进行了相同的尝试,并且成功了。

作为一种解决方法,我为每个VM配置了第二个网卡:第一个使用NAT来访问Internet,第二个使用“ NAT网络”来访问其他来宾。我必须在第一个(NAT)卡上设置SSH端口转发,并在一个VM上配置另一个SSH端口(即,VM1上为2222-> 22,VM2上为2223-> 23)。

根据文档,NAT和NAT网络都应该能够访问Internet。不同之处在于,第一个主机已隔离主机↔来宾连接,因此来宾不能互相访问,只能访问主机。后者将所有来宾合并到一个网络中(并提供DHCP之类的服务),以便他们可以相互访问。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.