使用wg-easy docker compose设置WireGuard服务器
必须知道的事情
PASSWORD_HASH
PASSWORD_HASH=$$2a$$12$$31H.ZEl74tEF98shuIWWxe2PTsljr3vEMRfU7HL8dPvNJTImcUgRq 这是密码为123456的哈希值,参见 How_to_generate_an_bcrypt_hash.md 来了解如何获取这个哈希值,当你登录到wg-easy配置web界面时,123456将是你的密码。但现在的方法有一点问题,所以可以用以下命令代替:
sudo docker run -it ghcr.io/wg-easy/wg-easy /app/wgpw.sh 123456
如果上述命令的输出是: PASSWORD_HASH='$2a$12$31H.ZEl74tEF98shuIWWxe2PTsljr3vEMRfU7HL8dPvNJTImcUgRq' 因为我们使用的是docker compose yaml文件,需要将每个$符号替换为两个$$符号。所以在yaml中的PASSWORD_HASH应为: PASSWORD_HASH=$$2a$$12$$31H.ZEl74tEF98shuIWWxe2PTsljr3vEMRfU7HL8dPvNJTImcUgRq 记得用一个更强的密码替换简单的123456。
关于我们使用的IP和IP范围的注释:
- 192.168.0.1 主机网络网关,请改为你的主机网络网关。
- 192.168.0.0/24 主机网络IP范围,请同样改为你的主机网络IP范围。
- 10.8.0.x 你的虚拟网络IP范围,除非你偏好其他的IP范围,否则不需要更改。
- 10.8.0.0/24 由 10.8.0.x 设定的虚拟网络IP范围。
Docker compose 文件
services:
wg-easy:
container_name: wg–easy
image: ghcr.io/wg–easy/wg–easy
network_mode: bridge
environment:
– LANG=chs # or en, de …
– WG_HOST=stepchen.tpddns.cn
– WG_DEFAULT_DNS=192.168.0.1,114.114.114.114,8.8.8.8,8.8.4.4
– PORT=7000
– WG_DEFAULT_ADDRESS=10.8.0.x
– WG_PORT=7001
– WG_PRE_UP = iptables –t nat –F; iptables –F; # Flush all rules
– WG_POST_UP=iptables –A FORWARD –i %i –j ACCEPT; iptables –A FORWARD –o %i –j ACCEPT; iptables –t nat –A POSTROUTING –o eth0 –j MASQUERADE
– WG_POST_DOWN=iptables –D FORWARD –i %i –j ACCEPT; iptables –D FORWARD –o %i –j ACCEPT; iptables –t nat –D POSTROUTING –o eth0 –j MASQUERADE
– WG_ALLOWED_IPS=114.114.114.114,8.8.8.8,8.8.4.4,192.168.0.0/24,10.8.0.0/24
– PASSWORD_HASH=$$2a$$12$$31H.ZEl74tEF98shuIWWxe2PTsljr3vEMRfU7HL8dPvNJTImcUgRq
– UI_TRAFFIC_STATS=true
– UI_CHART_TYPE=3 # (0 Charts disabled, 1 # Line chart, 2 # Area chart, 3 # Bar chart)
# – WG_ENABLE_ONE_TIME_LINKS=true
– UI_ENABLE_SORT_CLIENTS=true
# – WG_ENABLE_EXPIRES_TIME=true
volumes:
– /mnt/appdata/wgeasy:/etc/wireguard
ports:
– 7000:7000/tcp
– 7001:7001/udp
cap_add:
– NET_ADMIN
– SYS_MODULE
sysctls:
– net.ipv4.conf.all.src_valid_mark=1
– net.ipv4.ip_forward=1
restart: unless–stopped
启动docker容器后,你可以通过 http://<your_public_ip>:7000 并使用你在 PASSWORD_HASH 中设置的密码来访问服务器的web界面。
设置WireGuard客户端
安装WireGuard客户端
sudo apt update
sudo apt install wireguard
从服务器创建客户端并获取配置文件
访问服务器的web界面并创建一个新的客户端,然后下载客户端配置文件到客户端。然后将配置文件移动到/etc/wireguard/目录下。比如你从服务器下载的配置文件名为stepchen-pc.conf位于/home/stepchen/Downloads/:
sudo mv /home/stepchen/Downloads/stepchen-pc.conf /etc/wireguard/wg0.conf
注意:文件名wg0.conf意味着wg0将是在客户端启动WireGuard连接的名字。
WireGuard的命令
# Start the connection
sudo wg-quick up wg0
# Stop the connection
sudo wg-quick down wg0
# Show current connection
sudo wg show
将连接作为服务添加到客户端机器中
# Create the system service and start it immediately
sudo systemctl enable –now wg-quick@wg0
# Remove the system service and stop it immediately
sudo systemctl disable –now wg-quick@wg0
评论前必须登录!
注册