3.5.2 虚拟网络设备 TUN 和 TAP TUN 和 TAP 是 Linux 内核 2.4.x 版本之后引入的虚拟网卡设备,主要用于用户空间(user space)和内核空间(kernel space)双向传输数据。这两种设备的区别与含义为: TUN 设备是虚拟网络接口设备,工作在网络层(Layer 3),主要处理 IP 数据包。它模拟了一个网络层接口,可以让用户空间程序接收和发送 IP 数据包; TAP 设备也是虚拟网络接口,但它工作在数据链路层(Layer 2),主要处理 以太网帧。与 TUN 设备不同,TAP 设备传递的是完整的以太网帧,包括数据链路层头部,允许用户空间程序发送和接收以太网帧。 Linux 系统中,内核空间和用户空间之间数据传输有多种方式,字符设备文件是其中一种。