与桥接模式不同的是,NAT模式是通过共享主机IP实现与外网的互联,其基本模式图如图1所示,其基本原理为:虚拟机先与NAT子网络通讯,然后通过NAT子网络接通外网。
![图2 NAT模式框架](https://i-blog.csdnimg.cn/blog_migrate/f4986a05e5470f86575ec04fac05117b.png)
我们通过VirtualBox可以创建NAT网络,也就是图中的虚拟二层交换机所在的子网络,在VirtualBox中的具体执行步骤如下:
Step1: 管理->全局设定->网络,开始新建一个NAT网络。图2示例中的网络名称为NatNetwork1,网络地址为:192.168.1.0,子网掩码为255.255.255.0,默认的网关为192.168.1.1
![](https://i-blog.csdnimg.cn/blog_migrate/c139a63e0a8312b71d2d5a0940a4d9d9.png)
Step2: 将虚拟机的网络模式设置为NAT模式(选择上述创建的NatNetwork1子网络)
![](https://i-blog.csdnimg.cn/blog_migrate/5d3e29fcce61614c8bf6e1efd743e85a.png)
Step3:此时虚拟机将获得一个合法的动态IP,该IP处于上述创建的NAT网络中。当然也可将虚拟机的IP地址设置为静态IP,且该静态IP需要和上述创建的NAT子网为同一个网段即可。如可见任意一台虚拟机设置为:192.168.1.4(该IP是在上述NAT子网段下面),完成该步骤即可以实现共享主机的ip地址访问外网。
Step4:上述3个步骤的配置通过主机打开了通往外网的世界,虚拟机可以主动访问主机,但是主机还无法访问虚拟机,若要实现这一功能,可以借助VirtualBox提供的第三种网络模式 (VirtualBox Host-Only Network),在主机的适配器中我们可以看到“VirtualBox Host-only Network”网络适配器,将该网络适配器的IP地址设置为虚拟机的IP地址,网关和虚拟机一样。(实际上,这个适配器正式打通主机与虚拟机的桥梁)
Step5:若要使用Shell等软件连接虚拟机中的Ubuntu系统,还需要一个简单的端口映射,Shell使用的是ssh协议进行通讯,其端口为22,具体的操作步骤如图4所示,这一步的关键在于端口的转发,上述步骤其实只完成了IP地址的转发,由于ssh协议为端到端的连接,故应该进行端口转发。
![](https://i-blog.csdnimg.cn/blog_migrate/0ee8b3074ba9b01a9af4fc62eee06b43.png)
Step6:使用XShell软件IP地址设置为:10.141.91.66,端口:1111.相当于访问192.168.14:22