虚拟机上设置静态IP的做法。
1、问题:由于业务需要,个人笔记本电脑上用Vmware安装了3台Ubuntu虚拟机,现要求pc机连入局域网后,四台机器(3台ubuntu虚拟机+1台宿主机)能上网,并且,虚拟机要使用某一网段的固定IP。
2、思路:在pc上安装了若干虚拟机,可认为这是独立的机器,虚拟机和宿主机的连接方式有桥接模式、NAT模式、Host-Only模式,结合本人需求,采用NAT+固定IP的模式。
3、理论:
虚拟机NetworkAdapter三种方式的区别
Vmware在安装时默认安装了两块虚拟网卡,VMnet1和VMnet8,另外还有VMnet0。这些虚拟网卡的配置都是由Vmware虚拟机自动生成的,一般来说不需要用户自行设置。
Vmware提供了三种网络连接模式,分别为
1)、bridged(桥接模式):默认使用VMnet0,不提供DHCP服务
在桥接模式下,虚拟机和宿主计算机处于同等地位,虚拟机就像是一台真实主机一样存在于局域网中。因此在桥接模式下,我们就要像对待其他真实计算机一样为其配置IP、网关、子网掩码等等。
当我们可以自由分配局域网IP时,使用桥接模式就可以虚拟出一台真实存在的主机。
2)、NAT(网络地址转换模式):默认使用VMnet8,提供DHCP服务
在NAT模式下,宿主计算机相当于一台开启了DHCP功能的路由器,而虚拟机则是内网中的一台真实主机,通过路由器(宿主计算机)DHCP动态获得网络参数。因此在NAT模式下,虚拟机可以访问外部网络,反之则不行,因为虚拟机属于内网。
使用NAT模式的方便之处在于,我们不需要做任何网络设置,只要宿主计算机可以连接到外部网络,虚拟机也可以。
NAT模式通常也是大学校园网Vmware最普遍采用的连接模式,因为我们一般只能拥有一个外部IP。很显然,在这种情况下,非常适合使用NAT模式。
3)、Host-only(主机模式):默认使用VMnet1,提供DHCP服务
在Host-only模式下,相当于虚拟机通过双绞线和宿主计算机直连,而宿主计算机不提供任何路由服务。因此在Host-only模式下,虚拟机可以和宿主计算机互相访问,但是虚拟机无法访问外部网络。
当我们要组成一个与物理网络相隔离的虚拟网络时,无疑非常适合使用Host-only模式。
4、解决方案
1)、打开VMware,Edit->Virtualnetwork editor。
由于NAT模式默认使用的虚拟网卡为VMnet8,并且使用DHCP协议自动给虚拟机分配IP,因此,要在此处取消DHCP功能,同时设置SubnetIP为自己所要的网段。
2)、在虚拟机的启动界面,分别设置3台机器的Networkadapter为NAT模式。
3)、在宿主机中找到vMnet8,设置IP为网段内的IP,同时设置子网掩码、网关、DNS等。
4)、在ubuntu的终端命令行,
~$ sudogedit /etc/network/interfaces
在打开的文件中输入IP、子网掩码、网关:
auto eth0
iface eth0 inet static
address 10.37.12.23
netmask 255.255.255.0
gateway10.37.12.1
~$ sudogedit /etc/resolv.conf
在打开的文件中输入当前网络的DNS,如:
nameserver 202.98.0.68
重启网卡命令 :sudo/etc/init.d/networking restart.
当然,如果不想用命令行操作,也可以在ubuntu的桌面右上角manualnetwork configuration中进行设置。
但是,无论怎么设置,都要根据自己实际情况、当前的网络环境而定。
5、总结
前两天向单位的一位领导大牛请教搭建虚拟网络的具体问题,他告诫我:做技术,一定要理论先行。一句话受益良多,感触颇深!确实,在实际操作中,如果没有理论背景,那么搞成功了不知道其必然性,搞失败了,也不知道其原因所在!但如果有理论支撑,结合利用本地资源环境,那会觉得技术天地其乐无穷!