Qemu兩種上網(wǎng)方式:
user mode network :
這種方式實(shí)現(xiàn)虛擬機(jī)上網(wǎng)很簡(jiǎn)單,類似VMware里的nat,qemu啟動(dòng)時(shí)加入-user-net參數(shù),虛擬機(jī)里使用dhcp方式,即可與互聯(lián)網(wǎng)通信,但是這種方式虛擬機(jī)與主機(jī)的通信不方便。
tap/tun network :
這種方式要比user mode復(fù)雜一些,但是設(shè)置好后 虛擬機(jī)<-->互聯(lián)網(wǎng) 虛擬機(jī)<-->主機(jī) 通信都很容易
這種方式設(shè)置上類似VMware的host-only,qemu使用tun/tap設(shè)備在主機(jī)上增加一塊虛擬網(wǎng)絡(luò)設(shè)備(tun0),然后就可以象真實(shí)網(wǎng)卡一樣配置它.
首先內(nèi)核中支持tap/tuns設(shè)備:
Device Drivers --->
Networking support --->
[M] Universal TUN/TAP device driver support
如果當(dāng)前內(nèi)核沒有支持,可以重新只編譯相應(yīng)模塊加入,方法很簡(jiǎn)單:
將當(dāng)前內(nèi)核配置文件cp到內(nèi)核源碼目錄下:
[root@LFS ~]#cp /boot/config-[kernel-version] /usr/src/linux
[root@LFS ~]#cd /usr/src/linux
配置內(nèi)核,將TUN/TAP選擇模塊(M),如上所示:
[root@LFS ~]#make menuconfig
重新只編譯模塊(M),不編譯核心(*)支持的東東:
[root@LFS ~]#make modules
編譯好后在/usr/src/linux/drivers/net下可以找到tun.ko:
[root@LFS net]#ls -l /usr/src/linux/drivers/net/tun.ko
-rw-r--r-- 1 root root 11116 Mar 23 20:29 /usr/src/linux/drivers/net/tun.ko
[root@LFS net]#
將它c(diǎn)p到當(dāng)前內(nèi)核的模塊目錄的相應(yīng)位置:
[root@LFS net]#cp /usr/src/linux/drivers/net/tun.ko /lib/modules/`uname -r`/kernel/drivers/net
重新建立模塊依賴關(guān)系:
[root@LFS net]#depmod
現(xiàn)在就可以加載它了 :
[root@LFS net]#modprobe tun
檢查一下:
[root@LFS net]#lsmod |grep tun
tun 8704 0
[root@LFS net]#
OK. 成功不重新編譯整個(gè)內(nèi)核加入特殊模塊支持
如果你的xx卡不被內(nèi)核支持,又可以編譯成模塊,自己怕重新編譯內(nèi)核后出問題就可以用這個(gè)辦法只編譯自己需要的模塊,然后手動(dòng)安裝到相應(yīng)位置,再加載它。
這樣編譯速度要也比編譯整個(gè)內(nèi)核快,不會(huì)對(duì)系統(tǒng)有任何損害,就可以使用上XX卡嘍。
user mode network :
這種方式實(shí)現(xiàn)虛擬機(jī)上網(wǎng)很簡(jiǎn)單,類似VMware里的nat,qemu啟動(dòng)時(shí)加入-user-net參數(shù),虛擬機(jī)里使用dhcp方式,即可與互聯(lián)網(wǎng)通信,但是這種方式虛擬機(jī)與主機(jī)的通信不方便。
tap/tun network :
這種方式要比user mode復(fù)雜一些,但是設(shè)置好后 虛擬機(jī)<-->互聯(lián)網(wǎng) 虛擬機(jī)<-->主機(jī) 通信都很容易
這種方式設(shè)置上類似VMware的host-only,qemu使用tun/tap設(shè)備在主機(jī)上增加一塊虛擬網(wǎng)絡(luò)設(shè)備(tun0),然后就可以象真實(shí)網(wǎng)卡一樣配置它.
首先內(nèi)核中支持tap/tuns設(shè)備:
Device Drivers --->
Networking support --->
[M] Universal TUN/TAP device driver support
如果當(dāng)前內(nèi)核沒有支持,可以重新只編譯相應(yīng)模塊加入,方法很簡(jiǎn)單:
將當(dāng)前內(nèi)核配置文件cp到內(nèi)核源碼目錄下:
[root@LFS ~]#cp /boot/config-[kernel-version] /usr/src/linux
[root@LFS ~]#cd /usr/src/linux
配置內(nèi)核,將TUN/TAP選擇模塊(M),如上所示:
[root@LFS ~]#make menuconfig
重新只編譯模塊(M),不編譯核心(*)支持的東東:
[root@LFS ~]#make modules
編譯好后在/usr/src/linux/drivers/net下可以找到tun.ko:
[root@LFS net]#ls -l /usr/src/linux/drivers/net/tun.ko
-rw-r--r-- 1 root root 11116 Mar 23 20:29 /usr/src/linux/drivers/net/tun.ko
[root@LFS net]#
將它c(diǎn)p到當(dāng)前內(nèi)核的模塊目錄的相應(yīng)位置:
[root@LFS net]#cp /usr/src/linux/drivers/net/tun.ko /lib/modules/`uname -r`/kernel/drivers/net
重新建立模塊依賴關(guān)系:
[root@LFS net]#depmod
現(xiàn)在就可以加載它了 :
[root@LFS net]#modprobe tun
檢查一下:
[root@LFS net]#lsmod |grep tun
tun 8704 0
[root@LFS net]#
OK. 成功不重新編譯整個(gè)內(nèi)核加入特殊模塊支持
如果你的xx卡不被內(nèi)核支持,又可以編譯成模塊,自己怕重新編譯內(nèi)核后出問題就可以用這個(gè)辦法只編譯自己需要的模塊,然后手動(dòng)安裝到相應(yīng)位置,再加載它。
這樣編譯速度要也比編譯整個(gè)內(nèi)核快,不會(huì)對(duì)系統(tǒng)有任何損害,就可以使用上XX卡嘍。

