使用 WireGuard 搭建私人 VPN
出国查资料、玩游戏延迟高?WireGuard 是最新的 VPN 协议,比 OpenVPN 快得多。
为什么 WireGuard
- 快 — 内核级 WireGuard 比 OpenVPN 快 3-4 倍
- 简单 — 配置几十行搞定
- 安全 — 现代加密,默认最优配置
- 开源 — Linux 内核原生支持
架构
我的电脑 → 公网 IP:51820 → VPS(WireGuard 服务器) → 目标网络
VPS 部署
1. 安装
# Ubuntu
apt update
apt install wireguard
开启转发
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
2. 生成密钥
# 服务器密钥
wg genkey | tee /etc/wireguard/wg0.server.key
公钥
cat /etc/wireguard/wg0.server.key | wg pubkey > /etc/wireguard/wg0.server.pub
客户端密钥
wg genkey | tee /etc/wireguard/client1.key
cat /etc/wireguard/client1.key | wg pubkey > /etc/wireguard/client1.pub
3. 配置服务器
/etc/wireguard/wg0.conf:
[Interface]
Address = 10.0.0.1/24
PrivateKey = <服务器私钥>
ListenPort = 51820
PostUp = iptables -A FORWARD -i %i -j ACCEPT
PostUp = iptables -A FORWARD -o %i -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = <客户端公钥>
AllowedIPs = 10.0.0.2/32
4. 启动
chmod 600 /etc/wireguard/wg0.conf
wg-quick up wg0
systemctl enable wg-quick@wg0
客户端配置
Windows/Mac
下载 WireGuard 客户端,导入配置:
[Interface]
PrivateKey = <客户端私钥>
Address = 10.0.0.2/24
DNS = 1.1.1.1
[Peer]
PublicKey = <服务器公钥>
Endpoint = 你的VPSIP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Android/iOS
应用商店下 WireGuard,扫二维码或导入配置。
Docker 部署(推荐)
version: "3.8"
services:
wireguard:
image: linuxserver/wireguard:latest
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
- PUID=1000
- PGID=1000
- SERVERURL=你的域名或IP
- SERVERPORT=51820
- PEERS=client1
volumes:
- ./wireguard-config:/config
- /lib/modules:/lib/modules
ports:
- "51820:51820/udp"
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped
配置在 ./wireguard-config/peer1/ 下。
踩坑记录
坑 1:连不上
检查端口是否开放:
ss -ulnp | grep 51820
防火墙要放行 UDP 51820。
坑 2:能连但没网
IP 转发没开:
cat /proc/sys/net/ipv4/ip_forward
应该是 1
坑 3:DNS 失效
VPN 后 DNS 失效。客户端配置里加:
DNS = 1.1.1.1
速度测试
WireGuard 延迟比 OpenVPN 低很多。我测的结果:
| 协议 | 延迟 | 带宽 |
|------|------|------|
| OpenVPN | 180ms | 30Mbps |
| WireGuard | 150ms | 80Mbps |
快一倍不止。
总结
WireGuard 是现代 VPN 的首选:
- 快 — 内核级,性能好
- 简单 — 配置几十行
- 安全 — 现代加密
- 跨平台 — Win/Mac/Linux/手机
唯一要注意的是部分运营商会封 UDP 51820,换端口可以缓解。
Nginx/OpenResty WireGuard私人VPN
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法