相关文章推荐
健身的莴苣  ·  sql server ...·  1 年前    · 
路过的洋葱  ·  英国学习生活之二:你知道怎么使用Outloo ...·  2 年前    · 
飞奔的山羊  ·  vue 中 ...·  2 年前    · 
温柔的炒粉  ·  python处理XML格式的数据 - 简书·  2 年前    · 
憨厚的长颈鹿  ·  C语言字符串,八进制和十六进制的表示_八进制 ...·  2 年前    · 
Code  ›  Linux 网络工具详解之 ip tuntap 和 tunctl 创建 tap/tun 设备开发者社区
接口 linux系统 云计算 tap
https://cloud.tencent.com/developer/article/1432446
发呆的地瓜
2 年前
作者头像
Linux云计算网络
0 篇文章

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

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > Linux云计算网络 > 正文

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

发布 于 2019-05-25 16:18:30
3.7K 0
举报

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

tunctl

安装

首先在 centos 的环境中安装 tunctl 。

[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 。

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

Synopsis
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 接口:

tunctl

以上等价于 tunctl -p

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

# tunctl -u user

创建 tun 接口:

tunctl -n

为接口配置 IP 并启用:

# ifconfig tap0 192.168.0.254 up

为接口添加路由:

# route add -host 192.168.0.1 dev tap0

删除接口:

# tunctl -d tap0

ip tuntap

安装

命令行输入 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 ]
 
推荐文章
健身的莴苣  ·  sql server 如何查看license 信息_mob64ca12d94299的技术博客_51CTO博客
1 年前
路过的洋葱  ·  英国学习生活之二:你知道怎么使用Outlook邮箱的会议预约功能吗? - 知乎
2 年前
飞奔的山羊  ·  vue 中 $set与$delete的使用-腾讯云开发者社区-腾讯云
2 年前
温柔的炒粉  ·  python处理XML格式的数据 - 简书
2 年前
憨厚的长颈鹿  ·  C语言字符串,八进制和十六进制的表示_八进制字符串_环海之风的博客-CSDN博客
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号