Skip to content
返回云服务

WireGuard VPN 设置

现代、快速、代码库极小的 VPN 协议,使用 ChaCha20+Poly1305;站点到站点或移动办公,每个对端一个配置文件。

VPS 与自托管进阶

为什么

WireGuard 约 4000 行代码(对比 OpenVPN 的 10 万+),可审计,因现代加密和内核实现而更快。每个对端一个配置文件。

现已进入 Linux 内核(5.6+),现代发行版无需内核模块。

何时使用

VPS 区域间站点到站点 VPN、移动办公访问私有网络或作为 Tailscale 替代(需完全控制)时使用 WireGuard。求易用用 Tailscale;不能用第三方控制平面时用原生 WireGuard。

如何做

1. 在服务器和客户端安装 wireguard(apt install wireguard)。 2. 为每个对端生成密钥:wg genkey | tee private | wg pubkey > public。 3. 选择隧道子网(如 10.10.0.0/24)并分配 IP。 4. 在服务器写 /etc/wireguard/wg0.conf,含私钥和每个对端的公钥+allowed-ips。 5. 每个客户端写 wg0.conf,含客户端私钥和服务器公钥+endpoint。 6. 双方 wg-quick up wg0。 ```bash apt install -y wireguard umask 077 && wg genkey | tee server.key | wg pubkey > server.pub # (每个客户端重复) # 写配置(见示例),然后: wg-quick up wg0 ```

示例

// vps-wireguard — 配置示例 const config = { provider: "vps" }; 服务器配置含一个客户端,转发互联网流量(移动办公): ```ini # /etc/wireguard/wg0.conf(服务器) [Interface] Address = 10.10.0.1/24 ListenPort = 51820 PrivateKey = <server.key> PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE [Peer] PublicKey = <client.pub> AllowedIPs = 10.10.0.2/32 ``` ```ini # /etc/wireguard/wg0.conf(客户端) [Interface] Address = 10.10.0.2/24 PrivateKey = <client.key> DNS = 1.1.1.1 [Peer] PublicKey = <server.pub> Endpoint = 203.0.113.10:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 25 ```

常见问题

  • ⚠握手失败 —— 密钥不匹配或互换;服务器 [Peer] PublicKey 须为客户端公钥,反之亦然。
  • ⚠客户端无互联网 —— 服务器未开 IP 转发;在 /etc/sysctl.conf 设 net.ipv4.ip_forward=1 并 sysctl -p,检查 PostUp iptables 规则。
  • ⚠UDP 端口被阻止 —— WireGuard 默认用 UDP 51820;在云防火墙开放,NAT 后客户端加 PersistentKeepalive=25。

最佳实践

  • ✓用 wg genkey(非 openssl)生成密钥并用 chmod 600 保护私钥;绝不提交密钥到 git。
  • ✓用 wg-quick(systemd 服务 wg-quick@wg0)启停和重启持久化,而非手动 wg 命令。
  • ✓服务器上 AllowedIPs 限制为每个对端的 /32,使被攻破客户端无法冒充其他对端 IP。

常见问题解答

什么是WireGuard VPN 设置?它解决什么问题?

现代、快速、代码库极小的 VPN 协议,使用 ChaCha20+Poly1305;站点到站点或移动办公,每个对端一个配置文件。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手WireGuard VPN 设置?

两步即可跑通:① 在服务器和客户端安装 wireguard(apt install wireguard)。;② 为每个对端生成密钥:wg genkey | tee private | wg pubkey > public。。建议先用免费套餐验证流程,再接入生产环境。

WireGuard VPN 设置 最容易踩的坑是什么?

最高频的问题是:握手失败 —— 密钥不匹配或互换;服务器 [Peer] PublicKey 须为客户端公钥,反之亦然。。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

WireGuard VPN 设置 的最佳实践有哪些?

WireGuard VPN 设置 的最佳实践包括:用 wg genkey(非 openssl)生成密钥并用 chmod 600 保护私钥;绝不提交密钥到 git。;用 wg-quick(systemd 服务 wg-quick@wg0)启停和重启持久化,而非手动 wg 命令。;服务器上 AllowedIPs 限制为每个对端的 /32,使被攻破客户端无法冒充其他对端 IP。。其中首条「用 wg genkey(非 openssl)生成密钥并用 chmod 600 保护私钥;绝不提交密钥到 git。」应作为团队默认规范写入 IaC 模板。

WireGuard VPN 设置 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。WireGuard VPN 设置 多数提供免费套餐,先在免费额度内验证再放量。