做 Linux 开发的同志们,虚拟机是一个必不可少的工具。其中,在开发之前,打通虚拟机与宿主机之间的通信通道是最重要的一步。
下面,我们就来讲一下 虚拟机 与 宿主机 之间通信方式,两种方式:桥接 和 NAT。在这里,我不会详细的讲他们的概念,大家可以自行百度。
我们来看一下各自该怎么操作才能实现互联。
首先
我们来看一下VM这个软件给我们准备好了什么,见下图:为我们准备好了三个不同类型的虚拟网卡。
它会对应到Windows网络连接模板下的虚拟网卡。如下图:Vmnet0是桥接模式,所以没有虚拟网卡,有的人或许有,这个不重要。重要的是大家记住这两个地方是虚拟机和宿主机通信的桥梁。
NAT配置
在配置NAT之前,我们需要弄清楚虚拟机和宿主机之间的通信路线。
三条路线,大家根据不同颜色来区分,下面我们讲一下这些个部分对应啥玩意。
宿主机
宿主机很好理解,就你你本地电脑嘛,他有个IP地址,在 网络连接 里可以看,如下图:
在这里,你得关注以下东西:
IPv4地址:机器的唯一标识符,如你得身份证。
IPv4子网掩码:确定了网络号和主机号位数。
IPv4默认网关:路过的数据包该往那个路由器上丢,是访问外网的去路。
IPv4DHCP服务器:负责分配子网IP地址。
IPv4DNS服务器:负责域名解析。
这个我分析的比较透彻,后面的大家自行对比分析。
VMnet8
这个是虚拟机给我们自动创建的虚拟网卡,文章开始我就讲过了。下面我们来看看他的配置。
大家可以看到,我们这个VMnet8的网段和宿主机的网段不在同一个网段 ,这就是NAT模式的巧妙之处,对,就是网段转换。所以,你不要自作聪明,把宿主机和VMnet8配置在同一个网段,那NAT模式就失去了他的灵魂。
NAT设备
这个设备在VM软件中的 编辑 -》虚拟网络编辑器 -》中,然后点击 更改设置 就可以对其进行更改了。如下图:
上面这个页面主要需要你关注这么几个地方:
NAT设置:设置NAT设备的配置参数。
DHCP设置:这是DHCP服务器配置参数。
子网IP:确定子网IP的网段。上面在VMnet8中我们已经说过了,不要和宿主机在同一个网段,
所以,将其设置为 192.168.203.0。
子网掩码:确定网络号和主机号位数,这个根据常规设置为 255.255.255.0 就可以了。
NAT设置
这个NAT设备有两个功能,从我画的关系图中就可以看出:其一:IP网段转换(绿色2);其二:作为网关进行数据转发(绿色3、4)。
NAT设备属于虚拟机这一方的设备,所以我们要将其IP(网关IP)设置在192.168.203.0这个网段,在这里我给其设置为192.168.203.2,你可以占用其他主机号。
DHCP设置
在这个地方我们需要设置 起始IP地址 和 结束IP地址,它就是规定了子网IP地址该怎么分配,还是那个规则,网络号不变,主机号范围由你来定。但是得注意,不要让VMnet8的IP地址出现在这个范围里。原因请看: xShell连接不上虚拟机
虚拟机
这是我们最后一个要配置的设备了,是不是很高兴,终于要讲完了。他是在这里配置的,如下图:
就是在Linux中的网络配置里,将IPv4配置一下就可以了。我们来查看一下其IP
大家可以看到,这样就保证虚拟机IP地址精确落到我们设置的范围里并且和VMnet8不同。
验证配置效果
外网和本地宿主机都 ping 的通,所以,配置的没毛病。
桥接配置(未完待续)
首先,我们在虚拟机里面 ping www.baidu.com 是 ping 不通的。
于是,就需要我们的配置了。先查看自己本地 的IP
知道本地主机的 IP 地址之后 来到虚拟机的网络配置面板