Linux|系统管理|WEB开发

关注Linux,系统管理,WEB开发以及开源世界

Qemu的两种上网方式

| Comments

本文就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,虚拟机<—>主机 虚拟机<—->互联网通信 都完成啦

Comments