之前写了一篇文章,介绍除了Openvpn之外的另外一个简单的组网软件wireguard
.配置相当简单,有兴趣的可以通过下面的链接看一下:
使用wireguard进行组网很简单,但是生成公私钥以及更便捷的方式管理wireguard客户端的配置文件成为一件繁琐的事情,我想这也是大多数人现在不愿意使用wireguard的原因吧,最近在github上看到一个基于WEB的wireguard-ui
服务,Github地址: wireguard-ui[1]这里简单的说一下功能特点:
- 基于web页面管理
- 简单的认证方式
admin/admin
- 管理客户端信息,但是用起来发现还是
一个半成品
- 不过可以生成二维码以及配置文件,方便快速的在客户端导入配置
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 wg-quick@wg0.service
创建/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
然后设置开机自启
代码语言:javascript复制systemctl enable wgui.{path,service}
systemctl start wgui.{path,service}
这样就可以访问一下wg的客户端管理页面,创建几个看看
wireguard-ui 登录
已创建的客户端
这里注意,创建好客户端之后,需要点击右上角的
Apply Config
同步配置到/etc/wireguard/wg1.conf
此时就可以查看一下服务端的配置
代码语言:javascript复制[Interface]
Address = 172.16.10.1/24
ListenPort = 51820
PrivateKey = gK2Hf/pT8uy12122222222X9M2ohPPqm0qPX4=
MTU = 1450
PostUp =
PostDown =
# ID: bvtf747rig3jiel9bosg
# Name: 手机
# Email: phone@devopsman.cn
# 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: window@devopsman.cn
# 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
查看客户端连接状态
这样在手机上就直接可以使用了,美中不足的就是不能在客户端配置页面上看到客户端的连接状态、网速以及多租户认证,所以说还是个半成品吧,不过在客户端配置文件管理这方面还是挺有用的。有兴趣的可以试试了。
参考资料
[1]
wireguard-ui: https://github.com/ngoduykhanh/wireguard-ui