什么是TUN
TUN 是一种 虚拟网络接口,广泛应用于 VPN、网络隧道、代理工具中。它不是硬件,而是由内核提供的软件接口,你可以把它理解为一根“虚拟网线”或“虚拟隧道”。
一句话理解 TUN:
TUN 设备是操作系统内的“虚拟网卡”,用于传输 IP 层数据包。
TUN 的基本定义
- TUN = "Network TUNnel" 的缩写
- 是一种 点对点(point-to-point)虚拟网络接口
- 工作在 第三层(网络层),主要处理 IP 数据包
它通常与 TAP 搭配提及:
名称 | 工作层级 | 传输内容 | 用途 |
---|---|---|---|
TUN | 网络层(Layer 3) | IP 数据包(IPv4/IPv6) | VPN、代理 |
TAP | 数据链路层(Layer 2) | 以太网帧(Ethernet Frames) | 虚拟局域网、桥接网络 |
举个例子:VPN 如何用 TUN
- 当你启动一个 VPN(比如 WireGuard、OpenVPN、Clash)时,它创建一个 TUN 设备(虚拟网卡)
- 系统把所有 IP 数据发往这个虚拟网卡
- VPN 程序从 TUN 设备中读取数据,加密后发到远程服务器
- 返回的数据也通过 TUN 解密,交给操作系统
所以: 你电脑认为自己连的是互联网, 其实数据早就被“偷偷”送上加密隧道了!
🖥 在系统中,TUN 设备长这样:
- Linux:
/dev/net/tun
- macOS:
/dev/tun0
- Windows(通过工具实现,比如
Wintun
,OpenVPN TAP Driver
)
在 ipconfig
或 ifconfig
中,你能看到像 tun0
、utun0
这样的接口。
🧰 常见使用 TUN 的软件
软件 | 用途 |
---|---|
OpenVPN | 加密 VPN |
WireGuard | 轻量高性能 VPN |
Clash / Clash for Windows | 分流代理 |
Tailscale / Zerotier | 内网穿透、虚拟局域网 |
Shadowsocks with tun2socks | 把 TCP/UDP 转发到 SOCKS 代理 |
Frp / N2N | 内网互通,穿透 NAT |
最后总结一下:
问题 | 回答 |
---|---|
TUN 是什么? | 虚拟网卡,用来收发 IP 数据包 |
是硬件吗? | 不是,是操作系统提供的虚拟设备 |
干嘛用? | VPN、网络代理、流量劫持、分流 |
和 TAP 有啥区别? | TUN 管 IP,TAP 管以太网帧 |