**操作系统:Debian 12 运行环境:Docker
一. 安装Docker
curl -sSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
sudo systemctl enable docker && sudo systemctl start docker
如已安装可略过,如未安装,自行查阅;
二.生成密码
# 运行临时容器生成密码哈希
docker run --rm -it ghcr.io/wg-easy/wg-easy wgpw '你的密码'
例如,设置密码为 password123:
docker run --rm -it ghcr.io/wg-easy/wg-easy wgpw 'password123'
命令会输出类似这样的哈希值:
**PASSWORD_HASH=’$2a
复制 PASSWORD_HASH 后面的哈希值(不包括引号),后续配置容器时会用到。
三.wg-easy容器创建
docker run –detach \ # 在后台运行容器
–name wg-easy \ # 设置容器名为 “wg-easy”
–env LANG=chs \ # 设置语言环境为中文
–env WG_HOST= example.xx \ # 设置 WireGuard 服务器地址(域名或IP),客户端将连接到此地址
–env PASSWORD_HASH=’新生成的哈希值’ \ # 设置 Web 管理界面登录密码的哈希值
–env PORT=51821 \ # 设置 Web 管理界面访问端口
–env WG_PORT=51820 \ # 设置 WireGuard VPN 服务端口
–volume ~/.wg-easy:/etc/wireguard \ # 将主机目录映射到容器,用于持久化存储 WireGuard 配置
–publish 51820:51820/udp \ # 将容器 UDP 51820 端口映射到主机,用于 VPN 数据传输
–publish 51821:51821/tcp \ # 将容器 TCP 51821 端口映射到主机,用于 Web 管理界面访问
–cap-add NET_ADMIN \ # 添加网络管理权限,允许配置网络接口
–cap-add SYS_MODULE \ # 添加系统模块权限,允许加载内核模块
–sysctl ‘net.ipv4.conf.all.src_valid_mark=1’ \ # 设置内核参数,允许数据包源地址验证
–sysctl ‘net.ipv4.ip_forward=1’ \ # 启用 IPv4 数据包转发,允许 VPN 流量路由
–restart unless-stopped \ # 设置容器自动重启策略(除非手动停止)
ghcr.io/wg-easy/wg-easy # 使用的 Docker 镜像名称
==下面是代码==
docker run -d \
--name wg-easy \
-e LANG=chs \
-e WG_HOST=修改成域名 \
-e PASSWORD_HASH='修改成密钥' \
-e PORT=51821 \
-e WG_PORT=51822 \
-v ~/.wg-easy:/etc/wireguard \
-p 51822:51822/udp \
-p 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:
-
如果是域名:
example.xx(确保DNS解析正确) -
如果是固定IP:
123.45.67.89(替换为你的公网IP)
-
-
PASSWORD_HASH: 需要先用
docker run --rm -it ghcr.io/wg-easy/wg-easy wgpw '你的密码'生成 -
端口映射:
-
51820/udp: WireGuard VPN 通信端口(必须在防火墙开放)
-
51821/tcp: Web 管理界面端口(建议配置SSL证书)
-
-
volume映射:
~/.wg-easy目录保存所有VPN配置,重置容器时数据不会丢失
四. 访问管理界面
启动容器后,打开浏览器,访问以下地址: *在这之前需要开启端口映射
**http://<服务器地址>:51821

五.生成配置
在管理界面中,创建 WireGuard 客户端,下载 .conf 配置文件并导入到客户端。或者扫描二维码添加
