写在前面
虚拟机与Windows连接的方式
- 桥接模式:相当于让虚拟机与win处于平级关系,我们的路由器需要分别给win和ubuntu分配ip地址,Ubuntu与win在同一段网络
- NAT模式:ubuntu相当于win的下级,路由器分配ip给win,win在充当路由器分配新的ip给ubuntu,Ubuntu与win不在同一段网络
为什么需要三者互连
其实需要的只是开发板与ubuntu互连即可,但是ubuntu是虚拟机运行在win上,所以是绕不开与win的连接
在开发阶段,通过tftp去加载镜像文件,通过NFS去挂载根文件系统,可以很容易的来替换内核以及传递文件,所以让开发板与Ubuntu互连很有必要
连接的几种方式
Windows有两个网卡,一个是无线网卡,可以使用WiFi联网,一个是有线网卡,可以使用网线直连
Ubuntu因为是虚拟机可以设置任意多个网卡
这就产生了我们数个连接的方法
方法1:开发板连接路由器,Ubuntu通过NAT桥接无线网卡
- 优点:基本不需要什么软件操作,开发板还能联网
- 缺点:往往我们工作的地方没有路由器,我们又需要开发板通过串口连接电脑,场景并不方便
这种方式下开发板,win,Ubuntu均是有路由器直接分配IP,肯定属于同一网段,配置起来也是最简单的
方法2:开发板直连电脑,Ubuntu桥接有线网卡
- 优点:没有场景限制,操作也比较容易
- 缺点:Ubuntu无法联网了
这种方法,需要手动配置win有线网卡、开发板、Ubuntu的IP地址
路由器分配给win的Ip相当于没意义了
在网上看到Windows可以将无线网卡的网络共享给有线网卡,这样之后Ubuntu就可以连接网络了,能够解决这种方法所带来的弊端,没做过尝试感兴趣可以试一试
方法3:开发板直连电脑,Ubuntu通过NAT连接无线网卡
- 优点:Ubuntu能联网
- 缺点:通过端口转发实现,只能连上配置的端口,但开发够用了

这种方法需要设置有线网卡和开发板的IP,并设置虚拟机的端口转发
这种方式只是让开发板与win联通了,在配置的端口上win搭建起了开发板与Ubuntu的桥梁,除去这些端口外开发板不能与虚拟机通信
方法4:开发板直连电脑,Ubuntu两张网卡一个NAT连接无线网卡,一个桥接有线网卡
- 优点:没有上面几种方法的所有缺点
- 缺点:配置多个网卡,操作复杂一些

这种方法下相当于相当于将前边几种方法特点合到了一起,网卡多了一些,配置稍微复杂一点但更好理解