tun 网络接口有什么用?

smc*_*mcg 24 networking iptables tunneling

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

我确实启用了 iptables,如果有帮助的话,iptables 和 tun 之间似乎有一些联系。

slm*_*slm 24

它用于隧道软件。有关完整详细信息,请参阅标题为:TUN/TAP的维基百科文章。

摘自 FreeBSD tun 手册页

tun 接口是一种软件环回机制,可以粗略地描述为 pty(4) 的网络接口模拟,即 tun 对网络接口所做的事情就像 pty(4) 驱动程序对终端所做的事情一样。

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

摘自 socat 文档

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

参考


pal*_*ezv 13

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

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