本文就qemu模拟软件介绍虚拟机如何和主机及互联网通讯,测试环境
主机:redflag desktop 5.0 beta2
虚拟机: win98 se
qemu:qemu-0.7.0-6
1) user mode network :
这种方式实现虚拟机上网很简单,类似vmware里的nat,qemu启动时加入-user-net参数,虚拟机里使用dhcp方式,即可与互联网通信,但是这种方式虚拟机与主机的通信不方便。
2)tap/tun network :
这种方式要比user mode复杂一些,但是设置好后 虚拟机<–>互联网 虚拟机<–>主机 通信都很容易
这种方式设置上类似vmware的host-only,qemu使用tun/tap设备在主机上增加一块虚拟网络设备(tun0),然后就可以象真实网卡一样配置它.
首先需要内核支持tun设备,可以查看是不是有下面的模块文件
/lib/modules/2.6.9-5.34DT/kernel/drivers/net/tun.ko
如果存在,则执行下面的命令,否则重新编译模块。modprobe tun
检查一下:
#lsmod |grep tun tun 8704 0
OK,相关设备已经准备好了,还需要一个tun/tap的初始化脚本 :
cat /etc/qemu-ifup :
#!/bin/sh
/sbin/ifconfig $1 192.168.0.1
再给予qemu-ifup x 执行权限放在/etc下就可以了。
这个脚本只能root用户执行,如果需要普通用户使用qemu,就需要改成sudo /sbin/ifconfig
.....再设置sudo相关权限。
启动qemu后,它会在主机上增加一块虚拟网络设备(tun0):
现在就可以启动qemu配置虚拟机网络参数了,和vmware host-only一样:
ip与tun0相同网段,gateway为tun0 ip 其余参数与tun0相同,dns与主机相同:
与host-only一样,这样只实现了虚拟机<—->主机间通信,还需要设置router,nat才可以连上互联网
#echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
OK,虚拟机<—>主机 虚拟机<—->互联网通信 都完成啦