虚拟机网络配置详解
前两天装个虚拟机,尼玛发现网配不好,完全已经忘记怎么配了。还是赶紧复制一篇记下来靠谱点。好记性不如烂笔头。
VMware虚拟机有三种网络模式,分别是Bridged(桥接模式)、NAT(网络地址转换模式)、Host-only(主机模式)。
VMware workstation安装好之后会多出两个网络连接,分别是VMware Network Adapter VMnet1和VMware Network Adapter VMnet8,这两个是可以在主机的网络连接中可以查看到的,还有一个是VMnet0,可以在virtual network editor中看到。这三个虚拟网络都是VMware安装好之后自动生成的,不需要手动修改。其中VMnet0用于Bridged模式,VMnet1用于Host-only模式,Vmnet8用于NAT模式。VMnet8和VMnet1提供DHCP服务,VMnet0默认则不提供。
1、Bridged(桥接模式)
在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信,虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。从网络技术上理解相当于在宿主机前端加设了一个虚拟交换机,然后宿主机和所有虚拟机共享这个交换机。
如果你想利用VMWare在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。
1.1、桥接模式下的网络设置
下面演示一下桥接模式下的网络设置,虚拟软件VMware workstation 9, 主机系统为win8,虚拟机系统为centos 6.4。
(1)检查本地网络连接属性中的VMwareBridge Protocol选项是否勾选,默认安装好Vmware后是自动勾选的,如下图所示。
图(1)
(2)虚拟机网络设置为桥接:
图(2)
(3)查询主机网络参数,在命令行中输入 ipconfig,参数如下所示:
图(3)
(4)在centos虚拟机中修改网络配置主要在/etc/sysconfig/network-scripts/ifcfg-eth0文件中,修改如下:
图(4)
各参数意义如下:
DEVICE是网卡名称
BOOTPROTO是获取的ip地址类型,static和none为静态地址,dhcp为动态获取ip地址
HWADDR是MAC地址
MTU是最大传输单位
NM_CONTROLLED是否启用NetworkManager图形界面配置工具
ONBOOT设置网卡是否在Linux系统启动时激活,这一项一般都要设为yes
IPADDR是本机ip地址
NETMASK是子网掩码
GATEWAY是设置网关的
DNS1是首选DNS服务器
DNS2时辅助DNS服务器
还有一些几个参数一般情况下不用配置:
BROADCAST是广播地址
NETWORK是子网地址
在以上参数中IPADDR要跟主机IP在同一个网段,GATEWAY默认网关要跟主机一致。
修改好网络参数文件后要重启网络服务,命令是service network restart如下所示:
图(5)
如上配置后一般情况下主机和虚拟机之间都能够进行通讯了,配置好dns的话,虚拟机也可以访问外网。
如果出现主机不能ping通虚拟机的情况,可以查看主机的防火墙的入站规则中对ICMP协议相关的配置文件是否启用。
2、NAT(网络地址转换模式)
使用NAT模式,就是让虚拟系统借助NAT的功能,通过宿主机所在的网络来访问公网。在这种模式下宿主机成为双网卡主机,同时参与现有的宿主局域网和新建的虚拟局域网,但由于加设了一个虚拟的NAT服务器,使得虚拟局域网内的虚拟机在对外访问时,使用的则是宿主机的IP地址,这样从外部网络来看,只能看到宿主机,完全看不到新建的虚拟局域网。
采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。
如果你想利用VMWare安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议你采用NAT模式。
2.1、NAT模式下网络设置
(1)检查宿主机的VMware DHCP Service 和VMwareNAT Service两个服务是否启动:
图(6)
(2)虚拟机网络设置如下:
图(7)
(3)Virtual Network Editor设置
VMware安装后之后可以点击菜单栏的Edit中的Virtual Network Editor对虚拟的网卡进行配置修改。
图(8)
可以看到有三个默认的虚拟网卡,而NAT模式用到的就是VMnet8网卡,还可以自行添加和删除网卡。
VMnet8默认是提供DHCP服务的,所以虚拟机无须手动设置IP。在Virtual Network Editor界面中还可以对NAT和DHCP服务作相应的修改,但一般情况下我们无须修改配置。
(4)虚拟机中网络配置
因为NAT有DHCP服务,所以我们只需要将BOOTPROTO参数设置为dhcp就可以了,由dhcp服务器分配IP地址。默认参数如下所示:
图(9)
默认情况下VMware和虚拟机的配置都不需要修改,所以NAT模式是最简单的。
ps: 我在配置好NAT模式后,虚拟机能ping通主机,主机不能ping通虚拟机,这个暂时没搞明白,还是说NAT模式下宿主机不能访问虚拟机?。
/etc/init.d/network restart
3、Host-only(主机模式)
在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式,在这种模式下宿主机上的所有虚拟机是可以相互通信的,但虚拟机和真实的网络是被隔离开的。
在这种模式下新建了一个由所有虚拟机与宿主机所构成的局域网,但该局域网与宿主机本身所处的现有局域网是相互独立的,如果不做额外路由设置,这两个局域网之间不会连通,因此新建的局域网可以认为是一个单独从属于当前宿主机的私有网络,其成员为当前宿主机和相关的所有虚拟机。
从网络技术上讲相当于为宿主机增添了一个虚拟网卡,让宿主机变成一台双网卡主机(宿主网卡+虚拟网卡)。同时在宿主机后端加设一个虚拟交换机,让宿主机和所有虚拟机构成另一个虚拟的局域网。由于具备双网卡,宿主机可同时参与两个局域网(现有的宿主局域网+新建的虚拟局域网),只不过缺省情况下两个局域网不连通。
如果你想利用VMWare创建一个与网内其他机器相隔离的虚拟系统,进行某些特殊的网络调试工作,可以选择host-only模式。
3.1、Host-only模式下网络设置
(1)虚拟机网络设置如下:
图(10)
(2)Virtual Network Editor设置
图(11)
在上图的virtualnetwork editor界面中我们可以看到Host-only模式下是由VMnet1网卡负责的,VMnet1提供DHCP服务,所以虚拟机中我们不需手动设定IP。
Host-only模式下的网络配置其实也很简单,一般情况下虚拟机中的网络设置都不需要修改,自动获取就可以了。
配置好后主机就能ping通虚拟机,但虚拟机ping主机时就要注意了,不是去ping宿主网卡产生的IP地址,而是由虚拟网卡VMnet1产生的IP地址,宿主机命令行中输入ipconfig就可看到VMnet1的产生的IP地址,如下图所示:
图(12)
虚拟机ping主机:
图(13)
主机ping虚拟机:
图(14)