虚拟机 网络适配器 NAT模式和桥接模式区别
最近在做嵌入式开发的时候在虚拟机(VMware Ubuntu)“网络配置”上遇到了许多问题,在以前的学习中一直没有弄清楚,也就懵懵懂懂糊弄过去,今天终于理出来一些头绪,文章有点长,但是我尽量把我了解到的讲清楚!
在文章开始之前我先说明一下文章中用到的一些名词:
宿主机:Windows电脑
虚拟机:VMware下的Ubuntu
局域网:路由器下的各真实主机组成的网络
内部局域网:宿主机构建的一个内部网路
桥接模式和NAT模式的区别
1、NAT模式
NAT模式是我们在学习开发中经常用到的模式,并且从一开始学习老师就教我们使用配置NAT模式,以至于我们以为只有NAT模式可以用,其实不然;教我们使用NAT模式只是为了便于在无网络环境下能够显示IP地址,在这里如果遇到不显示ip的问题请参考:虚拟机不显示ip地址
那么什么是NAT模式呢?
相当于宿主机构建一个内部局域网(注意此局域网为宿主机构建),虚拟机Ubuntu无法和局域网中的其他真实主机进行通讯。只需要宿主机器能访问互联网,那么虚拟机Ubuntu就能上网,不需要再去配置IP地址,子网掩码,网关。虚拟机和宿主机能够互相ping通。示意图如下:
在设置为NAT模式时,就算宿主机没有访问互联网,虚拟机依旧可以分配到ip地址,在虚拟机中使用ifconfig命令依旧可以查看ip地址。如图:
当宿主机连接到互联网时,我们可以对比一下宿主机的ip和虚拟机的ip(截图如下),我们发现:宿主机有一个路由器为其分配的ip,同时也有一个自己构建内部局域网后分配得到的ip,内部局域网分配的ip和虚拟机的ip处在同一个网段,所以虚拟机可以和内部局域网内的任何主机进行通信。
宿主机:
虚拟机:
2、桥接模式
桥接模式个人感觉就更加简单了(当然这是在DHCP自动分配ip的情况下),桥接模式是将虚拟机Ubuntu作为一台独立的主机,它可以访问局域网内任何一台机器。但是在无DHCP的情况下需要我们手动去配置IP地址和网关,IP地址要与主机的无线网的IP段需对应,子网掩码,网关,DNS都需要与宿主机保持一致。虚拟机可以和局域网中的任何主机进行通信。示意图如下:
对比一下宿主机的ip和虚拟机的ip,我们发现:宿主机和虚拟机ip属于同一个网段,所以虚拟机可以和局域网内的任何主机进行通信。
宿主机:
虚拟机:
注:DHCP简介
DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。