version: '3'
services:
wg:
image: ngoduykhanh/wireguard-ui:latest
container_name: wgui
ports:
- 5000:5000
logging:
driver: json-file
options:
max-size: 50m
volumes:
- ./db:/app/db
- /etc/wireguard:/etc/wireguard
上面是运行wireguard-ui
服务的docker-compose文件,直接运行起来,如果是在云上,需要在安全组中开放5000端口以及wireguard的udp
51820端口
在wireguard-ui
服务的页面上创建客户端,其实会直接通过模板格式同步到wg的配置文件中,因此需要实时的监听wg配置文件的变化,然后重启wg服务,实现客户端配置的实时变化
. 在linux中监听配置文件变化的任务,可以交给systemd
创建wgui.service
重启wg, 路径为: /etc/systemd/system/wgui.service
[Unit]
Description=Restart WireGuard
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl restart [email protected]
创建/etc/systemd/system/wgui.path
[Unit]
Description=Watch /etc/wireguard/wg0.conf for changes
[Path]
PathModified=/etc/wireguard/wg0.conf
[Install]
WantedBy=multi-user.target
然后设置开机自启
systemctl enable wgui.{path,service}
systemctl start wgui.{path,service}
这样就可以访问一下wg的客户端管理页面,创建几个看看
此时就可以查看一下服务端的配置
[Interface]
Address = 172.16.10.1/24
ListenPort = 51820
PrivateKey = gK2Hf/pT8uy12122222222X9M2ohPPqm0qPX4=
MTU = 1450
PostUp =
PostDown =
# ID: bvtf747rig3jiel9bosg
# Name: 手机
# Email: [email protected]
# Created at: 2021-01-10 12:31:12.902873505 +0000 UTC
# Update at: 2021-01-10 12:45:39.610815627 +0000 UTC
[Peer]
PublicKey = bExsbSAvIJiuyxoqz/6Qv6NUl8lTxVqB+09O2sBvDIg0=
PresharedKey = XK3CIu92RFzqz/6Qv6RFzqz/NUl8lTxVKsalUNsdaMt8GOmfs=
AllowedIPs = 172.16.10.2/32
# ID: bvtfk7vrig3jiel9bot0
# Name: window
# Email: [email protected]
# Created at: 2021-01-10 12:59:11.674415192 +0000 UTC
# Update at: 2021-01-10 12:59:11.674415192 +0000 UTC
[Peer]
PublicKey = bSUyOFFbF4AFORFzqz/QgrGTSl8qP0yzyRws=
PresharedKey = 3/3JwNpBaZtU4LI6Gg6ShII/KdOJsRFzqz/s90q0=
AllowedIPs = 172.16.10.3/32
这样在手机上就直接可以使用了,美中不足的就是不能在客户端配置页面上看到客户端的连接状态、网速以及多租户认证,所以说还是个半成品吧,不过在客户端配置文件管理这方面还是挺有用的。有兴趣的可以试试了。
参考资料
你可能还喜欢
本文分享自微信公众号 - 云原生生态圈(CloudNativeEcoSystem)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。