tun 网络接口有什么用?

tun 网络接口有什么用?

我在运行 ifconfig 时注意到有一个名为 tun0 的网络接口,它有一个 ipv4 地址。一些研究表明它是一个隧道设备,但我真的不知道它是如何使用的,什么在使用它,以及为什么它有一个IP地址。

我确实启用了 iptables,并且 iptables 和 tun 之间似乎存在一些链接(如果有帮助的话)。

答案1

它用于隧道软件。请参阅维基百科文章标题:TUN/TAP了解完整详情。

摘自 FreeBSD tun 手册页

tun 接口是一种软件环回机制,可以宽松地描述为 pty(4) 的网络接口模拟,即 tun 对网络接口的作用与 pty(4) 驱动程序对终端的作用相同。

socat文档页面很好地展示了如何使用它们。

摘自 socat 文档

某些操作系统允许生成虚拟网络接口,这些接口不连接到线路,而是连接到模拟网络的进程。这些设备通常称为 TUN 或 TAP。

参考

答案2

正如 @slm 已经写过的,TUN 接口是一个软件环回,它模拟与 TAP 接口相同的网络接口。实际上,TUN 接口是对第3层界面。也就是说,它是一个网络层仿真设备,可以隧道传输各种性质的数据包,无论是原始 TCP、UDP、SCTP 还是诸如 PPP、PPTP、AH/IPSEC 等封装数据包。另一方面,TAP 接口是对二层接口,即它是一个数据链路仿真设备,可以用作原始以太网、arcnet、令牌环等。

这具有不同的实际意义。例如,在设计防火墙时,如果要创建具有不可路由地址的 NAT 内部网络,则可以使用 TUN 接口来创建过滤桥。如果您有一组可以分配给内部主机的公共 IP 地址,但仍希望对所有流量进行防火墙,则可以使用 TAP 接口来模拟以太网桥,以在其上过滤数据包。顺便说一句,这是所谓的“透明防火墙”的基础。

答案3

要理解,您需要逻辑地想象 tun/tap 之间的区别:在 Tap 模式下,您需要一个 br0 桥,为裸铁的地址工作,而对于 tun 则相反,它是来自 VPN 服务器“工作 VPN”的流量,如图所示:

https://rockhopper.osdn.jp/index_files/tuntap_rockhopper2.jpg

为了拥有一个 tun,您需要首先创建它,您可以使用systemd-networkd

通过 SSH 进行 VPN(维基百科):

  • tun将创建一个路由IP隧道,
  • tap将创建一个以太网隧道。

tap0如果您是以太网桥接并且已预先创建了一个 tap0 虚拟接口并将其与您的以太网接口桥接,请使用。

如果您想控制 VPN 上的访问策略,则必须为 tun/tap 接口创建防火墙规则。

在非 Windows 系统上,您可以给出明确的单元号,例如 tun0。在大多数系统上,除非您部分或完全禁用 tun/tap 接口的防火墙,否则 VPN 将无法运行。

答案4

我知道你问过 tun 但因为它们是相关的,(该接口称为 tun/tap)我想我会分享这个关于 Tap 的 Cloudflare 博客文章以及他们如何在虚拟机中使用它。

他们说:

从历史上看,Tap 设备主要用于实现 VPN 客户端。

然后接着说:

最近,虚拟机开始使用分路设备来启用网络。

这篇文章还包括了这个人工智能生成的小迪迪来帮助记忆,我觉得这很有趣:

Tap就像一个开关,

以太网标头会挂断。

屯就像一条隧道,

它将汇集 VPN 连接。

它不会容纳以太网标头,

据我们所知,tap 使用,tun 不使用。

相关内容