什么是 WireGuard VPN 以及它是如何工作的?
目前最快的 VPN 加密协议如何运作

分享
通过**虚拟专用网络(VPN)**来保障隐私和数据安全看似很简单:开启它,等待连接,几秒钟内您的 IP 地址就会被隐藏,数据也会被加密。然而,网络匿名性绝非魔法。 VPN 背后的技术是一个复杂且涉及多步骤的过程。
VPN 主要是网络。但它们运行在通信协议之上,这些协议会处理多个加密阶段,因此用户数据在传输过程中是安全的。 WireGuard 是一种相对较新的 VPN 加密协议,但迄今为止它是速度最快的。
WireGuard 的速度源于针对加密过程每个步骤精心挑选的高效协议,以及其高度精简的代码库。虽然这可能不是大多数传统 VPN 所使用的协议,但它已成为新型 去中心化 VPN(dVPN) 的首选协议。如今,许多 VPN 服务商也迅速效仿这一做法。
本文详细介绍了 WireGuard 加密过程的各个阶段、其优缺点,以及它如何以独特的方式为 dVPN 提供卓越的隐私功能。
什么是 WireGuard VPN?
WireGuard 是一种开源的 通信协议,它提供了加密路由机制,许多现代 VPN 正是通过这种机制 保护用户的数据和隐私。它在公钥加密过程的每个阶段都采用最先进的协议,使其成为目前最快的 VPN 协议。
WireGuard 于 2015 年推出,随后于 2020 年发布 Linux 版本。它现已兼容所有主流操作系统和设备,并被越来越多的新兴VPN服务所采用。由于其高速、开源可审计性以及低数据开销等优势,预计 WireGuard 很快将超越主流 VPN 目前采用的、应用更为广泛的通信协议。
了解有关数据加密工作原理的更多信息,请参阅 Nym 的综合指南。
VPN 是什么?
WireGuard VPN 是如何工作的?
WireGuard 是一款可在用户设备以及 VPN 或代理服务器上运行的软件客户端,可让加密流量在两者之间快速、安全地传输。因此,当您使用 WireGuard 协议连接到 VPN 服务器时,后台大致是这样的:
握手
在进行任何密钥或数据交换之前,客户端会向服务器发送请求,从而启动所谓的“握手”过程。服务器通过向客户端发送其公钥来响应。 WireGuard 采用 Noise 协议中的 Noise_IK 握手机制,该机制具有诸多安全和隐私优势,例如可避免密钥泄露导致的冒充和重放攻击、隐藏握手双方的身份,以及实现完美的向前保密性。
密钥交换与派生
随后,服务器和客户端会交换公钥,以验证彼此的身份。在密钥交换方面,WireGuard 使用 Curve25519,这是一种基于迪菲-赫尔曼(Diffie-Hellman)公钥加密算法的最先进的椭圆曲线密码学方案。
服务器和客户端使用交换的密钥生成一个仅它们自己知道的唯一密钥。这是通过密钥派生函数(KDF)实现的。在密钥派生阶段,WireGuard 使用 HKDF(或基于 HMAC 的 KDF),该算法凭借其高度安全的两阶段流程以及在密钥长度方面的灵活性,在 VPN 路由中具有显著优势。派生密钥用于客户端与 VPN 服务器之间的对称加密。
加密与身份验证
在加密和认证阶段,WireGuard 使用 ChaCha20-Poly1305,这是 ChaCha20 流密码与 Poly1305 消息认证码的组合。该算法性能极佳,通常比 AES-GCM 更快。
哈希
哈希是指加密路由中的一种过程,将任意大小的输入数据转换为固定长度的字符串。转换后,输出日期或“哈希值”可用于判断数据包在传输过程中是否被篡改或更改。如果是这样,收件人看到的哈希值将与发件人看到的哈希值不同。 WireGuard 采用 Blake2 作为其哈希函数,该算法比之前的标准(例如 SHA-1 和 SHA-2)更快、更优,且其安全性被认为与 SHA-3 等先进标准相当。
运输方式
传输层负责将流量数据转换为加密数据包,以便通过网络发送。 WireGuard 使用用户数据报协议 (UDP) 对加密数据进行封装。该通信协议可实现快速且安全的数据传输。它不使用 TCP,因为在 VPN 网络上,TCP 效率较低,这是由于数据开销较大以及已知的问题(“TCP 崩溃”)。
路由
当您的数据在设备上经过 WireGuard 这一复杂但高效的 VPN 加密过程后,该过程确保了预期接收方的真实性及数据包的安全性,随后数据将被路由至 VPN 服务器。此时,您的流量 IP 地址将被替换为 VPN 服务器自身的公共 IP。
解密
由于是 VPN 服务器负责将您的数据加密后传输至其服务器,因此数据到达该服务器后,该层加密将通过上述密钥被移除或解密。不过,假设您的设备与网页端预期接收方之间的原始连接是通过 HTTPS 加密的,那么应该还保留着一层加密,从而防止 VPN 看到您的明文数据。一旦 VPN 加密被移除,VPN 将能够看到数据的最终发送目的地。默认启用 HTTPS 加密后,您的流量将通过由 WireGuard 驱动的 VPN 实现端到端加密。
WireGuard 兼容性
WireGuard 有时会因与 OpenVPN 等其他协议相比兼容性较弱而受到批评。但这在很大程度上是夸大其词,所指的是特定的硬件兼容性(例如路由器),而非操作系统。
-
操作系统:WireGuard 与大多数主流操作系统和设备兼容:Windows、Mac OS、Linux、Android、iOS 以及现代版本的 BSD。
-
路由器:WireGuard 存在的一个硬件问题是,它目前与许多 VPN 路由器的兼容性不如 OpenVPN 那样广泛。这并不令人意外,毕竟 WireGuard 进入市场仅四年时间。随着未来几年新型路由器硬件的发布,Nym 预计这一兼容性差距将迅速消除。
WireGuard VPN 的优势
速度
就 VPN 通信协议而言,WireGuard 的速度非常快,比过去二十年来一直是行业标准的 OpenVPN 快 50% 以上。精简代码库
WireGuard 的代码极其精简,仅有 4,000 行。相比之下,OpenVPN 的各个版本大约有 100,000 行代码。这使得 WireGuard 的性能极其流畅且高效。
高安全性
WireGuard 采用最先进的加密算法和公钥密码学进行密钥交换。这些加密标准目前是无法破解的。此外,这种简洁轻量的代码库大大减少了潜在攻击的攻击面,而更复杂的 OpenVPN 中那些难以察觉的配置错误则可能导致信息泄露或更大的攻击漏洞。
快速重新连接
WireGuard 采用无状态设计,这意味着它无需在对等节点之间维持持续的连接状态。这种设计能够无缝处理中断情况,因为无需重新建立会话或连接状态。一旦数据包开始再次传输,WireGuard 即可从中断处继续。
开源
WireGuard 的代码是开源的,因此任何人都可以对其进行审核。不过,开源代码是否易于审计,取决于其规模大小。在这方面,WireGuard 因其代码库小巧紧凑而尤为出色。这不仅使协议极其精简,还便于进行公开审计。
WireGuard VPN 的缺点
缺乏混淆处理
WireGuard 缺乏内置的混淆功能。该协议设计为简单、快速且安全的 VPN 协议,专注于简便性和性能。不过,它并不包含混淆流量以隐藏正在使用 VPN 这一事实的功能。这意味着 WireGuard 的流量可能会被网络监控工具或进行深度数据包检测(DPI)的实体识别出来。
其他工具可与 WireGuard 配合使用,例如 Obfsproxy、Shadowsocks 或 Stunnel,以对 VPN 路由过程进行混淆处理。
并非集成到所有 VPN 中
市场上大多数主流 VPN 目前尚未采用 WireGuard,而是几十年来一直使用 OpenVPN。这仅仅意味着,在 VPN 领域,WireGuard 的实战经验相对较少。然而,随着越来越多的 VPN 开始集成 WireGuard,这一情况正在迅速改变。
缺乏路由器支持
目前,支持 WireGuard 的 VPN 路由器远少于支持 OpenVPN 的路由器,这主要是因为这些硬件是在 WireGuard 出现之前设计和编程的。因此,Nym预计未来几年WireGuard的路由器兼容性将发生变化。
WireGuard 协议与其他 VPN 协议的对比
WireGuard 并非市场上 VPN 使用的唯一通信协议,而这些协议之间的差异可能会对 VPN 的性能以及用户隐私产生重大影响。
WireGuard 与 OpenVPN 对比
OpenVPN 是市场上绝大多数 VPN 所采用的通信协议。该协议于 2001 年推出,现已成为 VPN 加密路由领域久经考验的行业标准。然而,WireGuard 与 OpenVPN 之间在性能方面存在显著差异。请阅读 Nym 对这两种协议的详细对比分析。
OpenVPN:其优点在于为用户和程序员提供了灵活的配置选项,并拥有多种加密算法可供选择。它还与 VPN 路由器具有更广泛的兼容性,在企业环境中更为常见。
WireGuard:比 OpenVPN 快得多,数据开销显著更小,且安全性相当。
WireGuard 与 IPSec/IKEv2 对比
IPSec(互联网协议安全)和 IKEv2(互联网密钥交换第 2 版)是用于保障互联网通信安全的协议。它们通常作为 IPSec/IKEv2 组合使用。
IPSec/IKEv2:与 OpenVPN 一样,它支持多种加密协议,但数据开销极大,代码量高达数十万行。这可能会导致容易出错和配置错误,同时也增加了审计难度。
WireGuard:操作更简单、更高效,但用户无法选择加密算法。
WireGuard 与 PPTP 对比
点对点隧道协议(PPTP)是最早的 VPN 加密协议之一。它由微软于 20 世纪 90 年代中期推出,目前仍被一些旧版平台所采用。
PPTP:使用 MPPE(Microsoft 点对点加密)和 RC4 加密算法,按现代标准来看,该算法被认为安全性较低。不过,它的设置相对快速且简单,因此在速度比安全性更受重视的情况下,它可能会派上用场。 WireGuard:不仅速度极快,还采用了最先进的加密算法,因此完全无需像 PPTP 那样在速度与安全性之间进行权衡。
WireGuard 与 L2TP 对比
L2TP(第 2 层隧道协议)是 PPTP 和 L2F(第 2 层转发协议)的扩展。
L2TP:L2TP 本身并不提供加密功能,因此通常与 IPsec 结合使用,以提供加密并保护传输中的数据(L2TP/IPsec)。
WireGuard:由于 L2TP 不加密用户数据,因此将其与 WireGuard 进行比较并无意义。
WireGuard:加速去中心化网络
在在线隐私方面,WireGuard 之所以是一项如此令人兴奋且重要的技术,在于它能够为注重隐私的去中心化 VPN(dVPN)提供快速且安全的路由。
一方面,传统 VPN 的集中式和单服务器架构,从未为用户提供过充分的隐私保护。它们容易受到数据泄露、配合大规模监控请求、为广告商设置后门以及向数据经纪商出售数据等问题的困扰。另一方面,dVPN 虽然前景可期,但网速是一个问题。为了隐藏流量而让数据经过的服务器越多,整体速度就会越慢。对于发送一封机密电子邮件而言,这可能不是什么大问题,但对于全面的网络路由而言,这将是一个问题。
WireGuard 是一款颠覆性的隐私解决方案:它提供了一种极其快速、高效且简化的路由协议,使用户能够在不牺牲太多速度的情况下,享受多跳 dVPN 带来的高级隐私保护。
NymVPN 决定将选择权交给用户。用户可以轻松切换至由 WireGuard 驱动的 2-hop dVPN 模式,以获得极快且私密的日常保护。或者,对于高度敏感的使用场景(例如消息传递和加密货币交易),用户可以选择由 Sphinx 协议驱动的无与伦比的 5 跳混合网络模式,该协议专为处理混合网络流量而设计。
在为您的隐私需求选择最佳 VPN 时,请考虑采用 WireGuard 的去中心化网络如何让您无需牺牲隐私,也能轻松、快速地畅游互联网。

WireGuard VPN:常见问题解答
WireGuard 默认使用固定的 UDP 端口,这虽然简化了路由,但可能会使流量更容易被识别——尽管混淆插件或集成路由(如 NymVPN 中所采用的)可以掩盖端口行为。
NymVPN 将其基于 WireGuard 的 2 跳 dVPN 会话封装在混网信封内,通过多层保护隐藏元数据,同时保留 WireGuard 的速度,以满足日常浏览需求。
WireGuard 会在短时间或达到一定数据量后定期轮换会话密钥(通过 ChaCha20-Poly1305),从而限制密钥泄露的影响,并确保过去的会话仍然安全。
WireGuard 的精简代码库可在 Linux、macOS、Android、iOS 和嵌入式设备上高效运行——但在低功耗硬件上,密钥交换的开销可能会带来轻微的 CPU 负载。
WireGuard 效率极高,与 OpenVPN 搭配 TLS 等更耗资源的协议相比,通常更省电——其更快的握手性能可缩短无线连接保持活跃的时间。
关于作者

Casey Ford, PhD
通讯主管
Ania M. Piotrowska, PhD
技术审阅员