2026-11-02·por Sijie Wang#fundamentals#networking#wireguard#vpn

how-wireguard-works

WireGuard 怎么工作:SSH 化的 VPN

老一代 VPN 协议长成了配置沼泽——IPsec 什么都能协商,OpenVPN 拖着庞大的 TLS 表面——绝大多数故障和漏洞都住在协商和选项里,而不是加密本身。WireGuard 的立项决定是做减法:一套固定的现代密码套件、不协商、代码量极小、跑在内核里。 一句话概括:把 VPN 按 SSH 的手感重做一遍。

身份就是密钥对,跟 SSH 一字不差。 每个对端有一对静态公私钥;信任一个对端,就是把它的公钥列出来,跟 authorized_keys 一样。没有账号、没有证书、没有用户名。而无法认证的对端,得到的回应是沉默:WireGuard 对未认证的包一个字节都不回,扫描器眼里这台机器根本不存在。

1-RTT 握手——以及它为什么能只用一个往返。 因为双方的静态公钥预先就知道,没有东西要协商、没有身份要出示:第一个包就已经可以携带加密载荷,密钥由静态密钥加上新鲜的临时密钥推导而来(Noise_IK 模式)。对照 SSH 或 TLS 更长的开场:它们要花往返去商量算法、出示凭据。WireGuard 把一切都在配置时预先谈妥,握手一个往返收工。

密码学路由:路由表和访问名单是同一张表。 每个对端条目把一把公钥和它的允许 IP 绑在一起。出站时,这张表决定某个目的地地址该用哪把钥匙加密;入站时,解密后包的源地址必须落在该对端的允许范围内,否则丢弃。路由决策和身份核验塌缩成一次查询。

漫游是密钥身份的免费推论。 对端的端点(它当前的 IP:端口)从它发来的最后一个已认证包里学到。从办公室 Wi-Fi 切到手机热点,隧道原样存活:身份是钥匙不是地址,地址便可以随便变。

SSH 类比的边界——那句一句话概括到此为止:WireGuard 是三层(虚拟网卡,在机器之间搬 IP 包),SSH 是七层(进到一台机器上某个用户的 shell 会话)。WireGuard 跑在 UDP 上、没有连接状态;SSH 跑在有状态的 TCP 连接上。两者的亲缘在身份与克制——用钥匙代替账号、用一套代替菜单——不在它们搬运的东西。

sobre esta entrada

Una de las entradas de wiki de sijie. La IA en este sitio está anclada en el mismo corpus y responde en la voz de sijie, con citas que vuelven a entradas como esta — responder le cuesta dinero a sijie, así que espera detrás de un código: ingrese código de acceso →

how-wireguard-works — Sijie Wang