VMware的出现解决了我们搭建测试环境的门槛---使用VMware搭建出来的虚拟机可以很好的解决我们的一系列痛点:可移植,可快速回滚,易于搭建,安装方便,环境相对物理机是轻量化的。实在是脚本测试,生产环境测试的一大利器。
那么,我们安装一个虚拟机当然不仅仅是需要它能跑程序就可以了,还需要它能有网络的扩展,如果有多个虚拟机,还希望能方便的管理这些机器,并且多个虚拟机组成一个合理的平台,例如,某些集群的部署测试就不是一个虚拟机能够完成的了。因此,我们需要根据自己的实际使用情况来设置VMware的网络。
一,VMware安装的时候都安装了些什么?
这里需要先说明,VMware服务通常都是安装在windows宿主机内的,下面这个图是我这个宿主机的网络设备:
根据主机的配置不同,有的不会带有蓝牙芯片,这里就不讨论了,上面图表示我用的是wifi,wifi是一个单独的网卡,另一个物理网卡没有插网线也没有配置,剩下的vmnet1,vmnet8,Hyper-V Virtual Ethernet Adapter这三个就是VMware安装的时候vm虚拟出来的三个网卡。
二,bridge
VMware打开虚拟机设置,勾选bridge即可启用网桥模式,如下图:
那么,这个时候到底是用的哪个网卡呢?是用的虚拟网卡吗?bridge有什么特点?什么时候需要使用网桥模式呢?下面将一一解答这些问题
(1)使用的是宿主机现在在使用的网卡,如果你的宿主机连接的是wifi,那么就会使用WiFi那张网卡,如果是网线,那么,将会使用以太网这个网卡,那么,有证据吗?当然是有的,证据如下:
(2)像我现在在使用的是WiFi的网卡,那么,如果勾选网络桥接,将会自动使用WiFi网卡,如果WiFi关闭,使用网线,将会使用以太网那张网卡。而如果我有安装一个linux虚拟机,那么,这个虚拟机将会通过WiFi网卡与外界互联。
当然了,如果不使用DHCP而使用静态IP,需要更改Linux虚拟机的网络配置,将WiFi内没有使用过的一个IP绑定到虚拟机的网卡上,然后重新启动网络,假设宿主机的网段是192.168.202,那么,虚拟机也必须使用这个网段,网关也必须指向宿主机在使用的网关.
这就造成了一个问题,虚拟机一般是需要固定IP的,bridge模式下,将会固定在和宿主机一个网段的IP,如果宿主机切换网络了,那么,虚拟机网卡设置也需要更改了,这就给虚拟机的使用造成了比较大的困扰。
贴一张桥接模式下,虚拟机的网卡配置文件,桥接一般是需要设置静态IP的哦
我的宿主机所在网段是192.168.0,网关是192.168.0.1,这些都必须定义在虚拟机网卡文件内:
TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="fae00e07-f23d-4920-9a23-065f425083df" DEVICE="ens33" ONBOOT="yes" IPADDR=192.168.0.11 GATEWAY=192.168.0.1 NETMASK=255.255.255.0 DNS1=61.128.114.166
bridge,顾名思义是起到一个桥梁的作用,也可以认为是一个代理功能,这个模式是硬件层面居多的。
(3)特点如下:
宿主机和虚拟机可互通,宿主机可连互联网,宿主机和虚拟机必须是在一个网段下,假设宿主机所在网段是192.168.0,那么,虚拟机的网络设置也必须是192.168.0,否则两者不能联通。换句话说,宿主机和虚拟机必须是同一个网段,地位是相同的,虚拟机等于宿主机的网络的现实衍生。因此,bridge模式下的虚拟机可以通过局域网内其他的服务器管理,视同真的物理机。
举个例子,我在笔记本A搭建了一个Linux虚拟机,然后有同一个局域网的笔记本B,这个B可以通过ssh直接登录到Linux虚拟机上。那么,对于虚拟机来说,我们可以更快的将这个虚拟机与其它人分享了。
三,nat模式
这个模式和bridge是完全不同的,它可以说是一个完全的私网。首先,我们看看如何启用nat模式。
启用nat模式后,假设刚才这个Linux虚拟机,需要相应的设置,才可以正常的使用宿主机的网络。
[root@kvm opt]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE="Ethernet" BRIDGE='br0' PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" NAME="ens33" UUID="2c230a84-5a54-4d7c-8f21-ea413a238b91" DEVICE="ens33" ONBOOT="yes" [root@kvm opt]# cat /etc/sysconfig/network-scripts/ifcfg-br0 TYPE='Bridge' NAME=br0 BOOTPROTO=static DEFROUTE=yes UUID=4b914579-b311-4cf3-a990-53fbf418a8a1 DEVICE=br0 PREFIX=24 IPADDR=192.168.118.128 GATEWAY=192.168.118.2 NETMASK=255.255.255.0 DNS1=61.128.114.166 DNS2=8.8.8.8