搜索 K
Appearance
Appearance
核心结论(直接答案)
VPN 的工作原理可以概括为三步闭环:首先,客户端与服务端通过非对称加密算法(如 ECDH)完成身份鉴权并协商出高强度对称会话密钥;其次,操作系统内核的虚拟网络适配器(TUN 网卡)拦截系统出站流量,将原始 IP 数据报文全量加密并作为有效载荷重新封装进新的外部网络数据包中;最后,外部加密数据包穿过公共互联网到达 VPN 节点解密还原,由出口服务器代理发起真实的互联网访问。
理解了 VPN 是什么之后,很多对计算机网络感兴趣的技术爱好者都会好奇:操作系统是如何在不改变物理网卡硬件的情况下,无感截获所有应用程序的网络请求并神不知鬼不觉地将其打包送往地球另一端的?本文将从密码学原理、数据包封装结构到操作系统内核网络栈,带您逐层拆解 VPN 的真实运转机制。
VPN 的核心魔法在于隧道技术(Tunneling)。所谓隧道,本质上就是**“数据包套数据包”(Packet Encapsulation)**的套娃过程。
在常规网络通信中,一个发往 104.21.44.201 的 HTTP 请求数据包具有标准的结构:
192.168.1.108),目的 IP(104.21.44.201);52100),目的端口(80 或 443);当数据进入 VPN 隧道时,原本完整的 IP 数据包被整块读取,并进行了对称密码学加密。接着,VPN 客户端在加密数据外部重新贴上一层“新信封”:
+------------------------------------------------------------------------+
| 新的外层 IP 首部 (源: 本地网卡真实IP, 目的: 远端 VPN 服务器 IP) |
+------------------------------------------------------------------------+
| 外层传输层首部 (UDP 端口 51820 / TCP 端口 443 等) |
+------------------------------------------------------------------------+
| VPN 协议首部 (含报文类型、随机数 Nonce、防重放序号 Counter) |
+------------------------------------------------------------------------+
| 🔒 加密载荷 (包含: 原始内部 IP 首部 + 原始 TCP/UDP 首部 + 原始请求数据) |
+------------------------------------------------------------------------+
| 校验鉴权标签 (如 Poly1305 / GCM 认证标签,确保报文完整性无篡改) |
+------------------------------------------------------------------------+对于途径的路由器与电信基站而言,它们只能读取到最外层的“新外层 IP 首部”,只知道该设备正在向 VPN 服务器发送 UDP 数据,无法得知内层究竟封装了访问哪个网站的请求。
VPN 的安全性依赖于现代密码学的“组合拳”:非对称加密负责前期握手,对称加密负责后续高速数据传输。
sequenceDiagram
autonumber
participant Client as 本地客户端
participant Server as VPN 节点服务器
Note over Client,Server: 阶段 1:握手认证与密钥协商 (基于非对称算法)
Client->>Server: 发起连接握手请求 (携带临时公钥 Ephemeral PubKey)
Server-->>Client: 响应握手包 (携带服务端公钥 + 数字证书签名)
Note over Client,Server: 双方各自基于 ECDH (Curve25519) 计算出完全一致的对称共享会话密钥 (Session Key)
Note over Client,Server: 阶段 2:数据高速加密传输 (基于对称算法)
Client->>Server: 发送数据包 (使用 Session Key + ChaCha20-Poly1305 高速加密)
Server-->>Client: 返回解密后的网站回包 (同样使用 Session Key 极速对称加密)要让所有软件的数据流量都自动走 VPN,操作系统依赖两项核心机制:虚拟网络适配器驱动与内核路由表重定向。
我们在 Windows 11 环境下,使用管理员身份打开 PowerShell,执行 route print 观察路由表在开启虚拟网卡前后的实际物理变动:
PS C:\Windows\system32> route print -4
===========================================================================
活动路由:
网络目标 网络掩码 网关 接口 跃点数
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.108 25
127.0.0.0 255.0.0.0 在链路上 127.0.0.1 331
192.168.1.0 255.255.255.0 在链路上 192.168.1.108 281
===========================================================================分析:全局默认网关(0.0.0.0/0)直接指向本地路由器 192.168.1.1,接口为真实无线网卡 192.168.1.108。
PS C:\Windows\system32> route print -4
===========================================================================
活动路由:
网络目标 网络掩码 网关 接口 跃点数
0.0.0.0 128.0.0.0 在链路上 10.66.66.2 5
128.0.0.0 128.0.0.0 在链路上 10.66.66.2 5
198.51.100.25 255.255.255.255 192.168.1.1 192.168.1.108 25
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.108 35
===========================================================================底层技术精髓解析:
/1 路由掩码覆盖法:VPN 驱动并未强行删除原来的默认路由(0.0.0.0/0),而是添加了两条细化的子网路由:0.0.0.0/1(覆盖 0.0.0.0 ~ 127.255.255.255)和 128.0.0.0/1(覆盖 128.0.0.0 ~ 255.255.255.255),跃点数(Metric)更小(仅为 5)。10.66.66.2。198.51.100.25/32)单独保留指向真实网关 192.168.1.1 的主机路由,避免“VPN 封装的数据包在寻找 VPN 服务器时自身陷入无限死循环”。| 协议对比维度 | OpenVPN (经典老牌) | WireGuard (新一代现代协议) |
|---|---|---|
| 内核态 vs 用户态 | 用户态运行(存在频繁上下文切换开销) | 深度集成于 Linux 内核态运行,极致高效 |
| 代码行数 | 约 70,000 ~ 100,000 行(代码库庞大) | 仅约 4,000 行(极简架构,易于形式化安全审计) |
| 连接建立耗时 | 典型握手耗时约 1.5 ~ 3.0 秒 | 握手耗时小于 100 毫秒,几乎“瞬时连接” |
| 漫游能力 (Roaming) | 手机由 Wi-Fi 切换到 5G 时通常断流需重连 | 基于公钥无状态路由(Cryptokey Routing),IP 切换无缝漫游 |
| 混淆拓展性 | 支持通过 TCP 443 伪装为标准 HTTPS 流量 | UDP 报文头部特征较为明显,在特定网络中易遭识别阻断 |
这是由于开启全局 VPN 后,国内网站接收到的是海外机房的出口 IP,触发了网站的风控策略(例如防刷单或版权限制)。解决方案是在客户端中开启分流功能(Split Tunneling),配置规则使常用国内域名(如 *.cn)直接绕行本地网络直连。
是的,必须进行 MTU 调优。 传统以太网最大传输单元(MTU)为 1500 字节。由于 VPN 封装增加了额外的外层 IP 头、UDP 头与加密鉴权标签,如果内层数据包过大,就会导致报文在公网被分片(Fragmentation)甚至静默丢弃。优质的客户端会自动将虚拟网卡 MTU 设置为 1420 或 1280,以避免吞吐量骤降。
当 VPN 隧道意外中断时,操作系统原有的默认路由可能会瞬间恢复,导致流量在无加密保护下裸连泄露。Kill Switch 的底层实现是通过系统防火墙(如 Windows Filtering Platform 或 Linux iptables)注入强制规则:阻断除发往 VPN 服务器 IP 以外的所有出站流量,直到隧道重新建立成功。
本站(vpnwiki.blog)为独立第三方网络技术百科与指南站点,与任何 VPN 品牌或加速器官方无股权、控制或雇佣隶属关系。所有实测数据与协议分析均基于真实客观网络采样。
本站推荐的免费 VPN 方案均为真实可用、免绑信用卡扣款的永久或长期免费服务。我们坚决拒绝把“7天限时试用”或“30天退款保证”虚假包装为永久免费。
部分出站链接包含推广代码,统一规范应用 rel="nofollow sponsored noopener" 属性。所得微薄分成仅用于维持独立测试服务器与 CDN 开销,绝不干扰评测结果客观性。