网站首页 - 关于我们 - 团队成员 - 联系我们

 rss
♀ 您现在的位置在:首页 -> CNFUG期刊 -> 正文(阅读
VMware-虚拟与现实的完美结合

gsging(黄花鱼) <gsging@sina.com>

相信大家对vmware都非常熟悉。它可以用来在一台PC中实现多PC的效果,又称虚拟机。虚拟机软件既省钱又安全,对想学*nix的朋友来说很方便。我是一名软件公司的技术支持工程师,公司的日常运作和FreeBSD不沾边,所以在公司的时候没有在真实环境下玩FreeBSD的硬件和网络条件,平时需要带笔记本上下班,我便是vmware的受益者之一。前段时间看了powerplane兄弟写的"一种穷人利用vmware玩FreeBSD的方法",感觉不错。今天就由我为大家介绍我的使用心得。

使用环境:

1、笔记本使用的Windows 2000 Advanced Server在公司可以通过局域网访问Internet。
2、Win2000在实际局域网中的IP地址是192.168.0.240;网关是192.168.0.254;DNS是210.52.149.2;
3、我使用的是vmware3,VMNet1的IP地址是192.168.171.1;DHCP服务器地址是192.168.171.254;
VMNet8的IP地址是192.168.34.1;DHCP服务器地址是192.168.34.254;
4、Brigde方式安装的FreeBSD的IP地址是192.168.0.179;网关是192.168.0.254;DNS是210.52.149.2;

实现功能:

1、我在公司的局域网内部使用我的FreeBSD维护着一个PHPBB论坛;
2、FreeBSD在公司的时候需要能上网,进行FTP、Ports安装软件等;
3、回到家中需要Win2000与FreeBSD连通;
4、回到家中需要维护PHPBB论坛及其数据库,并需要用Win2000的IE进行浏览;

存在的问题1:

细心的朋友可能会发现以上需求中的矛盾。vmware中的guestos与外界通讯方式有3种:Bridge、Nat和Host-Only。如果要FreeBSD中的论坛能够被公司局域网内部的其他机器访问,则此FreeBSD在vmware中一定要使用Bridge方式。而回到家中在没有实际局域网的环境下Win2000要是能与FreeBSD连通的话,则FreeBSD在vmware中一定要使用Host-Only方式。而此时如果还要在没有物理网络的情况下用Win2000去浏览PHPBB论坛即访问Bridge方式安装的FreeBSD,我们说这是不可能的,vmware中的Bridge方式在没有局域网的情况下是不可能与外界通讯的,因为以Bridge方式安装的FreeBSD与Win2000都相当于局域网中两台独立的机器,所以我们说两台独立的机器之间如果没有网线的话是不能通讯的。那么怎么解决呢?

解决方法:

从以上需求我们可以看出,重点在与怎样让Win2000在没有物理网络的情况下能够访问到PHPBB论坛。而此时Win2000只能使用Host-Only方式安装的FreeBSD,那么我们按照这个思路,来把我们的Bridge方式的 FreeBSD转变成Host-Only方式的FreeBSD。首先新建一个虚拟机,选择自定义安装;Guest OS选择FreeBSD;为新虚拟机起一个容易识别的名字;
网络连接选则Host-Only方式;在选择disk的界面,选择一个已经存在的disk,此时按照实际路径找到我们先前安装的Bridge方式的FreeBSD的.vmdk文件,此时注意一般安装好的虚拟机文件都会有大约FreeBSD.vmdk、FreeBSD-02.vmdk等顺序命名的文件,在这里我们选择FreeBSD.vmdk,根据我的实验结果选择FreeBSD-02.vmdk或者别的.vmdk文件都是不行的,系统会提示"The specified file is not a valid VMware disk.",我想可能这就是FreeBSD.vmdk与其他.vmdk文件的区别吧;在Disk Mode的界面,我选择Persistent即永久改变,其他两个选项分别是Undoable即关闭此虚拟机前询问是否保存对借用的Bridge方式FreeBSD的虚拟机文件的修改,Nonpersistent即关闭此虚拟机前不保存对借用的Bridge方式FreeBSD的虚拟机文件的修改,选好后,单击完成按钮。至此,我们就新建了一个Host-Only方式的FreeBSD。

效果说明:

经过本人的反复试验,可以证明用以上方法创建的FreeBSD与原来的Bridge方式的FreeBSD在内容上是完全一致的,包括原FreeBSD的一个重要参数——IP地址。大家可以放心使用。^_^

存在的问题2:

我们说这个Host-Only方式的FreeBSD还是不能为Win2000提供WEB浏览服务。因为FreeBSD保留原来的IP地址192.168.0.179,而Win2000此时是使用VMNet1来与FreeeBSD进行通讯,IP地址是192.168.171.1。所以我们的第二个问题是IP地址的问题。

解决方法:

在Win2000的网络及拨号连接里面将VMNet1的DHCP服务去掉,并为它分配192.168.0.0网段的IP地址。

效果说明:

这样就使Win2000的物理网卡绑定的IP地址、FreeBSD的IP地址以及VMNet1的IP地址都处于同一网段。这样就方便多了。有的朋友可能会问,要是在公司的时候VMNet1的IP地址与公司现有IP冲突怎么办,经过我的实验,可以证明,VMNet1的IP与实际物理网络的IP是不会冲突的,因为VMNet在物理网络中是不参与通讯的,所以您可以尽情使用。

好了大功告成了,哈哈,这样如果要实现我上面叙述的需求的话,只需要在公司的时候打开Bridge方式的FreeBSD、在家的时候打开Host-Only方式的FreeBSD即可,所达到的效果都是一模一样的。

写这篇文章的初衷是因为我在学习BSD的过程中遇到的最大障碍是没有一个很好的网络环境。曾经我为了怎样在没有物理网络的情况下实现HOSTOS与GUESTOS之间的通讯而犯愁,现在好了,不但HOSTOS与GUESTOS之间畅通无阻,而且还能在不同环境下操作相同的FreeBSD,真是两全其美。有条件使用真实环境的朋友可能体会不到这种感觉^_^。我想在众多的BSDer中一定有很多朋友也遇到与我相同的问题,您不妨参考一下,希望您能有所收获。也希望各位vmware高手批评指正^_^。

总结:

本文很好地解决了将实际的物理网络和使用vmware软件创建的虚拟网络进行无逢连接的问题,故文章命名为"vmware-虚拟与现实的完美结合"。^_^

注:本文所涉及到的实验,都是经过本人在VMware Workstation 3.2.0 build-2230上实验通过。

网友评论  以下本论与CNFUG(China FreeBSD User Group)立场无关
网友:cdy 发表时间:2004年08月13日

看过好多帖子,数这个写的亲切.....不过...


(而此时如果还要在没有物理网络的情况下用Win2000去浏览PHPBB论坛即访问Bridge方式安装的FreeBSD,我们说这是不可能的,)


我现在是Bridge方式。ADSL路由,外面的人可以通过花生壳vok.vicp.net或外网IP看到VM里的FreeBSD的apache2内容。我也可以在本机访问192.168.1.88看到FreeBSD里的apache2内容

......着实怪事,不过挺好。

网友:VMWare user 发表时间:2004年09月30日

VMWare 4以后不用网线也可以guest-os 与 host -os之间通讯了,这是与VirtualPC的区别。

网友:denny 发表时间:2004年10月03日

目前家里大多数上网的用户都是用的ADSL,OR 其他宽带。 我认为如果加一个HUB或(无线)路由器,就有了真实的网络环境,就可以把手提上的两个环境直接拿到家里就能用了。 我是一直这样用的。 windows 2003和AS3,相互ping,访问as3的WEB页面都正常。只是wmware4安装as3,redhat9都有问题。 反而wmware3安装他们都没有问题。还有, 怎么安装时把default的4G放大这个我一直没有去尝试。 现在as3的空间明显不够用了。

网友:denny 发表时间:2004年10月03日

目前家里大多数上网的用户都是用的ADSL,OR 其他宽带。 我认为如果加一个HUB或(无线)路由器,就有了真实的网络环境,就可以把手提上的两个环境直接拿到家里就能用了。 我是一直这样用的。 windows 2003和AS3,相互ping,访问as3的WEB页面都正常。只是wmware4安装as3,redhat9都有问题。 反而wmware3安装他们都没有问题。还有, 怎么安装时把default的4G放大这个我一直没有去尝试。 现在as3的空间明显不够用了。

网友:yueyang 发表时间:2004年12月14日

这个VMWARE的在公司和家中使用方式未免太笨了。

网友:lcc 发表时间:2005年11月29日

虚拟2个网卡 一个Bridge方式 一个Host-Only

网友:spider 发表时间:2006年03月29日

其实解决这个问题很简单,只要做一个特殊的RJ45头就可以了,RJ45头的1,2和3,6短接,把这个RJ45头插在机器上就可以实现OS与VMware的正常通讯,就想局域网一样.

我也说几句




推荐给好友

  


文章下载

本功能正在开发中,目前不能使用,敬请原谅。

√ 期刊在线投稿: /journal/contribute.html

√ 本文打印于《CNFUG期刊》,欢迎访问 http://www.cnfug.net 获取更多技术文章。