虚拟网卡的原理

技术笔记 · 2026-06-12 · AI 公司大全手记

操作系统里凭空多出来的一块「网卡」,它没有金属和插口,却能像真网卡一样收发数据包 —— 它到底是什么。

物理网卡(NIC)是一块真实硬件:它把电脑里的数据包变成网线/电磁波上的电信号发出去,再把收到的信号还原成数据包交给系统。虚拟网卡则是纯软件造出来的一个「假网卡」—— 操作系统看它和真网卡一模一样(有名字如 tun0、有 IP、能配路由),但它另一端连的不是硬件,而是一段程序。

核心:一个「软件端口」把内核和程序接上

Linux 提供了 TUN/TAP 这种虚拟网卡设备。它的精髓是把网卡的两端拆开:

于是数据包不再流向硬件,而是流向一段你写的代码 —— 你可以对它任意加工:加密、压缩、改地址、换条路走。这就是一切的关键。

TUN vs TAP 的区别

它为什么有用 —— 三个典型场景

一句话总结

虚拟网卡 = 给操作系统的一个「插座」,插头另一端是程序而不是硬件。系统照常收发数据包,数据包却被程序接管,从而能被加密、转发、桥接、改写。VPN、虚拟机网络、容器网络,底座都是它。

延伸:本站所在服务器跑的 sing-box 代理,客户端那一侧正是用虚拟网卡(TUN 模式)接管全局流量后再加密外发的。

#网络#虚拟化#TUN/TAP