WireGuard VPN Management Web Ui

2021-01-13 15:26:17 浏览数 (1)

之前写了一篇文章,介绍除了Openvpn之外的另外一个简单的组网软件wireguard.配置相当简单,有兴趣的可以通过下面的链接看一下:

使用wireguard进行组网很简单,但是生成公私钥以及更便捷的方式管理wireguard客户端的配置文件成为一件繁琐的事情,我想这也是大多数人现在不愿意使用wireguard的原因吧,最近在github上看到一个基于WEB的wireguard-ui服务,Github地址: wireguard-ui[1]这里简单的说一下功能特点:

  • 基于web页面管理
  • 简单的认证方式admin/admin
  • 管理客户端信息,但是用起来发现还是一个半成品
  • 不过可以生成二维码以及配置文件,方便快速的在客户端导入配置
代码语言:javascript复制
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的udp51820端口

wireguard-ui服务的页面上创建客户端,其实会直接通过模板格式同步到wg的配置文件中,因此需要实时的监听wg配置文件的变化,然后重启wg服务,实现客户端配置的实时变化. 在linux中监听配置文件变化的任务,可以交给systemd

创建wgui.service重启wg, 路径为: /etc/systemd/system/wgui.service

代码语言:javascript复制
[Unit]
Description=Restart WireGuard
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl restart wg-quick@wg0.service

创建/etc/systemd/system/wgui.path

代码语言:javascript复制
[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

0 人点赞