|
|

楼主 |
发表于 2007-2-14 02:44:11
|
显示全部楼层
Post by gzxiaobai
分享一下用bridge的网卡配置,这样可以让虚拟机和宿主机使用统一个局域网,目的是可以使用SAMBA服务器上的文件和打印机。
准备工作:
1。内核里加上 bridge 和 tun 的功能
2。改 /etc/conf.d/net 的配置,建立一个 br0 的bridge,把 eth0 加入 br0,启动 /etc/init.d/net.br0 和 /etc/init.d/eth0,我以后都是这种方式上网。
3。emerge -av usermode-utilities
这个包里面有 tunctl 命令
4。好像还要 emerge -av bridge-utilities,因为要用 brctl 命令,我记不清楚了。
启动 virtualbox 前:
1。sudo modprobe tun
2。sudo chmod 777 /dev/net/tun
3。sudo tun -t tap0 -u <username>
4。sudo ifconfig tap0 up
5。sudo brctl addif br0 tap0
如此,新建立了一个 tap0 的网卡,和 eth0 共用 br0,eth0 和 tap0 都没有 ip 地址的。
然后启动 virtualbox,编辑虚拟机设置,网络使用 tap0 就可以了。启动和结束的命令都可以空着。
可以参照qemu的让虚拟机跟主机及外网通讯的办法来配置。设好tun设备后,不用bridge的(也可以用bridge而不用iptables,这时要修改到eth0〈假设你用是它来跟外网通讯的话〉,感觉对于笔记本这种老是换来换去的网络环境并不方便),但是要把ip转发打开,让iptables起作用,否则只能让虚拟的系统跟宿主系统通讯,而不能跟外网通讯。
设好tun设备后,可以手动添加tap0,- #tunctl -t tap0 -u jackey
复制代码 里面的jackey换成你当前用户的名字。然后运行virtualbox后,在虚拟的系统的配置中的Network中,把Adapter0改成 Host interface,把Interface Name 那一栏添上tap0
用 ifconfig 给tap0 设一个网址,如:192.168.1.1
在虚拟系统起动起来后,给虚拟的系统设一个网址:192.168.1.13 (13可以为2~253的任意数),这时,从主系统就可以ping通192.168.1.13这个虚拟系统了(注意虚拟系统中的防火墙)。然后配置iptables,让它可以把来自192.168.1.1的包转发出去。假设你的上外网的物理网卡名是eth0,刚用这个命令:- #iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
复制代码 这时,就可以从虚拟系统中ping通外网了。
当然,每次起动虚拟机时,都要进行这么老长的设置,很是麻烦。有更简便的方法,是要设置一个配置文件,我没有做,前几天看的手册又忘光了 :mad: 就不在这儿提了
建议看看 virtualbox网站的那个pdf的手册,很有用的。
尤其是里面的VBoxManage的用法,很不错
如:你已经安装了一个名叫 Win2K3的虚拟系统。那么就可以从终端中用这个来启动:- $VBoxManage startvm Win2K3
复制代码
当然 VirtualMange最好也自己建个运行脚本,可以用上楼的那个virtualbox的脚本,把里面的VirtualBox 换成 VBoxManage |
|