最近,因为想调试Uboot,连接开发板与虚拟机ubuntu20时,在打通网络通信这一块快整崩溃了?
幸亏,结果还好。也算从坑里爬出来了。这里梳理下。
首先,对于我们配置网络的目的,提出几个问题。
【1】、如何配置可以使虚拟机与物理电脑主机相连同?
【2】、如何配置可以使虚拟机上外网(互联网)?
【3】、如何配置可以使虚拟机与开发板相互连同?
【4】、如何配置可以使物理电脑主机、虚拟机、开发板的IP固定,是静态IP?方便我们调试,不用IP地址换过来换过去?
本文章,为了简化问题,不讨论外联物理路由器(交换机)的情况。电脑、开发板和物理路由器(交换机)又是另外一种拓扑。
然后,基于上面问题,我们需要理清,物理电脑主机、虚拟机、开发板三者之间的网络拓扑结构。
本人也看过其他网上文章,要不是讲的无目的,不知道用来干什么,只将概念。要不就是说不用理清拓扑,只会让你按图索骥,授予鱼,不授予渔,不能变通。
我们这里从总体到细节上,搞清。先下面几个概念:
上图中,1是Vmware虚拟机软件自带的路由器(交换机或者是一根网线)比路由器功能更强大,我这里称它为虚拟路由器。
上图中,2是ubuntu虚拟机的网卡。
虚拟路由器是你安装Vmware软件时,默认自带的,跟你安不安装Ubuntu虚拟机无关。且如上图默认情况下,自带3个网口(远大于网口的作用)。为什么默认带了3个网口?
因为Vmware有3种类型,所以他每个类型举了一个例子。实际上,你可以再增加网口。如下图添加网络:
但一般没人添加,因为1个类型1个网口已经足够我们使用了。
ubuntu虚拟机的网卡也是可以添加的,虚拟机可以任意编辑硬件配置的是他最大的优点。
上图中的,步骤就是添加了一个虚拟机的网卡。
好了,知道了虚拟路由器和虚拟机网卡都可以添加修改。有助于对网络拓扑的理解。
虚拟路由器的三种网口配置时,相互之间约束的规则。
最常见的有3条:
1、虚拟路由器的所有网口中只有一个可以配置成NAT模式。
2、如果有一个虚拟路由器网口配置为桥接模式,且为自动桥接。则其他虚拟路由器不能再配置为桥接模式,因为自动桥接占用了所有的可用的物理网络适配器(桥接至哪里的选项没了)
3、虚拟机网卡可以是多个,虚拟路由器网口可以是多个。所以两者直接的连接关系,可以多种多样。只要连接线路有一个通了就通了。所以网络拓扑不是简单的三种虚拟路由器网口模式的三选一。
三种虚拟路由器网口模式,桥接模式、NAT模式、 Host-only模式。
引用网上的介绍,这种文章网上很多。
这里简单介绍他们的用处
桥接模式,他的最大功能是,ubuntu虚拟机可以直接连接开发板。我们可以让ubuntu虚拟机具备一个物理网口,有线无线的均可。例如,桥接至有线网口,那么我们插一根网线到电脑,连接到外部的物理路由器或开发板,相当于插在了ubuntu虚拟机上。
这样就可以上网了,但IP不可控,是由外部的物理路由器分配的。
NAT模式,该模式最大的功用是,在没有外部物理路由器的情况下,让虚拟机可以上网。
Host-only模式,该模式最大的功用是,只能让物理主机和ubuntu虚拟机之间互联互通。
由上面可见,
【1】、如何配置可以使虚拟机与物理电脑主机相连同?
配置虚拟机网卡。三种模式都可以。
【2】、如何配置可以使虚拟机上外网(互联网)?
配置虚拟机网卡为桥接(连接外部路由),NAT模式(无外部路由)即可上网。
【3】、如何配置可以使虚拟机与开发板相互连同?
只能使用桥接模式,桥接至开发板。
【4】、如何配置可以使物理电脑主机、虚拟机、开发板的IP固定,是静态IP?方便我们调试,不用IP地址换过来换过去?
这个后续完善。