virtualbox配置实现PC-虚拟机-开发板互ping

1 设置virtualbox网卡#

1.1 关闭虚拟机#

1.2 设置添加网卡#

进入设置-网络

1.2.1 添加网卡1(NAT网络)#

这个网络是主机通过网络地址转换到虚拟机,比如主机用无线网卡WLAN上网,用NAT转换比较合适,这样虚拟机也可以访问外网。

1.2.2 添加网卡2(host only网络)#

这个网络是主机通过无线网卡WLAN上外网,但是虚拟机想通过有线网卡和主机、甚至与开发板互相ping通,传输文件。

当然开启host only模式前先确保windows下的virtual host only网卡有开启,如下图:

如果没有请按照下图操作:(这里是添加host only网卡)

2 配置windows和虚拟机#

2.1 配置window以太网卡#

刚添加了虚拟机虚拟virtual host only网卡, 那么我们反正用的WLAN上的外网,为了方便,设置windows下的以太网卡网段和virtual host only网卡保持一致。

2.2 配置虚拟机网络#

一般默认情况下,虚拟机是通过NAT共享网络给虚拟机用的,那么此时虚拟机也是可以上网的,只是不能和外界开发板进行互相ping, 同时windows主机也不能ping虚拟机。 如下图:



图中可以看到两块网卡,enp0s3是Ubuntu默认的网卡(NAT),enp0s8是新增的网卡(host only),可以看到enp0s8还没有分配IP地址,我们需要手工指定一下。sudo vim /etc/network/interfaces将文件内容修改为如下所示:

1
2
3
4
5
6
7
8
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto enp0s8
iface enp0s8 inet static
address 192.168.56.101
netmask 255.255.255.0

再来看下网卡ip信息:

3 测试上网状态#


从测试结果上可以看到虚拟机上外网和ping windows主机都是ok的。

  10.80.0.75时无线网卡的ip,
  192.168.56.100是以太网卡的ip,
  192.168.56.101是host only网卡的ip。 

同理用Windows ping虚拟机也是ok的。

用开发板ping主机和虚拟机发现,只能ping通windows主机,无法ping通虚拟机,如下图。这是为什么呢?

这是由于我们windows主机和开发板用的网线直连,两个以太网卡在同一网段下,当然能够ping通。但是虚拟机和windows主机用的确是host only网卡(NAT方式用来上外网),这样只能保证虚拟机和Windows主机是互通的,但是却无法被开发板访问,我们的开发板是没有无线网卡的,所以不能用WLAN,因此我们要想让开发板访问到虚拟机还得经过windows的以太网卡。

那么我们虚拟机和windows主机是host only方式,所以我们无法用到以太网卡进行虚拟机和windows主机的交互。所以我们可以采取将host only网卡桥接到以太网卡,进入 网络-更改适配器-同时选中host only网卡和以太网卡,点击右键-选择桥接,如下图所示:

这样我们的虚拟机的host only网卡就可以透过以太网卡和开发板交互了,效果如下:

开发板能够ping windows主机和虚拟机。

4 改进和优化#

如果不想在windows下进行host only网卡和以太网卡桥接,也可直接把virtualbox的第2路网卡由原来的host only修改成以太网卡桥接模式,如下:

这样需要配置虚拟机的enp0s8网卡和windows主机的以太网卡网段保持一致的。(和前面2.2操作一样)

4.1 windows ping 虚拟机#

4.2 虚拟机 ping windows#

4.3 开发板 ping windows和虚拟机#