Docker 安装 WireGuard 服务端
虽然手动操作略显复杂,但有助于掌握整体配置流程
使用场景推荐:
推荐使用 Docker 安装 WireGuard:
- 如果你希望在多个服务之间进行隔离,或快速部署和管理多个 虚拟局域网 实例,Docker 是一个不错的选择。
- 适合于实验、开发或轻量级生产环境中使用 Docker 来简化 WireGuard 的管理。
不推荐使用 Docker 安装 WireGuard:
- 如果你对性能有较高的要求,或需要非常灵活的网络控制(例如复杂的路由或 NAT 配置),建议直接在主机上安装 WireGuard,而非通过 Docker。
- 对于新手或不熟悉 Docker 网络配置的人,直接在主机上安装 WireGuard 可能更简单。
Docker 安装 WireGuard
获取 Docker 镜像:
使用官方的 WireGuard Docker 镜像或社区提供的镜像:
docker pull linuxserver/wireguard
运行容器:
配置好 虚拟局域网 网络(如端口、IP 地址等)并启动容器:
docker run -d \
--name=wireguard \
--restart unless-stopped \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-e SERVERURL=<你的公网IP或域名> \
-e SERVERPORT=51820 \
-e PEERS=20 \
-e PEERDNS=8.8.8.8 \
-e INTERNAL_SUBNET=10.2.0.0/24 \
-e ALLOWEDIPS=10.2.0.0/24 \
-p 51820:51820/udp \
-v /opt/wireguard/config:/config \
--sysctl="net.ipv4.ip_forward=1" \
linuxserver/wireguard
注意
生成的客户端配置
[Interface]
Address = 10.2.0.2
PrivateKey = QLnbLECZM8vjxLkw3wsA2LNWBDEF9WS9Up7e7XnC+3w=
ListenPort = 51820
DNS = 8.8.8.8
[Peer]
PublicKey = iTzdJg0jGwne2zzba1NAFXrUbfLBLb4Y677XTgiRElg=
PresharedKey = eYnbtDFD9Gb4m7vhOyDujlFj/KXyK+ag3CgNFvHMO2k=
Endpoint = <你的公网IP或域名>:51820
AllowedIPs = 10.2.0.0/24
生成配置中可能缺少 /32,需要加上
生成的配置缺少 心跳保活机制的时间,需要加上
[Interface]
Address = 10.2.0.2/32 # 这里加上/32
PrivateKey = QLnbLECZM8vjxLkw3wsA2LNWBDEF9WS9Up7e7XnC+3w=
ListenPort = 51820
DNS = 8.8.8.8
[Peer]
PublicKey = iTzdJg0jGwne2zzba1NAFXrUbfLBLb4Y677XTgiRElg=
PresharedKey = eYnbtDFD9Gb4m7vhOyDujlFj/KXyK+ag3CgNFvHMO2k=
Endpoint = <你的公网IP或域名>:51820
AllowedIPs = 10.2.0.0/24
PersistentKeepalive = 25 # 心跳保活机制的时间
如果想自定义生成的静态地址,需要手动进入容器修改 vi /etc/wireguard/wg0.conf
docker exec -it wireguard /bin/bash
vi /etc/wireguard/wg0.conf
exit
docker restart wireguard
docker rm -f wireguard
[Interface]
Address = 10.2.0.1
ListenPort = 51820
PrivateKey = gL/euimFOm25l+B33prZlWDkqIggweKrS2FJY4z+UFs=
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth+ -j MASQUERADE
[Peer]
# peer1
PublicKey = gG3XUavlH8jATzsHuwMxEMPNazOlCKp5FjfAt4GcWxY=
PresharedKey = eYnbtDFD9Gb4m7vhOyDujlFj/KXyK+ag3CgNFvHMO2k=
AllowedIPs = 10.2.0.2/32
[Peer]
# peer2
PublicKey = hTL5qcOQK9AP9eK+wLlDix2oQOCFiWjpc7mipyKdj1Q=
PresharedKey = 7XD4pE9SecOS5nfDQB0tlEdKogksOPCIUBVQfRndv0c=
AllowedIPs = 10.2.0.3/32
[Peer]
# peer3
PublicKey = TB4YtHLemTPzoK2dALdKmGg4hIl/76RBOU4BDXRinTc=
PresharedKey = R3kOr2ahJPCxeqwYhVP3CtHRkTIgo5TcfnvirUzS3w8=
AllowedIPs = 10.2.0.4/32
增加对等点
可以通过 Docker 重新启动容器时指定新的 PEERS 环境变量值来添加多个对等点。
例如,如果之前是 PEERS=20,想再添加一个对等点,直接将其增加到 PEERS=50。
步骤如下:
停止并移除当前容器(这一步不会影响 config 文件中的已有对等点信息):
docker rm -f wireguard
重新启动容器,增加 PEERS 数量(如从 20 增加到 50):
docker run -d \
--name=wireguard \
--restart unless-stopped \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-e SERVERURL=<公网IP> \
-e SERVERPORT=51820 \
-e PEERS=50 \ # 更新此值
-e PEERDNS=8.8.8.8 \
-e INTERNAL_SUBNET=10.2.0.0/24 \
-e ALLOWEDIPS=10.2.0.0/24 \
-p 51820:51820/udp \
-v /opt/wireguard/config:/config \
--sysctl="net.ipv4.ip_forward=1" \
linuxserver/wireguard
增加后的对等点信息文件会自动生成在 /opt/wireguard_wcq/config 目录中,新对等点可以直接使用生成的配置文件加入网络。

浙公网安备 33010602011771号