WG-Easy:基于 Docker 和 Web 面板的异地组网
本教程将指导您使用 WireGuard Easy在具有公网 IP 的云服务器上搭建一个基于 Docker 的 WireGuard VPN 服务。通过此服务,不同设备可以通过该云服务器加入同一个虚拟内网,实现异地组网。项目提供了一个简单的 Web 管理界面,方便管理和配置。
准备工作
系统环境
- 一台具有公网 IP 的云服务器(推荐 Ubuntu 20.04 或更高版本)。
- 安装了 Docker 和 Docker Compose。
工具安装
-
更新系统:
sudo apt update && sudo apt upgrade -y
-
安装 Docker:
curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh
-
验证安装:
docker --version
生成 bcrypt 哈希
以下是关于生成 bcrypt 哈希值(用于设置 Web 管理面板的登录密码)的正确教程及注意事项,参考了 wg-password (wgpw) 工具的官方说明。
使用 Docker 生成哈希:
运行以下命令执行(执行完毕自动销毁),替换 YOUR_PASSWORD
为您想设置的密码:
docker run --rm -it ghcr.io/wg-easy/wg-easy wgpw YOUR_PASSWORD
示例:
如果密码为 mypassword123
,运行:
docker run --rm -it ghcr.io/wg-easy/wg-easy wgpw wgpw mypassword123
输出结果:
PASSWORD_HASH='$2b$12$coPqCsPtcFO.Ab99xylBNOW4.Iu7OOA2/ZIboHN6/oyxca3MWo7fW'
拉取并运行 WireGuard Easy
使用以下命令启动 WireGuard Easy:
docker run --detach
--name wg-easy
--env WG_HOST=<你的服务器公网 IP 或域名>
--env PASSWORD_HASH='<管理员密码的 bcrypt 哈希>'
--env WG_PORT=51820
--env PORT=51821
--volume ~/.wg-easy:/etc/wireguard
--publish 51820:51820/udp
--publish 51821:51821/tcp
--cap-add NET_ADMIN
--cap-add SYS_MODULE
--sysctl 'net.ipv4.conf.all.src_valid_mark=1'
--sysctl 'net.ipv4.ip_forward=1'
--restart unless-stopped
ghcr.io/wg-easy/wg-easy
WG_HOST
:设置为云服务器的公网 IP 或动态域名。PASSWORD_HASH
:设置管理员 Web 面板登录密码的 bcrypt 哈希值(详见生成 bcrypt 哈希部分)。PORT