专栏首页aCloudDeveloperLinux 网络工具详解之 ip tuntap 和 tunctl 创建 tap/tun 设备

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

在前面一篇文章中,我们已经介绍了 tap/tun 的基本原理,本文将介绍如何使用工具 tunctlip 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

ubuntuapt-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 ]
          [ 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: usergroup 参数和 tunctl 的 -u、 -g 参数是一样的。

以上两个工具,我们更推荐使用 ip tuntap,一个是因为 iproute2 更全更新,已经逐步在替代老旧的一些工具,另一个是因为 tunctl 在某些 Debian 类的系统上支持不全。

总结

tunctlip tuntap 的常见使用方式。

更推荐使用 ip tuntap 工具。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 同主机「跨网段」的两台虚拟机怎么通信?

    我的回答基本上是一句废话,因为只要你知道点网络的基础知识,肯定知道这种情况要走三层路由。

    CloudDeveloper
  • 详解云计算网络底层技术——虚拟网络设备 tap/tun 原理解析

    在云计算时代,虚拟机和容器已经成为标配。它们背后的网络管理都离不开一样东西,就是虚拟网络设备,或者叫虚拟网卡,tap/tun 就是在云计算时代非常重要的虚拟网络...

    CloudDeveloper
  • Linux 虚拟网络设备 veth-pair 详解,看这一篇就够了

    顾名思义,veth-pair 就是一对的虚拟设备接口,和 tap/tun 设备不同的是,它都是成对出现的。一端连着协议栈,一端彼此相连着。如下图所示:

    CloudDeveloper
  • 安恒信息品牌形象全新升级!拼logo,等你来挑战!

    制造能兴国,品牌能强国。无论是对一个国家,还是一个企业而言,只有当它的品牌深深刻上某种文化的烙印时,其品牌的影响力才能像文化的生命力一样具有极其强...

    安恒信息
  • Windows Mobile上的HTML解析器

    Matjaž Prtenjak提出这个移动设备上HTML解析器、并表现在HTML Label上的最初目的,就是为了能够在界面上实时地改变一些控件上的文字内容和...

    ShiJiong
  • 微信跳一跳辅助,高分攻略!就在这了

    过年期间相信很多小伙伴在家都是和亲朋好友围在一起玩“跳一跳”,扁平化的设计,动感的声音,让不少在家的宝妈和老人网友沉迷该游戏中。

    IT小侠公社
  • 谷歌如重返中国TensorFlow将成利器,谷歌董事长评中美AI差距

    【新智元导读】 谷歌再次尝试返回中国,这次依靠的不是搜索,而是人工智能系统开发框架TensorFlow。但是有消息人士称,百度的PaddlePaddle今年在开...

    新智元
  • ASP.NET MVC的Model元数据与Model模板:模板的获取与执行策略

    当我们调用HtmlHelper或者HtmlHelper<TModel>的模板方法对整个Model或者Model的某个数据成员以某种模式(显示模式或者编辑模式)进...

    蒋金楠
  • CCAI | 清华大学张敏:当人工智能“科学遇到艺术”的一点杂谈

    清华大学计算机科学与技术系副教授张敏 文/CSDN贾维娣 7 月 22 - 23 日,在中国科学技术协会、中国科学院的指导下,由中国人工智能学会、阿里巴巴集团...

    AI科技大本营
  • 清华大学张敏:当人工智能“科学遇到艺术”的一点杂谈

    用户1737318

扫码关注云+社区

领取腾讯云代金券