最近系统升级到了Windows 7,用了几天都很好,没有什么问题。但是在运行VMware虚拟机的时候问题出现了,虚拟机中无法上网。于是Google之,解决问题。
网上虽然有解决方法,但是介绍的不是很详细,起码我第一遍没有看懂,而且找了十几个网址内容都是一模一样的,连图片都没有变。
在Vista上运行VMware虚拟机使用的是NAT方式上网,到了Windows 7中就不行了。在网络和共享中心里面看了一下,原来是VMware创建的虚拟连接被归为了公用网络,无法连接到Internet。家庭网络是可以连接到Internet的,于是我尝试将VMware的虚拟连接移至家庭网络,但是无果而终,没有什么办法。
于是上网Google一下,找到解决方案。虽然都是网上的方法,并非我原创,但是我将把它介绍的更为具体详细。
首先打开Windows 7的网络和共享中心,然后点左边的更改适配器设置,你会看到两个由VMware创建的虚拟连接,找到VMnet1,记住它的连接名称(我的为本地连接2)。
然后右击你当前使用中的连接(比如我使用的是无线网络连接)选择属性,把全部的钩都打上,然后在家庭网络连接中选择VMnet1连接的名字(比如我的是本地连接2)。
如果是有线,设置本地连接的属性(通过路由拨号)
如果是拨号连接,直接设置拨号连接属性,无需再在本地连接或者无线连接中设置。
就像这样:
接着选择VMnet1连接,选择属性,双击Internet协议版本4,手动设置IP地址,默认的为192.168.137.1,这样就可以了。注意不要和你当前使用的连接在同一个网段内。
主机上的设置就完成了。运行虚拟机,我安装的虚拟机为Windows XP,像刚才那样设置虚拟机中的当前使用中的连接,我的为本地连接,将IP地址设置为同主机的VMnet1的IP统一网段,192.168.127.2就可以,子网掩码使用默认,网关设置成VMnet1的地址,就是我刚才的192.168.137.1,另外DNS可以自行设置,也可以使用我使用的202.102.192.68
最后选择虚拟机的设置,将Network Adapter设置为Host-Only,如图:
好了,这样就可以在虚拟机中上网了。
另外,我发现VirtualBox创建的虚拟连接同样被归为了公用连接无法连接Internet,所以VirtualBox应该和VMware一样在Windows 7下遇到麻烦,可以效仿VMware的方法为VirtualBox设置Internet连接。
VMware网络的三种工作模式
VMware提供了三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式。
l bridged(桥接模式)
在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。使用桥接模式的虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。想让它们相互通讯,你就需要为虚拟系统配置IP地址和子网掩码,否则就无法通信。如果你想利用VMWare在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。
l host-only(主机模式)
在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。提示:在host-only模式下,虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连。在host-only模式下,虚拟系统的TCP/IP配置信息(如IP地址、网关地址、DNS服务器等),都是由VMnet1(host-only)虚拟网络的DHCP服务器来动态分配的。如果你想利用VMWare创建一个与网内其他机器相隔离的虚拟系统,进行某些特殊的网络调试工作,可以选择host-only模式。
l NAT(网络地址转换模式)
使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。如果你想利用VMWare安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议你采用NAT模式。
提示:以上所提到的NAT模式下的VMnet8虚拟网络,host-only模式下的VMnet1虚拟网络,以及bridged模式下的VMnet0虚拟网络,都是由VMWare虚拟机自动配置而生成的,不需要用户自行设置。VMnet8和VMnet1提供DHCP服务,VMnet0虚拟网络则不提供。
网络连接上网设置
1.bridge :
默认使用vmnet0
将虚拟机的ip设置与主机同网段未使用ip,其余与主机相同:
例如主机ip是10.70.54.31,设置虚拟机ip为10.70.54.22。netmask,broadcast,gateway,dns都与主机相同即可实现虚拟机<--->主机 虚拟机<---->互联网 通信。
2.nat :
默认使用vmnet8
将虚拟机设置成使用dhcp方式上网,windows下选择"自动获取ip",linux下开启dhcp服务即可
也可以手动设置:
ip设置与vmnet8同网段,gateway设置成vmnet8的gateway(/etc/vmware/vmnet8/nat/nat.conf)中可以查到vmnet8的gateway,通常是xxx.xxx.xxx.2。
netmask,broadcast设置与vmnet8相同,dns设置与主机相同。
例如 vmnet8 ip:172.16.249.1 gw :172.16.249.2
虚拟机设置: ip :172.16.249.100 gw: 172.16.249.2
3.host-only :
默认使用vmnet1
将虚拟机ip设置与vmnet1同网段,gateway设置成vmnet1的ip,其余设置与vmnet1相同,dns设置与主机相同
例如 vmnet1 ip :172.16.245.1
虚拟机设置: ip :172.16.245.100 gateway :172.16.245.1
这样就实现了虚拟机<--->主机 通信,但是 虚拟机<--->互联网 仍无法通信
虚拟机与互联网通信:
1.开启主机路由功能
2.设定iptables,使主机成为一台nat server
1. echo 1 >/proc/sys/net/ipv4/ip_forward 这样就主机就具有了路由功能
2. iptables -t nat -A POSTROUTING -o eth0 -s 172.16.245.0/24 -j MASQUERADE
这条规则意思是将来自172.16.245.0/24封包的来源ip伪装成eth0的ip,实现虚拟机与互联网通信
如果网络接口是ppp+或pppoe则需要修改成-o pppoe
当然-s 172.16.245.0/24 也要根据