Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7789
  • 博文数量: 2
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-26 10:32
文章分类
文章存档

2012年(2)

我的朋友
最近访客

分类:

2012-11-07 14:04:13

Linux下VMware workstation使用技巧三则

这是我在其他论坛发的几个帖子的集合,都是一些实用技巧,放在这里备忘。

一、实现VMWare桥接无线网卡上网,不再只限于用NAT
环境:宿主机为UBUNTU8.04_amd64,VMware workstation 6.0.x

在UBUNTU下(实际上是在LINUX作宿主机的情况下)使用VMWare一直有两个大家公认的问题: 一是声卡占用的问题;二是桥接无线网卡的问题。关于解决方案网上讨论得比较多,不过按网上的方法我一直没能解决,困扰我很久了(所以一直以来我都是用 NAT方式与宿主机共享无线网络上网,但有些应用就有问题)。关于桥接无线网卡的问题今天终于被我搞清楚并解决了,写在这里以免让更多的后来者再浪费时 间。
问题描述:在LINUX下使用VMWare,如果主机是使用无线网卡的话,客户机网卡若使用桥接则无法连通。按照VMWare论坛的讨论结果 是,若主机为windows则无问题,因为驱动支持无线网卡作为AP模式工作,在LINUX下99%不行。经过实践我发现其实是可以解决的,需要两步:
1、修改其中的一个文件,然后重新编译。相关的补丁文件附后。
2、客户机的网卡配置不选桥接,而是根据VMWare运行config时提示是把无线网卡桥接在哪个设备上,相应地选custom(注意:不是选 Bridged桥接模式,否则不可能连接。这是过去我和其他人都共同犯的错误。),再从下拉列表中选相应设备,如在我的机器上是vmnet2 is bridged to wlan0,因此选vmnet2。

附:我修改后打包的文件:
文件:vmnet.tar
大小:520KB
下载:下载

也可直接看其中修改的情况:
diff -Naur vmnet-only/bridge.c vmnet-only-new/bridge.c
--- vmnet-only/bridge.c 2007-08-22 03:14:05.000000000 +0200
+++ vmnet-only-new/bridge.c 2007-09-30 14:34:13.000000000 +0200
@@ -32,7 +32,7 @@
#include
#include

-#ifdef CONFIG_NET_RADIO
+#if defined CONFIG_NET_RADIO || defined CONFIG_WLAN_80211
# include
#endif
#include "vmnetInt.h"
@@ -764,7 +764,7 @@
static Bool
VNetBridgeIsDeviceWireless(struct net_device *dev) //IN: sock
{
-#if !defined(CONFIG_NET_RADIO)
+#if !defined CONFIG_NET_RADIO && !defined CONFIG_WLAN_80211
return FALSE;
#elif WIRELESS_EXT > 19
return dev->wireless_handlers != NULL;

修改/usr/lib/vmware/modules/source/vmnet.tar包中的 bridge.c文件中的两行,再打包,再运行/usr/bim/vmware-config.pl重新编译。编译过程中也可以看到要求配置网络,在此你 就可以用向导,看到关于配置桥接的地方会说明桥接到哪了,可以桥接多块网卡的(一般都有有线和无线,会优先桥接有线的,所以你要回答要桥接另一块网卡,下 面会桥接到无线网卡),编译过程中相关的反馈信息类似于下:
The following bridged networks have been defined:

. vmnet0 is bridged to eth0
. vmnet2 is bridged to wlan0
所以在我的机器上就是vmnet0桥接到有线网卡了,vmnet2桥接到无线网卡了

编译完后,以后查看网络桥接配置信息方法及在我的机器上的显示:
$ps aux |grep vmnet
root 12692 0.0 0.0 3844 208 ? Ss 22:36 0:00 /usr/bin/vmnet-bridge -d /var/run/vmnet-bridge-0.pid /dev/vmnet0 eth0
root 12712 0.0 0.0 3844 204 ? Ss 22:36 0:00 /usr/bin/vmnet-bridge -d /var/run/vmnet-bridge-2.pid /dev/vmnet2 wlan0

也可以看vmnet0桥接到eth0,而vmnet2桥接到wlan0 。



二、宿主机为LINUX,客户机也为LINUX情况下,如何在客户机中切换虚拟终端?
宿主机和客户机均为LINUX的情况,如果你想在客户机中切换虚拟终端,该怎么办呢?如果还是用Ctrl+Alt+F1-F7则会发现只能切换宿主机,如果要在客户机中切换要用Ctrl+Alt+空格,松开空格后再按F1-F7(注意:Ctrl+Alt不能松),这就可以在客户机中切换
到相应虚拟终端了。

三、如何增加虚拟网卡?
在LINUX作宿主机时,不象WINDOWS作宿主机会自动把所有的虚拟网卡建好,而是一般只建作2-3块虚拟网卡,如vmnet0、
vmnet1、vmnet8,如果有两块桥接的还会有vmnet2。如果要构建实验网络往往不够,还需要其他虚拟网卡怎么办?
方法是:(以添加vmnet5为例)
修改/etc/vmware/locations文件,在文件开头:
answer NETWORKING yes
answer VNET_0_INTERFACE eth0
answer VNET_8_NAT yes
answer VNET_8_HOSTONLY_HOSTADDR 192.168.63.1
answer VNET_8_HOSTONLY_NETMASK 255.255.255.0
answer VNET_1_HOSTONLY_HOSTADDR 192.168.95.1
answer VNET_1_HOSTONLY_NETMASK 255.255.255.0

添加其他的vmnet。如果需要nat服务,就定义成 answer VMNET_5_nat yes,如果不需要nat,则直接添加:
answer VNET_5_HOSTONLY_HOSTADDR 192.168.64.1
answer VNET_5_HOSTONLY_NETMASK 255.255.255.0

/etc/init.d/vmware restart
后,就能发现/dev/vmnet5已经存在了,并且
ifconfig后
也能发现新的vmnet5接口了。


阅读(682) | 评论(0) | 转发(0) |
0

上一篇:恢复丢失的LVM 设备

下一篇:没有了

给主人留下些什么吧!~~