问题标签 [tun]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4745 浏览

c - 对 TUNSETIFF ioctl 类型的困惑

我看到TUNSETIFFioctl 的定义相互矛盾。如果我查看linux/if_tun.h我的系统,我会看到这一行:

这表明 TUNSETIFF ioctl 采用指向int. 此外,如果我打印出 的值TUNSETIFF,我会得到 1074025674,如果我屏蔽掉大小位,则表明这个 ioctl 获取大小为 4 字节的数据。

但是当我查看周围的文档时TUNSETIFF,我看到了将指针传递给struct ifreq. 例如在官方文档中:

那么为什么会出现这种差异呢?只是头文件中的错误吗?

0 投票
1 回答
2063 浏览

linux - 原始套接字与 TUN 设备

将 IP 数据包(从用户空间)发送到 tun 设备和使用原始套接字有什么区别?

用于通过用户空间隧道传输 IP 数据包。为什么我要使用一种方法而不是另一种方法?

原始套接字:

调设备:

0 投票
1 回答
2731 浏览

linux-kernel - 如何在 Rust 中调用“ioctl”?并连接Linux“tun”驱动程序

如何在 Rust 中使用函数“ioctl”?我应该在某个地方找到它的包装吗?有事实上的包装吗?或者它可能已经包含在标准的 Rust 库中?不过,我还没有找到。

或者,更一般地说,我需要一个 Linux“tun”驱动程序的接口。

0 投票
1 回答
2232 浏览

c - linux 中的 Tap 设备不能正确传递 ARP/IP 数据包?

似乎还有其他一些人对我有类似的问题,但我认为他们特别具体。我想我可能遇到了一个普遍的问题。

我在 Linux 中有一个 TAP 设备(用 C 创建)连接到另一个网络,我希望我的计算机能够通过这个 TAP 设备与另一个网络通信。

我可以看到使用wireshark 清楚地进入arp 数据包,但我的内核不会响应它们。我尝试配置网桥并将网桥的 IP 地址设置为无济于事。我也尝试过桥接到物理硬件,由于某种原因,Linux 似乎没有将数据传递给另一个网卡。

如果我设置了静态 ARP 路由,这个 Linux 机器似乎不会响应对它上面的设备的 ping。

我可以尝试将 br0、eth9 或 tap0 设置为 IP,但没有回复 ping 或 arp。就算我毁掉那座桥,也没什么。

我觉得我想要的是一个“假装”界面。就像“这是一张假的以太网卡”并谈论它。我觉得用水龙头应该可以做到。

类似问题:

Linux TUN/TAP:无法从 TAP 设备读回数据

为什么 Linux TAP 设备不处理 ARP 或 ICMPv6 数据包

0 投票
0 回答
363 浏览

android - 如何在 Android 6.01 中安装 Tun 驱动程序?

目前我有与Android应用程序(JNI,NDK)集成的简单隧道C程序(simpletun.c)  

但是要让这个应用程序运行:需要设置(最好通过程序) Tun 接口?(它没有发生)

这样的代码返回 -1 ( :

附加信息 :

*添加了 ADB Shell 终端视图在此处输入图像描述 *已植根 android 手机,通过 iptables android app (iptables 1.4.20) 在其上安装 iptables

0 投票
0 回答
159 浏览

networking - 使用 TAP 嗅探或修改传入的 eth 数据包

我试过https://github.com/TOGoS/TUN2UDP

这允许我这样做:

我想做的是:

换句话说,我想在第 2 层拦截传入的数据包并控制阻止、修改或传递它们。

我认为也许桥接 ETH 和 TAP 是关键,但我无法弄清楚如何以我需要的方式以编程方式访问这个桥接器。

0 投票
1 回答
2257 浏览

linux - 使用 tun 设备发送原始 IP 数据包

我正在尝试通过TUN 设备以编程方式构造和发送 IP 数据包。

我已经设置了 TUN 设备和正确的路由:

这导致:

IP 转发开启:# echo 1 > /proc/sys/net/ipv4/ip_forward

我已经为tun0数据包设置了 NAT:

然后我有 python 脚本来生成ICMP数据包:

我可以看到来自tun0接口的数据包:

但是wlp3s0接口是静默的,因此似乎数据包没有经过 NAT 并路由到wlp3s0接口,这是我的 WLAN 卡。

有什么我想念的想法吗?

0 投票
1 回答
2950 浏览

docker - 将 docker 容器中的 Tap 接口暴露给 docker 主机

我的应用程序在 docker 容器内创建了一个点击界面。例如 tap_1: ip: 192.168.2.1

我的要求是任何来自 docker 主机的数据包都可以直接发送到 docker 容器内的 tap 接口。我基本上是尽量避免一跳先发送到 docker0 然后将其转发到特定的点击接口。

我尝试通过管道和桥接网络,但似乎没有一个可以解决我的要求。

感谢你的帮助。感谢 Ankit

0 投票
1 回答
943 浏览

linux - 如何将主机连接到她的虚拟网桥?

一个网桥brOnline连接到eth0它提供对 LAN / Internet 的访问。设置在修改中存档,/etc/network/interfaces如下所示。

为什么?这次冒险的目的是在几个虚拟机和托管虚拟桥的系统和虚拟机(主机)之间建立一个虚拟网络。

如何从我的主机连接到网桥?

一件重要的事情:添加eth0到网桥会导致主机无法使用它!

那么在将接口添加eth0到网桥之前,连接到哪个魔法eth0使我的浏览器能够访问本地网络?我可以或如何将此魔术连接到网桥以访问 LAN 并可以与连接到网桥的其他客户端交谈?

0 投票
1 回答
331 浏览

parsing - 如何使用 PCAP 或其他库来解析从 TUN 接收的第 3 层帧?

这就是我从 TUN 接收第 3 层帧的方式。根据文档编写:

  1. https://www.kernel.org/doc/Documentation/networking/tuntap.txt
  2. http://backreference.org/2010/03/26/tuntap-interface-tutorial/
  3. 从http://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp/解压

玩:
gcc index.c
sudo ./a.out
sudo ip link set tun0 up