前言
我是一名刚入门的Arm-Linux小白,和大多数小白一样,碰到的第一个问题就是网络问题😄,一般arm开发板ping不通Ubuntu或者其他宿主机的原因一般是网段配置不正确,物理连接的问题极少啊。我在解决这类问题时,碰到多个计算机网络的知识点,比如:什么是桥接模式、NAT模式、仅主机模式?如何配置ip地址到同一网段内?接下来我将依次弄懂这两个问题并解决掉自己碰到的问题!
三种网络模式
桥接模式
桥接模式就是物理机、开发板、ubuntu三者组成一个虚拟交换机下的局域网,这个交换机是物理机虚拟出来的,当一个新的网卡通过网线连接到物理机时,物理机上就会出现一个虚拟网卡,如下图所示
物理机的这个虚拟网卡既可以作为自身的网卡,也可以作为虚拟交换机,当开发板要和ubuntu进行通信时,ubuntu和开发板必须处于同一局域网中,当然物理机也将同处于一个网段内,因为此时我们可以将物理机看成交换机。只要配置Ubuntu、开发板、物理机三者ip地址在同一网段内和配置一样的DNS服务,开发板就可以与Ubuntu进行通信了。
虚拟机桥接到上图网卡Realtek PCle
按下面的顺序依次进入配置页面:
1、打开虚拟机>虚拟机>设置>网络适配器,最后点击确认
2、打开虚拟机>编辑>虚拟网络编辑器>更改配置,然后再点击应用,最后点击确认。
到此网桥模式基本配置完成,接下来的任务就是修改ip地址!
如何配置ip地址在同一网段内呢
判断一个ip地址是否处于同一网段,只需将ip地址和子网掩码做与运算,结果相同则说明处于同一网段,同一网段内的计算机可以相互通信,互不干扰。比如:
开发板网卡信息如下:
网段计算:192.168.1.136 & 255.255.255.0 = 192.168.1.0
Ubuntu网卡信息如下:
网段计算:192.168.172.88 & 255.255.0 = 192.168.172.0,发现开发板与Ubuntu不在一个网段内,所以不能实现同信。
物理机虚拟网卡(上图以太网)信息如下:
网段计算:192.168.172.3 & 255.255.255.0 = 192.168.172.0 ,物理机和Ubuntu处于一个网段,所以可以是实现。
这个时候只需将开发板的ip地址修改一下就可以了,比如这里我将开发板ip地址配置成192.168.172.66,这样三者就在同一网段内了,相互之间就可以实现通信了。
Ubuntu上ping一下开发板:
通信成功!
开发板上ping一下Ubuntu:
通信成功!
桥接特点
- 手动为虚拟机配置IP地址、子网掩码、DNS服务
- 交换机
- 不可以上外网
到此呢,已经将我遇到的问题解决了,但是呢接下来我还想学习一下NAT模式和仅主机模式,嘻嘻😄~
NAT模式(地址转换模式)
1、学习NAT原理:NAT原理
2、我参考学习博客,有图有真相:虚拟机配置NAT模式
NAT模式下,即使物理机网卡的ip地址和虚拟机不在同一网段内,虚拟机也照样可以上网,有点类似家里的路由器,NAT和DHCP服务将不同的网络地址进行转换,从而实现虚拟机上网。有点难以理解的就是Vmware8这个虚拟网卡的作用,Vmware8是物理机和虚拟机通信的接口,NAT和DHCP工作在上面,简单地将第三者理解为路由器吧。
NAT特点
- 可以自动分配I地址,也可以手动设置静态IP
- 可以上外网
仅主机模式
参考学习:虚拟机配置仅主机模式
为了确保虚拟机安全,设置仅主机模式下虚拟机只能和物理机通信,如果要实现上网,物理机要共享给一个虚拟网卡。仅主机模式共享网卡
特点
- 不共享网卡情况下,不可上外网,只能与物理机通信。