OffshoreVps
安全2026年9月17日阅读约 10 分钟作者:OffshoreVps 团队

在 VPS 上搭建你自己的 WireGuard VPN

分步指南:在 Ubuntu 或 Debian 上安装 WireGuard、创建密钥、编写服务器和客户端配置、开放防火墙并测试隧道。

WireGuard 是一种现代 VPN 协议,速度快、体积小、配置简单。在 VPS 上运行你自己的 WireGuard,可以获得一条通往你所选国家服务器的加密隧道,中间没有第三方 VPN 公司。本指南使用 Ubuntu 24.04 或 Debian 12/13,并假定你已经加固了服务器。

VPS 上的终端窗口,显示设置 WireGuard 所用的命令,以“sudo apt update”开头
本指南中你将在服务器上运行的那类命令。

1. 安装 WireGuard

sudo apt update
sudo apt install -y wireguard

2. 生成服务器密钥

cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub

umask 077 可确保密钥文件仅 root 可读。请保管好 server.key,不要泄露。

3. 创建客户端密钥

在服务器上为你的笔记本电脑或手机生成一对密钥,之后再把客户端配置复制过去:

wg genkey | tee client1.key | wg pubkey > client1.pub

4. 编写服务器配置

首先找到你的公网网络接口的名称:

ip route get 1.1.1.1 | awk '{print $5; exit}'

它通常是 eth0 或 ens3。创建 /etc/wireguard/wg0.conf,并将大写的值替换为你自己的:

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp   = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ETH_IF -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ETH_IF -j MASQUERADE

[Peer]
# client1
PublicKey = CLIENT1_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32

将 server.key 和 client1.pub 的内容粘贴到标注的位置,并将 ETH_IF 替换为你的接口名称。

5. 开启 IP 转发

echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
本指南的步骤依次为:1. 1. 安装 WireGuard;2. 3. 创建客户端密钥;3. 5. 开启 IP 转发;4. 7. 启动隧道;5. 9. 测试;6. 选择位置
本指南的步骤,按顺序排列。

6. 开放防火墙

sudo ufw allow 51820/udp
sudo ufw route allow in on wg0
sudo ufw reload

7. 启动隧道

sudo systemctl enable --now wg-quick@wg0
sudo wg show

你应该能看到该接口,并且在客户端连接后,还能看到其最近一次握手。

8. 配置客户端

在你的设备上创建如下配置(适用于 Windows、macOS、Linux、iOS 和 Android 的官方 WireGuard 应用可以从文件或二维码导入):

[Interface]
Address = 10.8.0.2/24
PrivateKey = CLIENT1_PRIVATE_KEY
DNS = 1.1.1.1

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = YOUR_SERVER_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

使用 AllowedIPs = 0.0.0.0/0, ::/0 会让所有流量都通过隧道。如果只想访问你的私有网络,请改用 10.8.0.0/24。

9. 测试

  1. 在客户端上激活隧道。
  2. 在服务器上运行 sudo wg show,确认存在最近的握手。
  3. 在客户端上访问“我的 IP 是什么”类页面。它应该显示你服务器的地址。
  4. 如果以隐私为目标,请检查是否存在 DNS 泄漏;如果你的服务器有 IPv6,还要添加 IPv6 规则。

添加更多设备

对于每台新设备,生成一对密钥,再添加一个 [Peer] 块并使用新地址(例如 10.8.0.3/32),然后运行 sudo wg syncconf wg0 <(wg-quick strip wg0) 来应用,而不会中断现有连接。

选择位置

WireGuard 服务器可在我们的任何一个位置运行。选择离你近的位置以获得速度,或选择你希望流量出口 IP 地址所在的国家。参见 如何选择 VPS 位置。对于个人隧道来说,一台小型 VPS 绰绰有余。