阿里云美国服务器搭建 WireGuard VPN 学习笔记
阿里云美国服务器搭建 WireGuard VPN 学习笔记
一、什么是 VPN
VPN(Virtual Private Network,虚拟专用网络)本质上是:
在你的设备与远程服务器之间建立一条加密隧道。
数据流程:
你的电脑/手机
↓
加密后的 VPN 隧道
↓
美国阿里云服务器
↓
公网互联网
当 VPN 建立后:
- 你的网络流量会先发送到美国服务器
- 再由美国服务器访问互联网
- 外部网站看到的是美国服务器 IP
- 你的本地网络与公网之间会建立加密通信
二、为什么使用 WireGuard
目前主流 VPN 方案:
| 协议 | 特点 | | ---------- | ----------- | | PPTP | 很老,已不安全 | | L2TP/IPSec | 兼容性强,但配置复杂 | | OpenVPN | 稳定但性能较低 | | WireGuard | 现代、高性能、配置简单 |
WireGuard 优点:
- 速度快
- 延迟低
- 配置简单
- CPU 占用低
- 支持 Windows / Linux / Android / iPhone
- 基于现代加密算法
因此目前更推荐:
WireGuard + WG-Easy
三、什么是 WG-Easy
WG-Easy 是:
WireGuard 的 Web 管理面板。
作用:
- 可视化管理 VPN
- 创建客户端
- 生成二维码
- 下载配置文件
- 管理连接用户
本质结构:
WG-Easy
↓
调用 WireGuard
↓
管理 VPN 隧道
四、整体架构
完整结构如下:
┌──────────────────┐
│ Windows / 手机 │
│ WireGuard 客户端 │
└────────┬─────────┘
│ 加密隧道
│ UDP 51820
↓
┌──────────────────┐
│ 阿里云美国服务器 │
│ Ubuntu + Docker │
│ WG-Easy │
└────────┬─────────┘
│
↓
公网互联网
五、准备工作
服务器要求
推荐:
| 项目 | 推荐 | | --- | -------------------- | | 系统 | Ubuntu 22.04 / 24.04 | | 内存 | 1GB+ | | CPU | 1核即可 | | 网络 | 公网 IP |
开放阿里云安全组
必须开放:
| 协议 | 端口 | 用途 | | --- | ----- | -------------- | | UDP | 51820 | WireGuard VPN | | TCP | 51821 | WG-Easy Web 面板 |
授权对象:
0.0.0.0/0
六、安装 Docker
1. 更新系统
sudo apt update
sudo apt upgrade -y
2. 安装依赖
sudo apt install -y ca-certificates curl gnupg
3. 创建 keyrings 目录
sudo mkdir -p /etc/apt/keyrings
4. 导入 Docker GPG Key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
5. 设置权限
sudo chmod a+r /etc/apt/keyrings/docker.gpg
6. 添加 Docker 软件源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
7. 安装 Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
8. 验证 Docker
docker --version
测试:
sudo docker run hello-world
七、部署 WG-Easy
1. 生成密码 HASH
新版 WG-Easy 已经不支持:
PASSWORD
必须使用:
PASSWORD_HASH
生成 HASH:
docker run --rm ghcr.io/wg-easy/wg-easy wgpw 你的密码
例如:
docker run --rm ghcr.io/wg-easy/wg-easy wgpw 123456
输出:
PASSWORD_HASH='$2b$12$xxxxxxxxxxxx'
复制其中的 HASH。
八、启动 WG-Easy
将:
- 你的公网IP
- 你的 HASH
替换后执行:
docker run -d \
--name=wg-easy \
-e LANG=en \
-e WG_HOST=你的公网IP \
-e PASSWORD_HASH='你的HASH' \
-v ~/.wg-easy:/etc/wireguard \
-p 51820:51820/udp \
-p 51821:51821/tcp \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
--sysctl="net.ipv4.ip_forward=1" \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--restart unless-stopped \
ghcr.io/wg-easy/wg-easy
九、Docker 参数原理讲解
1. 端口映射
-p 51820:51820/udp
含义:
宿主机端口 : 容器端口
作用:
让公网能够访问 WireGuard。
2. 数据卷
-v ~/.wg-easy:/etc/wireguard
作用:
将配置文件保存到宿主机。
否则容器删除后:
- 配置丢失
- 客户端丢失
- 密钥丢失
3. NET_ADMIN
--cap-add=NET_ADMIN
作用:
允许容器修改网络配置。
因为 VPN 需要:
- 创建虚拟网卡
- 配置路由
- NAT 转发
4. IP Forward
net.ipv4.ip_forward=1
作用:
允许 Linux 转发网络流量。
原理:
客户端 → VPN服务器 → 公网
如果不开启:
服务器不会帮客户端转发数据。
十、访问 WG-Easy
浏览器打开:
http://你的IP:51821
输入密码登录。
十一、创建 VPN 客户端
进入后台后:
点击:
New Client
创建:
windows
或者:
iphone
然后:
- 下载配置文件
- 或扫码二维码
十二、Windows 使用 WireGuard
1. 下载客户端
官网下载:
https://www.wireguard.com/install/
2. 导入配置
打开 WireGuard:
Import tunnel(s) from file
导入:
xxx.conf
3. 激活 VPN
点击:
Activate
即可连接。
十三、WireGuard 工作原理
1. 公钥与私钥
每个客户端都有:
| 类型 | 作用 | | ----------- | -------- | | Private Key | 私钥,本地保存 | | Public Key | 公钥,服务器保存 |
原理类似 SSH。
2. 身份认证
连接时:
客户端使用私钥签名
服务器使用公钥验证
因此:
- 不需要用户名密码
- 不需要证书
- 更轻量
3. UDP 通信
WireGuard 默认使用 UDP。
原因:
- 延迟低
- 速度快
- 更适合 VPN
4. NAT 转发
服务器会执行:
客户端流量 → NAT → 公网IP
因此公网网站看到的是:
美国服务器 IP
十四、查看是否连接成功
访问:
如果显示:
- 美国 IP
- 阿里云 IP
说明 VPN 已成功。
十五、常用 Docker 命令
查看容器
docker ps
查看全部容器
docker ps -a
查看日志
docker logs wg-easy
停止容器
docker stop wg-easy
删除容器
docker rm wg-easy
重启容器
docker restart wg-easy
十六、常见问题
1. 网页打不开
检查:
- 阿里云安全组
- Ubuntu 防火墙
- Docker 是否启动
- 51821 是否开放
2. 容器不断 Restarting
通常是:
PASSWORD 已废弃
必须改用:
PASSWORD_HASH
3. VPN 能连接但无法上网
通常是:
IP Forward 未开启
或者:
- NAT 未配置
- 防火墙拦截
十七、性能优化(推荐)
开启 BBR
BBR 是 Google 提出的 TCP 拥塞控制算法。
作用:
- 提高传输速度
- 降低延迟
- 提高跨境网络体验
开启方式
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
验证:
sysctl net.ipv4.tcp_congestion_control
输出:
bbr
即可。
十八、安全建议
1. 不要暴露管理端口
建议后续:
- 配置 HTTPS
- 使用域名
- 配置反向代理
2. 定期备份
备份目录:
~/.wg-easy
里面保存:
- 配置
- 客户端
- 密钥
3. 不要用于违法用途
云厂商会:
- 封禁服务器
- 停机
- 冻结账号
十九、后续可扩展方向
后面还可以继续学习:
- Docker Compose
- Nginx
- HTTPS
- Cloudflare
- 内网穿透
- 分流规则
- 多用户管理
- 双栈 IPv6
- 自建 DNS
- OpenWRT 接入
二十、整体流程总结
购买美国服务器
↓
安装 Ubuntu
↓
安装 Docker
↓
部署 WG-Easy
↓
开放安全组
↓
浏览器访问后台
↓
创建客户端
↓
下载配置文件
↓
WireGuard 导入配置
↓
连接 VPN
二十一、核心知识总结
真正需要理解的核心只有三件事:
1. VPN 本质
本质是:
加密隧道 + 流量转发
2. Docker 本质
本质是:
轻量级容器运行环境
WG-Easy 实际运行在 Docker 容器中。
3. WireGuard 本质
本质是:
基于公钥加密的 UDP VPN
通过:
- 公钥
- 私钥
- NAT 转发
- Linux 路由
实现 VPN 通信。