转自:http://www.lyblog.net/detail/385.html
我是一个喜欢折腾的人,刚开始学电脑的时候是从安装操作系统开始的!当时也是刚开始接触电脑,整天没事就拿着手机百度。看了很多种安装操作系统的方法,却苦于没有电脑来给我测试(当时还没买电脑)。于是就跑到外面的网吧做测试。没有光驱,也就让我知道如何用U盘来安装系统。 之后自已有了电脑,舍不得那么折腾,了解到“虚拟机”这玩意。当时用的是vmware workstation,后来感觉太大了,就改用其组件vmplayer,但是却苦于它的网络不能配置,那时也不得不把vmware woskstation也安装上,以便于网络配置。后来,虚拟机用的越来越频烦,也使得我对它有了更加深入的了解。下面我将介绍几种方法来,让你只安装vmplayer的情况下,来更改进行网络配置。
windows平台vmplayer网络配置修复
怎么可以支持呢
vmplayer原生是不支持网络配置功能的,它只用新建虚拟机,和打开,运行虚拟机等简单功能。让它实现vmware workstation的功能,你可能会感觉不太靠谱。但实际呢? vmplayer只是一个vmware workstation的一个精简之后的结果,而它是存在一个完整vmware网络配置,而实际使用时,你却发现很难找到网络配置的窗口。主要原因是vmplayer安装之后不存在网络配置文件vmnetcfg.exe而无法直接启动网络配置管理,那么修复方法有两种:
- 通过其它方式来启动网络配置启动器
- 找回网络配置文件vmnetcfg.exe,双击之后进行网络配置。
直接通过控制台命令来打开网络配置启动器
直接通过命令来打开网络配置启动器的话,相对下面介绍的方法来说是简单很多的。步骤如下:
- 以管理员身份运行“命令提示符”(可以按win后,输入cmd,按ctrl+shift+enter)
-
关于有一些相关命令及作用,我在DOS命令中给出(//表示注释,故不要一起复制到命令窗口)。
复制
D:\ //移动到电脑D盘 cd D:\Program Files\vmware //移动vmplayer安装目录 rundll32.exe vmnetui.dll VMNetUI_ShowStandalone //启动网络配置启动器
vmplayer获取vmnetcfg.exe文件来打开网络启动器
vmplayer 3、4 提取vmnetcfg.exe的方法vmplayer 3、4中修复网络配置相对vmplayer 5来讲,要好一点。因为vmplayer 3、4中就包含了vmnetcfg.exe这个文件,而vmplayer 5中就不包含这个文件(要下载完整的)。下面来具体加以说明:
- 打开windows命令控制台:
-
在控制台内运行vmplayer程序,代码如下:
复制
E:\VMware-player-3.0.0-197124.exe /e .\extract //自己实际使用时,请把路径改为当前实际路径
- 以上文件解压到了extract中后,进入文件夹,打开压缩包“network.cab”,并把其中的“vmnetcfg.exe”文件复制到你的安装目录即可。
不做过多解释,直入主题吧!
- 进入vmware官网,下载vmware workstatin(版本要与你用的vmplayer版本相对应)
-
下载完成以后,打开windows命令控制台,输入以下代码:
复制
E:\VMware-workstation-full-9.0.0-812388.exe /e .\vmware_extract //自己实际使用时,请把路径改为当前实际路径
- 解压完成以后,进入到vmware_extract目录,找到一个名为“core.cab”的压缩文件,从中提取“vmnetcfg.exe”,复制到vmplayer安装目录即可。
对于以上完成文件复制后,你应该知道怎么用了吧!你只用双击该文件即可进行网络配置了。如下图所示:
网络配置详解
在认识vmplayer网络配置之前,我们来了解一下什么叫虚拟网卡。百度百科是这样说的:虚拟网卡,即用软件模拟网络环境。 在安装vmplayer之后,电脑上默认的会多出两张虚拟网卡:VMware Network Adapter VMnet1、VMware Network Adapter VMnet8。如下图所示:
关于以上的两张虚拟网卡除了接入方式之外,就没有什么不同了。VMware Network Adapter VMnet1一般是以HOST-ONLY的方式让虚拟机接入网络,而VMware Network Adapter VMnet8则是以nat的方式让虚拟机接入网络。以上是默认情况,但都可以更改的。下面是我安装之vmplayer网络的默认配置
下面来对vmplayer中三种网络模式:桥接模式(bridged)、主机模式(host-only)、网络地址转换模式(nat)。
vmplayer 网络配置理论篇
桥接模式(bridged)
桥接这个说法不仅仅只用于网络通信,它还用于程序设计的设计模式。它的本意是:把两个角色之间的继承关系改为了耦合的关系,从而使这两者可以从容自若的各自独立的变化。这个解释也同样适用于vm网络的链接方式。下面先贴出桥接模式下的网络模型图,以便于理解。
在以上网络模型图中,我们可以看到,VMnet0当作为一个虚拟交换机,而实体电脑和虚拟中的操作系统都是通过虚拟网卡边接到了这个虚拟交换机上,从而实现相互的通信。因此,你完全可以这样来理解,桥接模式下,虚拟机和实体机是处于同一网段。因此处于此网段的所有电脑都可以与虚拟机进行通信。 在实际环境中,有很多有使用桥接方式就可以直接联网,而有的人使用桥接方式却发现只能主机与虚拟机之间相系通信,虚拟机却无法访问外网,这种情况一般是因为你网络连接是要做一定的配置的。比如说:你是通过拨号上网,那么,在虚拟机中也只能通过拨号才能连接网络;你连接路由器后,主机不用配置的话就有网,那么虚拟机此时也无须配置并可以正常连接网络。说了这么多,也就是为了告诉你:在桥接模式下,你主机是怎么配置的,那么你的虚拟机操作系统也必须做相应的配置。由于相关配置只与你自己电脑相关,故无法给出具体的配置方案。请自行参考你的电脑网络配置。
主机模式(host-only)
什么是主机模式呢?host-only顾名思义,这种技术提供的是主机和虚拟机之间的网络互访,而不是虚拟机访问internet的技术。(回答参考搜搜百科)。 以下是主机模式下的网络模型图。
由以上网络模型图,很清楚的知道了虚拟机和宿主机之间是可以通信(通过VMnet1来直接通信),却无法与外界通信的。 说是这样来说,我们是有办法来让虚拟机连接网络:网络共享(也可以通过代理服务器方式,在此略过)。具体操作方法如下(以下配置内容基于Win 7,其它windows系统操作类似):
- 找到已连接网络的那张网卡,我的电脑上是“无线网络连接 2”
- 点击“右键”,选择“属性”,选择“共享”选项卡
- 选择“允许其它网络用户通过……”,选择对应的“家庭网络连接”项
- 一般来讲,按以上设置即可实现虚拟机联网。但因为网络连接的不同,可能会出现仍然无法联网,此时,你可以尝试着手动设置虚拟网卡(主机ip段的ip,主机相同的DNS)。
网络地址转换模式(nat)
仔细的上图与”主机模式下的网络模型图”后,你应该就明白了“主机模式”下为什么不能访问外网了。 对于nat模式,上面的图已经解释够多了,这次就少说一点。 在NAT模式下,相当于重新在原来网络的基础上又分了一层子网,因些我们可以为虚拟机来指定ip地址,从而固定ip。
vmplayer 网络配置实战
在看完以上内容之后,相信你对vmplayer三种网络结构有了一定的了解。下面我将对虚拟机的网络配置项进行解说。 由于桥接的方式的配置方法是与宿主主机相关的,而且配置起来主要是在虚拟机操作系统中(相对较简单),就在此不多说了。 关于“主机模式”与“NAT”模式类似,所以我就主要来说一下“NAT模式”下的配置情况吧!
vmplayer NAT模式下网络配置实例
首先安装虚拟机,然后双击vmplayer安装目录下的“vmnetcfg.exe”,选择VMnet 8,你将看到。
下面对以上各项参数加以说明:
- Add Network:添加一张新的虚拟网卡
- Remove Network:删除当前选定的虚拟网卡
- Briged to:选择要连接的网卡,从而桥接到相应的网络中
- NAT Settings:Nat连接时的详细设置(主要可以设置路由)
- DHCP Settigs:主要是设置虚拟机中系统自动获取ip地址范围等相关信息
- Subnet IP:设置ip地址段
- Subnet mask:设置子网掩码
如果你完全按照上图一样设置,并且你的虚拟机是自动获取ip的话,那么你的虚拟机内的操作系统就一定能够访问外网。下面我来提取几张图,相信你能从中看懂的。 下图是NAT settings的具体内容:
下图是DHCP Settigs的具体内容:
虚拟机自动获取的ip地址如下:
上面的三张图连起来一起看,找一下对应关系就可以了。 下面将说给出一张虚拟机中设置固定ip的一张图,你也找一下对应关系,然后你应该什么都明白了吧!
你可能会问,为什么DNS服务器列表要空着,因为在vmplayer默认设置中NAT连接是自动取得可用DNS服务器,为了省事,可以不填,当然也可以直接填你已知的DNS服务器IP(如:8.8.8.8)。或者,你直接在vmplayer nat设置中进行DNS配置,并在虚拟机中来指定并使用该DNS服务器。设置图如下所示:
使用DOS命令来配置vmplayer网络
vmplayer中网络配置可以直接使用可视化界面操作,如果你想来点刺激,还可以这样(//后表示注释)。
//vmplayer网络配置命令 vnetlib -- stop nat vnetlib -- stop dhcp vnetlib -- set vnet vmnet8 mask 255.255.255.0 vnetlib -- set vnet vmnet8 addr 10.11.12.0 vnetlib -- update dhcp vmnet8 vnetlib -- update nat vmnet8 vnetlib -- update adapter vmnet8 //恢复原来配置 vnetlib -- export backup-file-name vnetlib -- import backup-file-name //虚拟网卡管理操作 vnetlib -- remove adapter vmnet* vnetlib -- add adapter vmnet1 vnetlib -- update all
或者你这样来写命令,也是可以的。
start /wait vnetlib.exe -- stop nat start /wait vnetlib.exe -- stop dhcp start /wait vnetlib.exe -- set vnet vmnet8 mask 255.255.255.0 start /wait vnetlib.exe -- set vnet vmnet8 addr 192.168.150.0 start /wait vnetlib.exe -- update dhcp vmnet8 start /wait vnetlib.exe -- update nat vmnet8 start /wait vnetlib.exe -- update adapter vmnet8 start /wait vnetlib.exe -- start dhcp start /wait vnetlib.exe -- start nat
注意:执行以上命令请保证是以管理员身份运行的控制台,且已经把当前位置移动了vmplayer的安装目录。
注意事项
- vmnetcfg.exe与vmplayer版本要相对就,不然会出错的。别外请注意操作系统64位和32位,不要从一个64位电脑上复制一份vmnetcfg.exe到32的机器上,因为这样是不能正常使用的。
- 注意解压文件放置路径不存在中文,不然很有可能会报错,而导致不能解压。
- 实际操作时第一次时出错了,你可以多试几次。
Linux上安装vmplayer后的网络配置
linux下vmplayer网络配置可视化
与windows 操作系统下类似,vmplayer在linux下也是可以打开网络配置器的可视化操作界面的。具体所涉及到命令如下:
cd /usr/lib/vmware/bin ln -s /usr/lib/vmware/bin/appLoader vmware-netcfg ln -s /usr/lib/vmware/bin/vmware-netcfg /usr/bin/vmware-netcfg
完成以上操作之际后,你就可以到liunx的菜单中找到vmplayer的网络配置项,即可完成网络配置(由于操作方法与windows 下的相同,故不多说)。
linux通过配置文件来配置网络
接着,你就可以到linux菜单管理器中打开网络配置界面,具体配置方法是与上文相同,故不做介绍。
linux下自定义桥接(Bridged Network)网络通过以下的命令,可以用eth2接口创建新的桥接,并且可重新对虚拟机进行配置,以便在新创建的网络上进行通信。具体命令如下 (//后为注释):
//创建一个新桥接(显示为vmnet4) vmnet-bridge -n 4 -i eth2 -d /var/run/vmnet-bridge-4.pid -1vmnet4 //创建字符设备文件 mknod /dev/vmnet4 c 119 4 //为新创建的界面输入 vmnet-netifup -d /var/run/vmnet-netifup-vmnet4.pid /dev/vmnet4 vmnet4 //运行以下命令,使eth2界面变为混杂模式 ifconfig eth2 0.0.0.0 proimsc up //重新配置您的虚拟机,以便使用新的网络。(将以下内容直接复制到vmx文件) ethetnet0.connectionType = "custom" ethernet0.vnet = "vmnet4"其它方式配置
因为linux大多数软件的配置都是写到了相应的配置文件中,故我们可以找到相应的配置文件来配置相应的网络。下面我列出几个相关的网络配置文件:
/etc/vmware/networking /etc/vmware/vmnet8/nat/nat.conf /etc/vmware/vmnet8/dhcpd/dhcpd.conf
下面是networking文件中的内容(相信你能够看懂)
VERSION=1,0 answer VNET_1_DHCP yes answer VNET_1_DHCP_CFG_HASH 7B40DF333615CDE0D26BD0B715239F60EAB7246B answer VNET_1_HOSTONLY_NETMASK 255.255.255.0 answer VNET_1_HOSTONLY_SUBNET 172.16.27.0 answer VNET_1_VIRTUAL_ADAPTER yes answer VNET_8_DHCP yes answer VNET_8_DHCP_CFG_HASH 06B6B5604338A68F50349C54F629F739183066EB answer VNET_8_HOSTONLY_NETMASK 255.255.255.0 answer VNET_8_HOSTONLY_SUBNET 192.168.174.0 answer VNET_8_NAT yes answer VNET_8_VIRTUAL_ADAPTER yes
关于接下来的两个文件内容就不列出来了。具体每一项配置的意思,就得你自己慢慢摸索。因为我自己曾配置改过几次配置文件,但感觉还没有了解到可以拿出来说几句的程度。最后还是给点小忠告:在Linux下更改配置文件前,记得备份(cp命令,eg:sudo cp networking networking.bak);不然,你会死得很惨。
相关文件下载
由于vmplayer在不断的更新,以上的方法可能对于新版的vmplayer失效。由人个人事务,不能及时更新方法(如以上的方法在vmplayer 6中已经部分失效了,你可以在下面文件中下载适用于vmplayer 6、6.0.1中适用的vmnetcfg.exe文件),故给出的共享目录,你可以到些目录来找你可能需要的相关文件。
特别感谢
在文章的最后,我不得不感谢强大的谷歌和百度,以及对我有很大帮助的几篇文章(有几篇文章可能要代理才能正常访问)。
- Vnetlib - Documenting the command line
- VMware Documentation Center
- 在Vmplayer中自定义桥接网络(Bridged Network)的配置
- VMware虚拟机上网问题
(本文完)