ehs*_*san 18 virtualbox nat virtualbox-networking
我在 Ubuntu 14.04 LTS 中的 VirtulBox 5 中创建了一个 NAT 网络,设置如下
Natework Name : NatNetwrok1
Network CIDR: 10.0.2.0/24
Support DHCP :enabled
Support IPv6 :disabled
without any port forwarding
此外,我有两个虚拟机(两个都是 Xubuntu 克隆),我已经设置了网络设置以在每个虚拟机上启用两个网卡,并在所有四个适配器中使用以下设置:
附加到:“NAT 网络”
名称:“NatNetwrok1”
当我运行两个虚拟机时,我可以在运行 ifconfig 命令时看到以下设置
Xubuntu1 上的 ifconfig 结果
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)
Run Code Online (Sandbox Code Playgroud)
Xubutracentu2 上的 ifconfig 结果
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)
Run Code Online (Sandbox Code Playgroud)
在这 4 个 IP 之间 Ping 工作正常
但是我无法在这些虚拟机中的任何一个上访问 Internet
虽然如果将“NAT 网络”更改为“NAT”我可以访问网络但似乎成为不同虚拟网络的一部分并且我无法 ping有没有
人可以帮我识别和解决问题
谁能解释一下NAT和NAT 网络之间的区别
小智 7
根据 VirtualBox 手册,这些是您的 VM 的网络可能性:
NAT: VM 和主机之间的内部网络。此外,您还可以访问 Internet。NAT 模式下的两个或多个 VM 之间没有连接,仅与主机和 Internet 连接。
内部:具有此配置的所有 VM 将在它们之间建立连接,但不与主机或 Internet 连接。
仅主机:将在主机和具有此配置的所有 VM 之间创建虚拟网络,但您将无法访问 Internet。
NAT 网络:您可以访问同一预定义 NAT 网络和主机中的所有虚拟机,但无法连接到 Internet。
桥接:您的 VM 将与您的主机位于同一网络中,就像它是该网络中的其他计算机/服务器一样,因此,如果您的主机拥有 Internet 访问权限,它将具有 Internet 访问权限。
通用:很少使用高级和更具体的配置。
因此,如果您想创建一个与主机连接的内部网络,请选择 NAT 网络,但请注意,您将无法访问 Internet。仅当您只想从 VM 访问 Internet 而没有其他任何事情时,才会设置 NAT。
但是,如果您希望在两个 VM 和 Internet 之间建立连接,那么这些设置都不适合您。据我所知,您唯一的选择是在桥接模式下配置两个虚拟机,因此它们将是您主机网络中的“不同”计算机,您将能够从其中任何一个 ping 它们和 Internet。
另一方面,您似乎从另一个虚拟机克隆了一个虚拟机,因为两台机器具有相同的 MAC 地址(ifconfig 命令信息中的HWaddr),请注意您应该选中“重新初始化所有网卡的 MAC 地址”复选框“克隆时。具有相同 MAC 地址的两个设备总是会产生问题。
我不是 VirtualBox 的专家,所以也许其他用户可以告诉你其他可能的配置来获得你想要的。我希望这个信息对您有所帮助。
有关更多信息,您可以阅读此内容。
在 16.04(可能还有 14.04)中,VirtualBox (5.0.36)的主要打包版本的NAT 网络功能被窃听。
您可以自己检查:如果ls /usr/lib/virtualbox/VBoxNetNAT可执行文件存在,那么您可能有其他类型的问题。
此错误已在较新版本中修复。所以你应该安装一个新版本:
例如,如果您使用安装apt,则可以运行:
sudo apt remove virtualbox --auto-remove
Run Code Online (Sandbox Code Playgroud)
该修复程序可用于较新版本 (Ubuntu yakkety+)。对于旧版本:
使用以下脚本:
# 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
Run Code Online (Sandbox Code Playgroud)我使用来自默认 apt 存储库的 VirtualBox 5.0.40 遇到了这个问题。为了解决这个问题,我将每个 VM 配置为使用两个网络接口。
在 guets 操作系统 (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
Run Code Online (Sandbox Code Playgroud)
当然,这假设我的 NAT 网络使用子网10.10.11.0/24。根据您的情况调整数字或将其留给 dhcp,如您所愿。
注意:在静态配置中需要注意的一件重要事情是,对于这种特殊情况,您不能为其分配默认网关。提供enp0s8默认值(如 10.10.11.1)将导致操作系统创建到此网关的路由,该路由也可能会破坏您的互联网访问。您应该只在此特定接口需要路由到其他网络时才需要这样做,除了配置给它的网络。
要找出 Ubuntu 为您的环境分配的接口名称,您可以dmesg | grep eth.
| 归档时间: |
|
| 查看次数: |
72270 次 |
| 最近记录: |