本文最后更新于 2025年8月24日 下午
在众多 VPN 协议中,WireGuard 以其简洁、高效和现代的特性脱颖而出。它是一个新兴的开源 VPN 协议,旨在提供比传统协议(如 OpenVPN 和 IPsec)更简单、更快速、更安全的连接。WireGuard 的核心优势在于其极小的代码库,这使得它更容易审计、减少了潜在的漏洞,并显著提升了连接速度和性能。由于其出色的表现,WireGuard 已经成为许多开发者和企业构建安全、稳定网络连接的首选。
服务端
docker-compose.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| volumes: etc_wireguard:
services: wg-easy: environment: - LANG=chs - WG_HOST=1.1.1.1
- PASSWORD_HASH=$$2y$$10$$hBCoykrB95WSzuV4fafBzOHWKu9sbyVa34GJr8VV5R/pIelfEMYyG - WG_POST_UP=iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE; iptables -A INPUT -p udp -m udp --dport 51820 -j ACCEPT; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; - WG_POST_DOWN=iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE; iptables -D INPUT -p udp -m udp --dport 51820 -j ACCEPT; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; - WG_DEFAULT_ADDRESS=10.8.0.x - WG_DEFAULT_DNS=223.5.5.5 - WG_ALLOWED_IPS=10.8.0.0/24,192.168.6.0/24 - WG_PERSISTENT_KEEPALIVE=25 - PORT=51821 - WG_PORT=51820
image: ghcr.io/wg-easy/wg-easy:latest container_name: wg-easy volumes: - etc_wireguard:/etc/wireguard ports: - "51820:51820/udp" - "51821:51821/tcp" restart: unless-stopped cap_add: - NET_ADMIN - SYS_MODULE sysctls: - net.ipv4.ip_forward=1 - net.ipv4.conf.all.src_valid_mark=1
|
额外增加一个脚本,修改服务端内client的allowips
extra.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #!/bin/bash
CONTAINER_NAME="wg-easy"
docker exec $CONTAINER_NAME wg-quick down wg0
docker exec $CONTAINER_NAME sed -i "/^AllowedIPs = 10.8.0.3\/32$/s/$/\,192.168.6.0\/24/" /etc/wireguard/wg0.conf echo "容器内配置修改完成"
docker exec $CONTAINER_NAME wg-quick up wg0 echo "容器内 WireGuard 重启完成"
|
客户端
进入webui,添加客户端,下载配置文件导入即可