21
2024
11
19:28:17

Linux 网络工具详解之 ip tuntap 和 tunctl 创建 tap/tun 设备

在前面一篇文章中,我们已经介绍了 tap/tun 的基本原理,本文将介绍如何使用工具 tunctl 和 ip tuntap 来创建并使用 tap/tun 设备。

tunctl#

安装#

首先在 centos 的环境中安装 tunctl

Copy[root@localhost ~]# vim /etc/yum.repos.d/nux-misc.repo[nux-misc]name=Nux Miscbaseurl=http://li.nux.ro/download/nux/misc/el7/x86_64/enabled=0gpgcheck=1gpgkey=http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

ubuntu 是 apt-get install uml-utilities

man tunctl 查看 tunctl 手册,用法如下:

CopySynopsis
tunctl [ OPTIONS ] [ -u owner ] [-g group] [ -t device-name ]
  • -u 参数指定用户名,表明这个接口只受该用户控制,这个接口发生的事不会影响到系统的接口。

  • -g 指定一组用户

  • -t 指定要创建的 tap/tun 设备名。

[OPTIONS] 部分:

  • -b 简单打印创建的接口名字

  • -n 创建 tun 设备

  • -p 创建 tap 设备,默认创建该设备

  • -f tun-clone-device 指定 tun 设备对应的文件名,默认是 /dev/net/tun,有些系统是 /dev/misc/net/tun

  • -d interfacename 删除指定接口

使用#

常见用法:

默认创建 tap 接口:

Copytunctl

以上等价于 tunctl -p

为用户 user 创建一个 tap 接口:

Copy# tunctl -u user

创建 tun 接口:

Copytunctl -n

为接口配置 IP 并启用:

Copy# ifconfig tap0 192.168.0.254 up

为接口添加路由:

Copy# route add -host 192.168.0.1 dev tap0

删除接口:

Copy# tunctl -d tap0

ip tuntap#

安装#

命令行输入 ip help 查看 ip 命令是否支持 tuntap 工具,支持的话就会显示 tuntap 选项:

Copy[root@localhost ~]# ip helpUsage: ip [ OPTIONS ] OBJECT { COMMAND | help }
       ip [ -force ] -batch filenamewhere  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 查看详细使用命令:

Copy[root@localhost ~]# ip tuntap helpUsage: 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 设备:

Copyip tuntap add dev tap0 mod tap # 创建 tap ip tuntap add dev tun0 mod tun # 创建 tun

删除 tap/tun 设备:

Copyip 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 工具。




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/8553.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: