在Vmware上使用NAT网络搭建Centos7 虚拟机

背景

在程序开发下,我们经常需要使用虚拟机环境来模拟服务器环境并且测试我们的程序。而在windows操作系统下,常用的两种虚拟环境软件是Vmware和加固我的Virtual Box(包括基于Virtual Box的Vagrant)。同时为了便于宿主机快速连接虚拟机环境,我们需要在宿主机上有端口能直接映射到虚拟机内部(Docker的libnetwork也可以实现,但这里我们还是优先使用Vmware+NAT),这里我们需要使用NAT网络地址映射搭建我们的虚拟机网络。

NAT(Network Address Translation,网络地址转换)

NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
这种方法需要在专用网(私网IP)连接到因特网(公网IP)的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址(公网IP地址)。这样,所有使用本地地址(私网IP地址)的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
另外,这种通过使用少量的全球IP地址(公网IP地址)代表较多的私有IP地址的方式,将有助于减缓可用的IP地址空间的枯竭。在RFC 2663中有对NAT的说明。

实践

  1. 首先使用Centos 7镜像安装我们的虚拟机,安装完毕之后进入Vmware网络编辑界面,菜单:编辑->编辑虚拟网络->NAT设置,如下图所示:
    Network
  2. 可以看到这里我们的宿主机IP是 192.168.18.0,网关IP是192.168.18.1, 子网掩码是255.255.255.0
    对应这个NAT网络里的虚拟机的IP范围则是192.168.18.2 ~ 192.168.18.255
    这里我们首先设置一下第一个虚拟机的IP为192.168.18.2,并且设置将虚拟机的22端口映射到宿主机的 10222端口上(10000+命名规则虚拟机最后一个ip段*100+虚拟机端口,为符合计算习惯这里使用十进制计算)。如下图所示:
    nat_setting

  3. 接着进入虚拟机网络设置目录/etc/sysconfig/network-scripts,设置虚拟机的静态IP:
    network-scripts

  4. 这里我们的网卡脚本对应是ifcfg-ens33,编辑该文件:
    scripts

  5. 接着重启网络服务并测试连通性service network restart || systemctl restart network
    network-restart

  6. 启动sshd服务并且设置开机启动 systemctl start sshd & systemctl enable sshd:
    sshd

  7. 本地putty测试ssh连接:
    putty-ssh

总结

通过以上的步骤就成功的使用NAT网络设置了一台虚拟机,对应的内部IP是192.168.18.2,对于以后新建虚拟机我们只需要拷贝这份虚拟机的数据,修改里面的网卡脚本,并且在Vmware的虚拟网络编辑界面添加对应的端口映射,就可以快速搭建我们的虚拟机网络集群了。