打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

极速安全:在搬瓦工 VPS 上部署 WireGuard (WG) 详细指南

来自md5.pw
这是此页面的最新修订,它没有已核准修订。

极速安全:在搬瓦工 VPS 上部署 WireGuard (WG) 详细指南

WireGuard 是被整合进 Linux 内核的新一代 VPN 协议,以其极简的代码库、极高的性能和先进的加密技术著称。相比传统的 OpenVPN 或 IPsec,WireGuard 在搬瓦工(BandwagonHost)VPS 上能提供更低的延迟和更高的吞吐量,非常适合作为个人的安全加密通道。

本文将手把手教你如何在 Ubuntu/Debian 系统上手动部署 WireGuard 服务端,并配置客户端连接。

准备工作

  • 一台搬瓦工 VPS(推荐使用 Ubuntu 20.04/22.04Debian 10/11 系统)。
  • 确保已通过 SSH 连接到服务器 root 用户。

第一步:安装 WireGuard

得益于搬瓦工提供的 KVM 架构和较新的内核,安装 WireGuard 非常简单。

在终端执行以下命令更新软件源并安装:

apt update && apt install -y wireguard qrencode
  • 注意:这里顺便安装了 qrencode,后面用于生成手机扫描的二维码。

第二步:生成密钥对

WireGuard 使用类似 SSH 的公钥/私钥体系。我们需要分别为“服务端”和“客户端”生成密钥。

1. 生成服务端密钥

cd /etc/wireguard
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key

2. 生成客户端密钥

wg genkey | tee client_private.key | wg pubkey > client_public.key

现在目录下应该有4个文件。你可以用 cat 命令查看并记录它们的内容(千万不要泄露私钥 Private Key)。

第三步:配置服务端

创建并编辑 WireGuard 的主配置文件 wg0.conf

nano /etc/wireguard/wg0.conf

将以下内容粘贴进去(注意替换密钥部分):

[Interface]
# 服务端私钥 (server_private.key 的内容)
PrivateKey = <这里填入你的 server_private.key>
# 服务端内网 IP,一般保持默认
Address = 10.0.0.1/24
# 监听端口 (UDP),如果被防火墙拦截可尝试修改
ListenPort = 51820
# 启动后执行的路由规则 (开启 NAT 转发)
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o eth0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# 关闭后清除路由规则
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o eth0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# 客户端公钥 (client_public.key 的内容)
PublicKey = <这里填入你的 client_public.key>
# 允许该客户端使用的内网 IP
AllowedIPs = 10.0.0.2/32
  • 注意:如果你的网卡名称不是 eth0(可以用 ip a 查看),请将 PostUp/PostDown 中的 eth0 替换为实际网卡名称(如 ens3)。

第四步:开启 IP 转发

为了让 VPS 能转发流量,必须开启内核 IP 转发功能。

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

第五步:启动服务

启动 WireGuard 并设置开机自启:

wg-quick up wg0
systemctl enable wg-quick@wg0

如果没有任何报错,输入 wg 命令应该能看到接口状态。

第六步:配置客户端

选项 A:手机端 (iOS/Android)

这是最酷的一步!我们可以直接在终端生成配置并转为二维码。

1. 创建客户端配置文件模板 client.conf

nano /etc/wireguard/client.conf

2. 填入以下内容:

[Interface]
# 客户端私钥 (client_private.key 的内容)
PrivateKey = <这里填入你的 client_private.key>
Address = 10.0.0.2/24
DNS = 8.8.8.8

[Peer]
# 服务端公钥 (server_public.key 的内容)
PublicKey = <这里填入你的 server_public.key>
# 服务端公网 IP : 端口
Endpoint = <你的VPS公网IP>:51820
# 路由流量:0.0.0.0/0 代表代理所有流量
AllowedIPs = 0.0.0.0/0
# 保持连接心跳,防止 NAT 断连
PersistentKeepalive = 25

3. 生成二维码:

qrencode -t ansiutf8 < client.conf

此时你的 SSH 终端里会直接显示一个巨大的二维码,打开手机 WireGuard APP 扫描即可连接!

选项 B:电脑端 (Windows/macOS)

将上面的 client.conf 内容复制,保存为 wg0.conf,导入电脑版 WireGuard 客户端即可。

常见问题排查

Q
连上了但无法上网?
A: 检查 第四步 是否开启了 IP 转发。另外检查 VPS 的防火墙(UFW/IPTables)是否放行了 51820 UDP 端口。
ufw allow 51820/udp
Q
搬瓦工某些机房连不上?
A: WireGuard 使用 UDP 协议,极少数地区的运营商可能会对大流量 UDP 进行 QOS 限速或阻断。如果遇到这种情况,可以尝试更换 ListenPort 端口,或者配合 udp2raw 使用(进阶玩法)。

Created by AlexLynn for md5.pw Community.