1 主要原理
NAT网络模型基于NAT协议(Network Address Translation,网络地址转换),主要功能是能将IP数据报头中的IP地址转换为另一个IP地址的过程。
在实际应用中,NAT主要用于实现私有网络访问公共网络的功能。
NAT网络模型使得虚拟机的私有ip可以通过虚拟NAT设备转化为物理主机的ip,然后通过物理网卡实现外网的访问
需要注意的是Virtualbox中的NAT网络模型分为了NAT
和NAT网络
,两者的区别主要有:
NAT
下的虚拟机之间是互相隔离的,彼此之间不能进行通信,也就是不能彼此互ping,因为它们各自分配着独立的虚拟NAT设备NAT网络
下的虚拟机之间因为共享同一台虚拟NAT设备,彼此互通
再回过来总结下NAT网络模型和物理主机的连通情况:
- 虚拟机可以ping通物理机,但是物理主机无法ping通虚拟机
- 如果物理主机可以上外网,那么虚拟机就可以上外网
VirtualBox的NAT模型下,主机ping不通虚拟机,但是VMware经过实验验证是可以ping通的,既然无法ping通,那不是代表无法使主机ssh连接到虚拟机吗?在Virtualbox下有什么方法解决吗?方法还是有的:
方法一:端口映射
虚拟机采用NAT网络
配置,虚拟机的ip相对于宿主机是隐藏的。想要使得宿主机对虚拟机进行访问,需要配置端口映射
通过将宿主机的一个端口(localhost:port)与虚拟机的ssh端口进行连接,宿主机通过访问宿主机端口(localhost:port)实现对虚拟机ssh端口(ip:22)的访问
选择NAT网络
模式,然后打开virtualbox的【全局设定】-【网络】,添加新的NAT网络,然后点击【端口映射】,然后新增端口映射的配置
确认好配置后,记得勾选NAT网络的启动网络选项。
配置虚拟机网络:
启动虚拟机:
我们配置网络:
重启虚拟机。
终端进行连接成功。
4.2 网络原理图
4.2.1 NAT
如上图,每台虚拟机都连接着独立的虚拟NAT设备,虚拟机之间彼此都是独立的,彼此之间不能进行通信
唯一的通信道路就是借着NAT设备和利用物理网卡来实现对外网的访问,也就是只要物理机能够上外网,那么虚拟机也就能上外网
4.2.2 NAT网络
如上图,NAT网络模式下虚拟机之间共享同一台虚拟NAT设备,也就是彼此之间都连接在同一网段下,彼此之间是可以实现通信的
与物理主机的通信方式就和NAT是一样的,通过物理网卡来实现对外网的通信
4.3 配置方式
4.3.1 NAT
NAT
模式的配置还是比较简单的,只需要启动网卡并选择模式为NAT即可,启动后会发现已经给虚拟机分配好ip
查看ip,并尝试ping物理主机和外网,观察网络连通情况,如图
宿主IP
另起一台虚拟机,新增网卡并配置为NAT模式,尝试两台虚拟机进行互ping,结果是彼此之间都无法ping通
4.3.2 NAT网络
由上面的原理可知,NAT网络
模式下是共享同一台虚拟NAT设备,所以需要新建一台共享的NAT设备,【全局设定】-【网络】-【添加新的NAT网络】
然后创建虚拟机的时候,新增网卡并选择NAT网络
模式,界面名称选择刚才新建的NatNetWork
即可
网络情况基本上跟上面保持一致,ping主机和外网都没问题.
唯一的区别,另起一台虚拟机,同样模型选NAT网络
,然后彼此之间这一次是可以ping通的
参考原文:https://joyohub.com/network/virtoolbox-network/,部分图片改成实践操作。
文章评论