Ubuntu WireGuard 虚拟局域网配置:从零搭建安全隧道
开场:一个让我抓狂的周五下午 上周五下午五点半,我准备下班,突然想起家里的 NAS 上有一份重要的项目文档,周末要用。 打开手机一看——家里的公网 IP 又变了。上个月刚配好的端口转发,白搞了。 我试过这些方案: frp 内网穿透:配置文件写了 50 行,还要维护服务端,每次改配置都要重启 ZeroTier:有时候连接稳定,有时候突然断线,像开盲盒 Tailscale:好用,但免费版只能 3 个用户,团队协作不够用 直到同事推荐了 WireGuard。 第一次用的时候我惊了——配置文件只有 8 行,连接速度快到我怀疑它是不是真的加密了。更离谱的是,它的代码量只有 OpenVPN 的 1/100,安全性反而更高。 这篇文章就解决一件事:怎么在 Ubuntu 上从零开始配置 WireGuard,搭建一个稳定、安全的虚拟局域网。 先搞清楚:WireGuard 到底是什么? 在动手之前,先花 2 分钟搞清楚 WireGuard 的核心思想,不然你会一直踩坑。 密钥对就是你的身份 WireGuard 的身份验证简单到让人怀疑人生:每个设备一对密钥(公钥+私钥)。 打个比方:你去银行办业务,柜员要验证你的身份。WireGuard 的验证方式就像这样: 公钥 = 你的身份证号(可以告诉任何人) 私钥 = 你的密码(打死不能泄露) 预共享密钥(可选)= 银行给你发的动态验证码(额外安全层) 关键区别:WireGuard 没有"服务器"和"客户端"的概念——所有节点都是平等的 peer。 这就像微信群:每个人都可以给其他人发消息,没有"群主"的概念(虽然技术上你可以指定一个节点作为中继)。 为什么这很重要? 点对点连接:设备之间直接通信,不经过中心节点,延迟更低 拓扑灵活:星型、网状、混合都可以,按需选择 单点故障风险低:一个节点挂了,其他节点不受影响 性能对比:WireGuard vs 传统 VPN 协议 代码量 握手延迟 吞吐量 配置复杂度 安全性 WireGuard ~4,000 行 <100ms 接近线速 ⭐ 极简 ✅ 现代加密 OpenVPN ~100,000 行 1-3s 中等 ⭐⭐⭐ 复杂 ✅ 成熟稳定 IPSec ~500,000 行 2-5s 中等 ⭐⭐⭐⭐ 很复杂 ✅ 企业级 结论:WireGuard 在性能和易用性上碾压传统方案,唯一缺点是生态还在发展中(但已经够用了)。 ...