ubuntu14.04安装tun/tap网络设备
Posted gaoren
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu14.04安装tun/tap网络设备相关的知识,希望对你有一定的参考价值。
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的内核中,前面做的工作过程中报出了一些问题,本文只提供正确的执行步骤。
以上是关于ubuntu14.04安装tun/tap网络设备的主要内容,如果未能解决你的问题,请参考以下文章
Linux 虚拟化网络技术 — 虚拟二层网卡(Tap)与虚拟三层隧道网卡(Tun)
[Linux用户空间编程-4]:Linux虚拟网络设备TUN/TAP的工作原理与代码示例
Kubernetes网络自学系列 | 给用户态一个机会:tun/tap设备