前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WireGuard VPN Management Web Ui

WireGuard VPN Management Web Ui

作者头像
公众号: 云原生生态圈
发布2021-01-13 15:26:17
7.9K0
发布2021-01-13 15:26:17
举报
文章被收录于专栏:云原生生态圈云原生生态圈

之前写了一篇文章,介绍除了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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生生态圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考资料
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档