VirtualBox 中主机操作系统(18.04)和客户机(*nix)之间的网络

VirtualBox 中主机操作系统(18.04)和客户机(*nix)之间的网络

尝试在虚拟机上启动并运行网络,但遇到了一些我无法解决的困难。

主机操作系统是 Ubuntu 18.04,客户操作系统是基于 nix 的操作系统,我可以在其中包含和加载必要的驱动程序,例如virtio、以及其他任何驱动vmxnet3程序。e1000

如果我编译加载驱动程序的客户操作系统 VMvmxnet3并在VMware Player(NAT 网络) 上运行它,网络将运行良好,我可以使用 scp 等在主机和客户操作系统之间传输文件。ifconfig客户操作系统的输出:

在此处输入图片描述

如果我编译加载驱动程序的客户操作系统虚拟机virtio并在VirtualBox(再次是 NAT 网络)上运行它,由于某种原因,我无法启动并运行网络。ifconfig客户操作系统上的输出:

在此处输入图片描述

我注意到,在 VirtualBox 中,我没有为接口分配 (ivp4) IP vt0。我当然可以运行ifconfig vt0 xxx.xxx.xxx.xxx netmask 255.255.255.0,但我不确定这是否能解决问题,至少在尝试通过 ssh/scp 连接到虚拟机时不起作用。

在此处输入图片描述

我已经检查主机 PC(MTU 1500 的 IP,与客户操作系统相同,为 172.16.129.1)是否打开了端口 22;

sudo nmap -sS -p- 172.16.129.1

Starting Nmap 7.60 ( https://nmap.org ) at 2018-06-19 10:47 CEST
Nmap scan report for linux (172.16.129.1)
Host is up (0.000013s latency).
Not shown: 65532 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
902/tcp  open  iss-realsecure
1716/tcp open  xmsg

因此基本上,仅有的除了所用软件(VMware 与 VirtualBox)的明显差异外,这两个虚拟机之间的区别在于它们各自加载的驱动程序。用于编译客户操作系统虚拟机的其余代码完全相同,没有任何变化,所以我真的很困惑。

我也尝试过使用e1000驱动程序并在 VirtualBox 中选择一个英特尔 NIC 驱动程序,但这也不起作用 - 到目前为止,我在 VirtualBox 中得到的最接近的结果是使用驱动程序virtio

有人对我可以尝试的方法有什么建议吗?或者有人知道我可能忽略了什么吗?例如,是否存在vmxnet3VirtualBox 驱动程序?

我当然可以选择 VMware 解决方案,但我更喜欢使用 VirtualBox,因为这就是我正在使用的 - 我刚刚测试了 VMware,看看它是否在那里运行,结果是可以的。

答案1

我发现我没有正确设置 VirtualBox,因此它根本无法工作。我没有将Paravirtualization interfaceVirtualBox 中的设置为KVM,因此virtio驱动程序未启用。现在一切都解决了,一切都运行正常 - 我可能被我在 VMware Player 中不必这样做这一事实所欺骗。

相关内容