为什么要自己搭建 WireGuard VPN
使用商业 VPN,你需要信任一家无法亲自审计的公司。你付费给他们,将所有流量经由他们的服务器转发,然后相信他们「不留日志」的承诺。自托管 VPN 则完全颠倒了这种关系:你租用一台服务器,自己安装 VPN,唯一能看到你流量的人就是你自己。中间没有服务商可以记录、出售或被传唤提交你的数据。
WireGuard 使这一切变得触手可及。它是一种现代 VPN 协议,小巧、快速、简洁——代码只有数千行,而旧有协议动辄数十万行,因此更易于审计,也更难配置出错。在一台普通 VPS 上,它几乎不占 CPU 资源就能跑满带宽。配合无 KYC 的离岸 VPS,自托管 WireGuard 隧道能为你提供一个完全属于自己的私有出口——本教程将带你从零开始构建它。

你需要准备什么
整个配置只需一台服务器和大约十五分钟:
- 一台 VPS。即便是最低配置方案也绰绰有余——WireGuard 极为轻量。选择你希望流量显示来源的地区。ServPrivacy 每月 $7.50 起、附带完整 root 权限的 VPS 方案已完全满足需求。
- 全新的 Linux 安装环境。任何较新版本的 Debian 或 Ubuntu 均可;以下命令基于这两个发行版。其他发行版仅在软件包安装步骤上有所不同。
- root 或 sudo 权限,以及几分钟的命令行操作时间。
你不需要域名、控制面板或任何第三方 VPN 软件。WireGuard 已内置于现代 Linux 内核中。
第一步 — 在服务器上安装 WireGuard
通过 SSH 连接到你的 VPS,安装 WireGuard 工具。在 Debian 或 Ubuntu 上,只需一条命令:apt update && apt install -y wireguard。现代内核已内置 WireGuard 内核模块,因此此命令只安装用户空间工具——wg 和 wg-quick——用于管理隧道。
安装就这么简单。无需配置独立守护进程,无需创建账户,除常规系统更新外也无需额外维护任何组件。
第二步 — 生成密钥并编写服务器配置
WireGuard 使用公钥密码学对节点进行身份验证,因此第一步是为服务器生成密钥对。执行 wg genkey | tee server_private.key | wg pubkey > server_public.key 即可完成生成。私钥留存于服务器上,绝不外传;公钥将分发给每个客户端。
接下来,在 /etc/wireguard/wg0.conf 创建隧道配置文件。服务器节区定义了隧道的私有地址范围、WireGuard 监听端口(默认 51820),以及服务器的私钥。后续每台接入的设备均以 [Peer] 块的形式添加,其中包含该客户端的公钥及其在隧道内的地址。务必将此文件权限设为仅 root 可读——它包含服务器的私钥。
配置文件刻意保持简短。一个可正常运行的服务器配置不超过二十行,这正是 WireGuard 极难配置出严重错误的原因之一。
第三步 — 启用转发并开放端口
若要让 VPN 将你的流量路由到互联网,服务器必须启用数据包转发。在 /etc/sysctl.conf 中设置 net.ipv4.ip_forward=1,并执行 sysctl -p 使其生效。隧道配置中还需要一条防火墙规则,对出站流量进行地址伪装,使其以服务器自身地址发出——通常以 PostUp 行的形式写入 wg0.conf,隧道启动时自动应用。
然后确保 WireGuard 端口可达。若 VPS 启用了防火墙,请放行所选端口(默认 51820)上的 UDP 流量。WireGuard 仅使用 UDP——这对隐私保护颇为有利——且对主动探测的数据包完全不响应,端口扫描甚至无法确认该服务是否存在。
执行 wg-quick up wg0 启动隧道,并执行 systemctl enable [redacted-user]@[redacted-host] 设置开机自启。服务器端至此配置完毕。
第四步 — 添加客户端并完成连接
每台接入 VPN 的设备——无论是笔记本还是手机——都需要各自的密钥对和一份简短的客户端配置文件。按照与服务器相同的方式为客户端生成密钥对,然后编写客户端配置,包含:客户端私钥、隧道地址、服务器公钥、服务器公网 IP 和端口(作为 Endpoint),以及将 AllowedIPs 设为 [redacted-ip]/0,使所有流量均经由隧道路由。
将对应的 [Peer] 块——包含客户端公钥——添加到服务器的 wg0.conf 中并重载配置。在客户端设备上,安装 WireGuard 应用(桌面端和移动端均有对应版本),导入配置文件——大多数应用支持 QR 码导入,这对手机用户来说最为便捷——然后开启隧道。片刻之后,你的设备流量便会通过 VPS 出口转发。通过查询公网 IP 地址确认效果:显示的应为你服务器的 IP。
第五步 — 安全加固与日常维护
隧道正常运行已完成了大部分工作;再做几处收尾,便可使其更加稳固:
- 锁定 SSH 访问。使用密钥登录,禁用密码认证,并考虑将 SSH 迁移至 22 端口以外的端口。VPN 的隐私性取决于其所运行服务器的安全性。
- 保持系统更新。WireGuard 本身几乎无需维护,但底层操作系统应及时安装安全更新——建议启用自动更新。
- 每台设备独立密钥对。切勿在多台设备间共用同一客户端配置。若某台设备丢失,只需移除对应的 peer 块,无需为所有设备重新生成密钥。
- 在客户端配置中指定 DNS。将客户端指向注重隐私的 DNS 解析器,确保 DNS 查询也通过隧道传输,而非泄漏至本地网络。
- 信任默认的日志行为。WireGuard 不存储任何关于其转发流量的信息;通过的数据根本不被记录,因此也不需要额外关闭任何日志选项。
如此维护下来,服务器几乎不需要日常关注——WireGuard 近乎「配置一次,永久运行」。
何时自托管 VPN 是正确选择
当你希望拥有一个完全听命于自己的私有出口节点时——无论是在不可信网络上保障连接安全、屏蔽 ISP 对浏览行为的监控,还是以特定地区的 IP 出口上网——自托管 WireGuard VPN 都是正确的选择。由于服务器属于你自己,IP 地址不与成千上万的陌生人共享,也无需对任何服务商的隐私政策寄予信任。
有一点值得坦诚说明:单服务器 VPN 能保护你免受 ISP 及所访问网站的监控,但 VPS 服务商理论上可以在出口处观察流量。这正是主机选择至关重要的原因——无 KYC、不留日志的离岸 VPS,意味着出口节点本身由一家未收集任何身份信息、不保留任何通过记录的服务商持有。自托管 WireGuard 配合合适的 VPS,对大多数人而言,是目前最为诚实可靠的隐私保护方案:除你自己掌控的基础设施外,无需对任何人寄予信任。