• 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

    [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

    这样在手机上就直接可以使用了,美中不足的就是不能在客户端配置页面上看到客户端的连接状态、网速以及多租户认证,所以说还是个半成品吧,不过在客户端配置文件管理这方面还是挺有用的。有兴趣的可以试试了。

    参考资料

    WireGuard VPN Management Web Ui-LMLPHP

    WireGuard VPN Management Web Ui-LMLPHP

    你可能还喜欢

    WireGuard VPN Management Web Ui-LMLPHP


    本文分享自微信公众号 - 云原生生态圈(CloudNativeEcoSystem)。
    如有侵权,请联系 [email protected] 删除。
    本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

    03-10 02:14