本文首發於個人公衆號 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++編程技術等內容,歡迎你們關注。