本文首发于个人公众号 CloudDeveloper(ID: cloud_dev),专一于干货分享,号内有大量书籍和视频资源,后台回复 「1024」便可领取,欢迎你们关注,二维码文末能够扫。
在前面一篇文章中,咱们已经介绍了 tap/tun 的基本原理,本文将介绍如何使用工具 tunctl
和 ip tuntap
来建立并使用 tap/tun 设备。编程
首先在 centos
的环境中安装 tunctl
。ubuntu
[root@localhost ~]# vim /etc/yum.repos.d/nux-misc.repo [nux-misc] name=Nux Misc baseurl=http://li.nux.ro/download/nux/misc/el7/x86_64/ enabled=0 gpgcheck=1 gpgkey=http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
ubuntu
是 apt-get install uml-utilities
。vim
man tunctl
查看 tunctl
手册,用法以下:centos
Synopsis tunctl [ OPTIONS ] [ -u owner ] [-g group] [ -t device-name ]
[OPTIONS]
部分:网络
/dev/net/tun
,有些系统是 /dev/misc/net/tun
。常见用法:tcp
默认建立 tap 接口:工具
tunctl
以上等价于 tunctl -p
云计算
为用户 user
建立一个 tap 接口:url
# tunctl -u user
建立 tun 接口:spa
tunctl -n
为接口配置 IP 并启用:
# ifconfig tap0 192.168.0.254 up
为接口添加路由:
# route add -host 192.168.0.1 dev tap0
删除接口:
# tunctl -d tap0
命令行输入 ip help
查看 ip
命令是否支持 tuntap
工具,支持的话就会显示 tuntap
选项:
[root@localhost ~]# ip help Usage: ip [ OPTIONS ] OBJECT { COMMAND | help } ip [ -force ] -batch filename where OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable | tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm | netns | l2tp | tcp_metrics | token }
不支持就请升级或下载最新的 iproute2
工具包,或者使用上面介绍的 tunctl
工具。
输入 ip tuntap help
查看详细使用命令:
[root@localhost ~]# ip tuntap help Usage: ip tuntap { add | del } [ dev PHYS_DEV ] [ mode { tun | tap } ] [ user USER ] [ group GROUP ] [ one_queue ] [ pi ] [ vnet_hdr ] [ multi_queue ] Where: USER := { STRING | NUMBER } GROUP := { STRING | NUMBER }
常见用法:
建立 tap/tun 设备:
ip tuntap add dev tap0 mod tap # 建立 tap ip tuntap add dev tun0 mod tun # 建立 tun
删除 tap/tun 设备:
ip tuntap del dev tap0 mod tap # 删除 tap ip tuntap del dev tun0 mod tun # 删除 tun
PS: user
和 group
参数和 tunctl
的 -u、 -g 参数是同样的。
以上两个工具,咱们更推荐使用 ip tuntap
,一个是由于 iproute2
更全更新,已经逐步在替代老旧的一些工具,另外一个是由于 tunctl
在某些 Debian
类的系统上支持不全。
tunctl
和 ip tuntap
的常见使用方式。
更推荐使用 ip tuntap
工具。
个人公众号 CloudDeveloper(ID: cloud_dev),号内有大量书籍和视频资源,后台回复 「1024」便可领取,分享的内容包括但不限于云计算虚拟化、容器、OpenStack、K8S、雾计算、网络、工具、SDN、OVS、DPDK、Linux、Go、Python、C/C++编程技术等内容,欢迎你们关注。