14.04的系統默認是沒有tun設備的,所以需要通過在內核中編譯時勾選此設備。接下來分步來介紹如何安裝tun設備。
一、更新ubuntu桌面版源:
sudo gedit /etc/apt/sources.list
deb http://mirrors.yun-idc.com/ubuntu/ trusty main restricted universe multiverse deb http://mirrors.yun-idc.com/ubuntu/ trusty-security main restricted universe multiverse deb http://mirrors.yun-idc.com/ubuntu/ trusty-updates main restricted universe multiverse deb http://mirrors.yun-idc.com/ubuntu/ trusty-proposed main restricted universe multiverse deb http://mirrors.yun-idc.com/ubuntu/ trusty-backports main restricted universe multiverse deb-src http://mirrors.yun-idc.com/ubuntu/ trusty main restricted universe multiverse deb-src http://mirrors.yun-idc.com/ubuntu/ trusty-security main restricted universe multiverse deb-src http://mirrors.yun-idc.com/ubuntu/ trusty-updates main restricted universe multiverse deb-src http://mirrors.yun-idc.com/ubuntu/ trusty-proposed main restricted universe multiverse deb-src http://mirrors.yun-idc.com/ubuntu/ trusty-backports main restricted universe multiverse
sudo apt-get update
二、編譯內核源碼(保證你的虛擬機存儲夠大,本文的虛擬機分配80G):
1、編譯前准備,安裝必要依賴:
apt-get install libssl-dev libncurses5-dev
2、通過如下鏈接下載內核版本:
https://www.kernel.org/pub/linux/kernel/
3、將下載好的內核linux-4.12.tar.xz移動到/usr/src/目錄下並解壓(本文下載的內核版本為4.12):
xz -d linux-4.12.tar.xz tar -xvf linux-4.12.tar
4、內核裁剪(即將tun編譯成模塊),如下分三步驟,Device Drivers ---->Network Device Support----->Universal TUN/TAP device driver support:
make menuconfig
圖 1
圖 2
圖 3
看到圖3時,Universal TUN/TAP device driver support選項為<*>,此時按鍵盤‘m’鍵,選中此選項然后保存退出。
5、編譯內核
make -j2
此時make指令分別執行:make bzImage 和 make modules。內核與模塊都已經編譯好。此指令會生成生成相應內核版本的內核模塊和vmlinuz,initrd.img,Symtem.map文件。
6、安裝內核模塊
make modules_install
指令執行完會在/lib/modules/目錄下生成對應版本的內核模塊。
圖 4
7、安裝內核
make install
此指令是把原先make -j2產生的System.map, vmlinux,config,initrd.img文件拷貝到/boot/目錄下。
8、重啟即可完成新內核的安裝
圖 5
三、向內核加載tun模塊的
modprobe tun lsmod | grep tun
圖 6
四、過程錯誤匯總
1、linux 內核編譯時出現scripts/sign-file.c:23:30: fatal error: openssl/opensslv.h錯誤的解決辦法,安裝libssl-dev
apt-get install libssl-dev
2、fatal error: curses.h: No such file or directory
apt-get install libncurses5-dev
五、總結
至此tun模塊已加載在ubuntu14.04的內核中,前面做的工作過程中報出了一些問題,本文只提供正確的執行步驟。