Sunny
发布于 2024-03-19 / 18 阅读
0

Docker部署wg-easy面板、wireguard可视化管理

Docker部署wg-easy面板、wireguard可视化管理

1、启动依赖的网络模块

modprobe ip_tables && modprobe iptable-nat

需要开机启动,需要将命令写入rc.local

2、命令行启动容器

docker run -d \
  --name=wg-easy \
  -e WG_HOST=YOUR_SERVER_IP \
  -e PASSWORD=YOUR_ADMIN_PASSWOR \
  -e WG_DEFAULT_ADDRESS=10.0.0.x \
  -e WG_DEFAULT_DNS=114.114.114.114 \
  -e WG_PERSISTENT_KEEPALIVE=30 \
  -e WG_ALLOWED_IPS=10.0.0.0/24 \
  -v ~/.wg-easy:/etc/wireguard \
  -p 51820:51820/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=always \
  weejewel/wg-easy

代码注释

这段代码是一个 docker run 命令,用于在 Docker 容器中运行一个名为 wg-easy 的服务,该服务通常用于简化 WireGuard VPN 的配置和管理。以下是对这段代码的详细分析:

docker run -d:
使用 docker run 命令来启动一个新的容器。
-d 参数表示在后台(即守护进程模式)运行容器。
--name=wg-easy:
为新容器指定一个名称,即 wg-easy。
环境变量设置:
这些环境变量用于配置 wg-easy 服务。
-e WG_HOST=YOUR_SERVER_IP: 设置 WireGuard 服务器的 IP 地址。你需要将 YOUR_SERVER_IP 替换为你的服务器 IP 地址。
-e PASSWORD=YOUR_ADMIN_PASSWOR: 设置 WireGuard 的密码。请确保将 YOUR_ADMIN_PASSWOR 替换为实际密码,并确保密码足够复杂以增强安全性。
-e WG_DEFAULT_ADDRESS=10.0.0.x: 设置客户端的默认 IP 地址。这里的 x 需要替换为一个有效的 IP 地址的最后一段,确保它不与你的网络中的其他设备冲突。
-e WG_DEFAULT_DNS=114.114.114.114: 设置默认的 DNS 服务器地址。
-e WG_PERSISTENT_KEEPALIVE=30: 设置持久的 keepalive 时间间隔(单位:秒)。
-e WG_ALLOWED_IPS=10.0.0.0/24: 设置允许的 IP 地址范围。
卷映射:
-v ~/.wg-easy:/etc/wireguard: 将宿主机上的 ~/.wg-easy 目录映射到容器内的 /etc/wireguard 目录。这通常用于持久化存储配置和密钥。
端口映射:
-p 51820:51820/udp: 将宿主机的 UDP 51820 端口映射到容器的 UDP 51820 端口。这是 WireGuard VPN 的默认端口。
-p 51821:51821/tcp: 将宿主机的 TCP 51821 端口映射到容器的 TCP 51821 端口。这通常用于其他服务或管理功能。
能力添加:
--cap-add=NET_ADMIN: 为容器添加 NET_ADMIN 能力,允许容器管理网络配置。
--cap-add=SYS_MODULE: 为容器添加 SYS_MODULE 能力,允许容器加载和卸载内核模块。
系统控制参数设置:
--sysctl="net.ipv4.conf.all.src_valid_mark=1": 设置系统控制参数,可能与 IP 地址标记相关。
--sysctl="net.ipv4.ip_forward=1": 启用 IPv4 转发。
重启策略:
--restart=always: 设置容器的重启策略为始终重启。即使容器退出,Docker 也会尝试自动重新启动它。
镜像名称:
weejewel/wg-easy: 这是容器的镜像名称。它表示从 Docker Hub 或其他容器仓库中拉取 weejewel 用户的 wg-easy 镜像。
请注意,你需要替换上述命令中的 YOUR_SERVER_IP 和 YOUR_ADMIN_PASSWOR 为实际的值,并根据你的网络环境和安全需求调整其他参数。在正式使用前,务必确保所有设置都是正确的,并考虑到安全性因素。

参考链接:

WireGuard: fast, modern, secure VPN tunnel

GitHub - WeeJeWel/wg-easy: The easiest way to run WireGuard VPN + Web-based Admin UI.