使用 wg-easy 实现 WireGuard 的 Web 可视化管理
https://github.com/wg-easy/wg-easy
https://wg-easy.github.io/wg-easy/latest/
wg-easy 是一个用于快速部署和管理 WireGuard 的轻量化 Web 管理工具。
启动
Docker 启动
docker run -d \
--name wg-easy \
-e INSECURE=true \
-e DISABLE_IPV6=true \
-v ~/.wg-easy:/etc/wireguard \
-v /lib/modules:/lib/modules:ro \
-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:15
管理面板设置
接口设置
修改 CIDR

IPv4 的 CIDR 默认是 10.8.0.0/24
可以修改为自己喜欢的,比如 10.2.0.0/24
网络设置
允许的IP:10.8.0.0/24
保活间隔:25
如果修改了 IPv4 的 CIDR,修改为对应的 10.2.0.0/24

环境变量
使用初始化环境变量启动,启动后直接登录用户,不需要初始化配置了。(保活间隔:25,还是需要手动配置)
docker run -d \
--name wg-easy \
--restart unless-stopped \
-e INSECURE=true \
-e DISABLE_IPV6=true \
-e INIT_ENABLED=true \
-e INIT_USERNAME=用户名 \
-e INIT_PASSWORD=密码 \
-e INIT_HOST=公网IP \
-e INIT_PORT=51820 \
-e INIT_DNS=1.1.1.1,8.8.8.8 \
-e INIT_IPV4_CIDR=10.8.0.0/24 \
-e INIT_IPV6_CIDR=2001:0DB8::/32 \
-e INIT_ALLOWED_IPS=10.8.0.0/24,2001:0DB8::/32 \
-v ~/.wg-easy:/etc/wireguard \
-v /lib/modules:/lib/modules:ro \
-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 \
ghcr.io/wg-easy/wg-easy:15
环境变量说明
参考:
运行时配置(每次启动生效)
| 环境变量 | 默认值 | 示例 | 说明 |
|---|---|---|---|
PORT |
51821 |
6789 |
Web UI 端口 |
HOST |
0.0.0.0 |
127.0.0.1 |
Web UI 监听地址 |
INSECURE |
false |
true |
是否允许 HTTP |
DISABLE_IPV6 |
false |
true |
是否关闭 IPv6 |
初始化相关(仅首次启动生效)
| 环境变量 | 示例 | 说明 | 分组 |
|---|---|---|---|
INIT_ENABLED |
true |
启用初始化配置 | 0 |
INIT_USERNAME |
admin |
管理员用户名 | 1 |
INIT_PASSWORD |
Se!ureP%ssw |
管理员密码 | 1 |
INIT_HOST |
xxx.example.com |
客户端连接地址(域名/IP) | 1 |
INIT_PORT |
51820 |
WireGuard 监听端口 | 1 |
INIT_DNS |
1.1.1.1,8.8.8.8 |
全局 DNS | 2 |
INIT_IPV4_CIDR |
192.168.100.0/24 |
IPv4 网段 | 3 |
INIT_IPV6_CIDR |
fd00::/64 |
IPv6 网段 | 3 |
INIT_ALLOWED_IPS |
0.0.0.0/0,::/0 |
客户端路由规则 | 4 |
如果变量在同一组中,则必须设置这个组的所有变量。例如,如果设置了变量 INIT_IPV4_CIDR,则还必须设置变量 INIT_IPV6_CIDR。
使用 Docker Compose
docker-compose.yml
services:
wg-easy:
image: ghcr.io/wg-easy/wg-easy:15
container_name: wg-easy
restart: unless-stopped
environment:
INSECURE: "true"
DISABLE_IPV6: "true"
INIT_ENABLED: "true"
INIT_USERNAME: "用户名"
INIT_PASSWORD: "密码"
INIT_HOST: "公网IP"
INIT_PORT: "51820"
INIT_IPV4_CIDR: "10.8.0.0/24"
INIT_IPV6_CIDR: "2001:0DB8::/32"
INIT_ALLOWED_IPS: "10.8.0.0/24,2001:0DB8::/32"
volumes:
- ~/.wg-easy:/etc/wireguard
- /lib/modules:/lib/modules:ro
ports:
- "51820:51820/udp"
- "51821:51821/tcp"
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
net.ipv4.ip_forward: "1"
net.ipv4.conf.all.src_valid_mark: "1"
启动:
docker compose up -d
停止:
docker compose down

浙公网安备 33010602011771号