虚拟机的三种网络模式
首先说下写这篇文章的原因,记得刚开始接触Linux的时候,使用的是ubuntu Kylin 14.04,那时候为了联上互联网使用Vmware的NAT模式。后来开始学习服务器的相关知识,换成了CentOS6.7,这时候为了能远程登录使用的是Bridge模式,但是一直没有让这个服务器连互联网(Bridge模式是可以联网的),连安装软件都是通过本地的yum源,现在放假回家,电脑连的是无线网(没有插网线),突然发现一直ping不同虚拟机,才发现是模式选择的问题,查了资料之后才发现原来是需要使用Host-Only模式,由此我就想写一下三种模式的区别。
虚拟机的网络模式
大家一般使用vmware和virtual box这两款虚拟机软件,一般来说,虚拟机有三种网络模式:
- NAT
- Bridge
- Host-Only
初学者看到虚拟机有三种网络,估计就慌了,笔者也是。哪一种网络是适合自己的虚拟机呢?下面分别介绍三者虚拟机的区别,以供选择。
NAT
NAT:Network Address Translation(网络地址转换)
NAT模式中,就是让虚拟机借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。
NAT模式中,虚拟机的网卡和物理网卡的网络,不是同一个网络,虚拟机的网卡,是在Vmware提供的一个虚拟网络中。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。
采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。 这种方式也可以实现Host OS与Guest OS的双向访问。但网络内其他机器不能访问Guest OS,Guest OS可通过Host OS用NAT协议访问网络内其他机器。NAT方式的IP地址配置方法是由VMware的虚拟DHCP服务器中分配一个IP。
改好之后需要修改vmnet8的网关,即可脸上互联网了
Bridge
桥接网络是指本地物理网卡和虚拟网卡通过VMnet0虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位,那么物理网卡和虚拟网卡就相当于处于同一个网段,虚拟交换机就相当于一台现实网络中的交换机,所以两个网卡的IP地址也要设置为同一网段。
在bridged模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机。它可以和局域网内的任何一台主机进行方向访问。
在bridged模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。 使用bridged模式的虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。想让它们相互通讯,你就需要为虚拟系统配置IP地址和子网掩码,否则就无法通信。
主机不在局域网中时不可使用
Host-Only
在Host-Only模式下,虚拟网络是一个全封闭的网络,它唯一能够访问的就是主机,相当于和主机公用一个私有网络。其实Host-Only网络和NAT网络很相似,不同的地方就是Host-Only网络没有NAT服务,所以虚拟网络不能连接到Internet。主机和虚拟机之间的通信是通过VMware Network Adepter VMnet1虚拟网卡来实现的。
Host-Only的宗旨就是建立一个与外界隔绝的内部网络,来提高内网的安全性。
选择适合自己的模式
选择NAT模式
如果你想利用VMWare安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议你采用NAT模式
选择Bridge模式
如果你想利用VMWare在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择bridge模式
选择Host-Only模式
主机断网时可以选用Host-Only模式,链接无线网时也可以使用,这样可以避免NAT的ip变化,不利于实验
三种模式下虚拟机和物理机通信的设置方式
要通信,必定设置虚拟机和物理机在同一网段。
Bridge:设置本地连接和虚拟机的eth0在同一网段
Host-Only:设置WMnet1和虚拟机的eth0在同一网段
NAT:设置VMnet8的ip,但是DHCP动态变化,不利于实验。