协议与方案全景

定位说明:这篇是文档学习加方案梳理,各协议的安全结论以公开研究为准,配置细节各版本变化大——真要用时再查对应官方文档(文中已标核对点)。

上一篇把"VPN 是什么"讲清了,但真上手时会立刻撞见一堆名词:PPTP、L2TP、IPsec、OpenVPN、WireGuard、IKEv2……01-VPN里那句"选择合适的VPN软件(如OpenVPN或WireGuard)"就是这道选择题的入口。这篇把演进线捋一遍,看每一代协议为了解决什么问题而生、又为什么被下一代替代。

一、协议演进线:三十年四代

flowchart LR
    P["PPTP<br>1999 · 已淘汰"] --> L["L2TP/IPsec<br>2000s · 兼容老设备"]
    L --> O["OpenVPN<br>2001 · 老牌稳健"]
    O --> W["WireGuard<br>2015+ · 现代主流"]
    style P fill:#d8dee9,stroke:#999,color:#333
    style L fill:#d8dee9,stroke:#999,color:#333
    style O fill:#a3be8c55,stroke:#a3be8c,color:#333
    style W fill:#88c0d055,stroke:#88c0d0,color:#333

第一代:PPTP(点对点隧道协议)。Windows 98 时代就有了,配置极其简单,但加密方案早已被破解,数小时就能解密流量。结论:当它不存在,任何"还能用"的设备都不该再选它。现在它存在的唯一理由是给古老设备兜底。

第二代:L2TP/IPsec。L2TP 自己不加密,必须和 IPsec 捆绑使用(所以名字总是成对出现)。兼容性好——几乎所有系统原生支持,无需装客户端。但 IPsec 的握手流程复杂,且 UDP 500/4500 端口在部分网络下容易被掐。今天主要用于"设备不支持别的协议"的场景。

第三代:OpenVPN。2001 年提出,走 SSL/TLS 那套成熟加密体系,能穿过 TCP 443(跟 HTTPS 同端口,防火墙很难区分)。优点是久经考验、生态成熟:证书体系、双因素、细粒度控制应有尽有。缺点是:用户态实现速度打折扣、配置项海量、客户端笨重。06-VPN实战里的原话"不得不说用openvpn翻墙实在是太麻烦了"就是这份"重"的亲身体感——不是不能跑通,是配置和维护成本高。企业级部署(尤其需要审计合规的)至今仍是 OpenVPN 的主场。

第四代:WireGuard。2015 年由 Jason Donenfeld 设计,2020 年进入 Linux 内核主线。设计哲学和它的前辈完全相反:整个协议代码只有约 4000 行(OpenVPN+OpenSSL 是它的百万倍量级),代码少意味着可审计、漏洞面小、速度极快。固定使用一套现代加密算法(Curve25519/ChaCha20-Poly1305),不搞算法协商——旧算法被攻破时发新版本即可,不留历史包袱。下一章专门实操它。

二、协议之外的另一条分岔:自建 vs 托管组网

选完协议还有一层选择:要不要自己当"VPN 服务器"

路线 怎么运作 你要操心什么 代表
自建 自己找台服务器装服务端,各端装客户端连它 服务器、域名/端口、证书、升级、安全 OpenVPN、WireGuard 原生
托管组网 官方协调服务器帮你牵线,设备间尽量 P2P 直连 装客户端、登账号(EasyTier 连账号都不用) Tailscale、ZeroTier、EasyTier

托管组网本质上是"把 WireGuard 的配置工作自动化了"——Tailscale 底层就是 WireGuard,只是密钥交换、NAT 打洞、IP 分配全由软件代劳,所以才有06-VPN实战里"只需要在各用户端下载该软件 然后使用同一账号登入 它内部就会做好一系列配置"的体验。

三种选择的粗略决策树:

flowchart TD
    Q{"要搭 VPN 的目的是?"} -->|"连接机构内网"| O1["用机构给的客户端<br>(EasyConnect/AnyConnect等)<br>没得选也不用选"]
    Q -->|"自建 学习/完全掌控"| W1["WireGuard<br>现代默认选择"]
    Q -->|"自己的设备异地互联"| Z{"想不想依赖<br>官方协调服务器"}
    Z -->|"无所谓 图省事"| T["Tailscale"]
    Z -->|"想去中心化"| E["EasyTier<br>(或自建 WireGuard)"]

三、本库的对应实操地图

一句话总结演进逻辑:加密从"可破解"到"不可破解",实现从"用户态重型框架"到"内核态极简代码",运维从"手搓配置"到"账号即接入"——但底层的思想没变:在公网上挖一条只有自己人能走的加密隧道。


⬅️ VPN是什么 🏠 00-网络与项目 ➡️ WireGuard实操