博客 / 詳情

返回

# Wireguard服務器管理工具之 zzxia-wireguard-manage

你知道的,Wireguard服務器是沒有圖形界面管理工具的,默認只能在命令行編輯配置文件進行添加刪除用户,更沒有其他高級功能了,這非常不方便,然後就自己開發了這個工具,已經用了好多年了,現在推薦給大家:zzxia-wireguard-manage,項目地址是:https://gitee.com/zhf_sy/zzxia-wg-manage

[toc]

1 介紹

wireguard 服務器管理工具。提供服務器配置、重啓、警報、報表等功能;提供用户的列出、添加、刪除、導出配置、二維碼分享等功能

1.1 功能:

  1. 配置服務器
  2. 列出賬號
  3. 添加刪除賬號
  4. 導出用户配置文本,也可以二維碼分享
  5. 重啓
  6. 顯示用户在線狀態
  7. 用户登錄發送釘釘消息
  8. 用户離線發送釘釘消息
  9. 每天生成用户報告
  10. 總報告

1.2 喜歡她,就滿足她:

  1. 【Star】她,讓她看到你是愛她的;
  2. 【Watching】她,時刻感知她的動態;
  3. 【Fork】她,為她增加新功能,修Bug,讓她更加卡哇伊;
  4. 【Issue】她,告訴她有哪些小脾氣,她會改的,手動小綿羊;
  5. 【打賞】她,為她買jk;
    <img src="http://pic-bed.zzxia.vip/pic1/20210429155627295.jpg" alt="打賞" style="zoom:50%;" />

2 軟件架構

Linux shell

3 安裝教程

  • 克隆下來即可
  • wireguard服務器的安裝方法請參考官網

4 使用説明

請使用-h|--help參數運行sh腳本即可看到使用幫助

4.1 創建修改環境變量文件

基於env.sh.sample創建環境變量文件env.sh,並根據自己的環境修改它:

$ cat env.sh 
#!/bin/bash

## ----- 一般不需要修改 -----
# server env
SERVER_CONF_FILE_PATH="/etc/wireguard"             #--- wireguard服務器配置文件路徑
WG_IF='wg0'                                        #--- wireguard服務器網卡
IP_PREFIX='172.30.0'                               #--- wireguard服務器網絡地址前3節
IP_NETMASK='24'                                    #--- wireguard服務器IP掩碼
# run
SERVER_CONF_FILE="${SERVER_CONF_FILE_PATH}/${WG_IF}.conf"
SERVER_PRIVATE_KEY="${SERVER_CONF_FILE_PATH}/private.key"
TODAY_WG_USER_LATEST_LOGIN_FILE="/tmp/wg-user-first-login-today.txt"

## ----- 一般需要修改 -----
# 釘釘
export DINGDING_API_URL_FOR_LOGIN="https://oapi.dingtalk.com/robot/send?access_token=填上你的token在這裏"      #-- 用來發送釘釘消息
# server env
SERVER_CONNECT_INFO='服務器IP或域名:端口如51820'            #--- wireguard服務器用以接受用户連接的IP或域名及端口,用來生成用户的wg配置文件
# user env
USER_DNSs='192.168.11.3,192.168.11.4'                       #--- 用户的DNS,用來設置用户的DNS
USER_ALOWED_IPs="${IP_PREFIX}.0/${IP_NETMASK},0.0.0.0/0"    #--- 用户端走Wireguard鏈路的網絡地址範圍(用來設置用户端路由)

4.2 服務器設置

運行0-init-setup.sh用於第一次配置服務器:

# ./0-init-setup.sh

4.3 服務器管理

# ./wg-manage.sh -h

    用途:用於wireguard的用户管理
    依賴:./env.sh
          qrencode
    注意:
    用法:
        ./wg-manage.sh  [-h|--help]
        ./wg-manage.sh  [-l|--list]
        ./wg-manage.sh  [-a|--add {用户名}]  <{IP第4段}>
        ./wg-manage.sh  [-r|--rm|-o|--output-config  {用户名}]
        ./wg-manage.sh  [-R|--reload]
        ./wg-manage.sh  [-s|--status]
    參數説明:
        \$0   : 代表腳本本身
        []   : 代表是必選項
        <>   : 代表是可選項
        |    : 代表左右選其一
        {}   : 代表參數值,請替換為具體參數值
        %    : 代表通配符,非精確值,可以被包含
        #
        -h|--help      此幫助
        -l|--list      列出現有用户
        -a|--add       添加用户
        -r|--rm        刪除用户
        -o|--output-config 輸出用户配置文件
        -R|--reload    重啓服務器
        -s|--status    服務器狀態
    示例:
        #
        ./wg-manage.sh  -l              #--- 列出用户清單
        #
        ./wg-manage.sh  -a 豬豬俠 11    #--- 添加用户【豬豬俠】,IP地址尾號為【11】
        ./wg-manage.sh  -a 豬豬俠       #--- 添加用户【豬豬俠】,IP地址尾號自動分配
        #
        ./wg-manage.sh  -r 豬豬俠       #--- 刪除用户【豬豬俠】
        #
        ./wg-manage.sh  -o 豬豬俠       #--- 輸出用户【豬豬俠】的配置文件
        #
        ./wg-manage.sh  -R              #--- 重啓服務器
        #
        ./wg-manage.sh  -s              #--- 查看服務器狀態

4.3 用户登錄警報級用户登錄報告(可選)

添加計劃任務:

# ./1-add-crontab.sh

查看報告:

# cat ./report/wg-report.list
+------------+----------+---------+---------+----------+-------------+----------------+
|日期        |用户名    |總流浪MiB|IN流量MiB|OUT流量MiB|IP           |遠程IP          |
+------------+----------+---------+---------+----------+-------------+----------------+
|2021-07-19  |HB清      |.3       |.1       |.2        |172.30.5.23  |113.111.63.250  |
|2021-07-19  |HB穎      |28.9     |3.4      |25.5      |172.30.5.31  |113.111.63.250  |
|2021-07-20  |HB宇      |45.3     |8.3      |37.0      |172.30.5.22  |113.111.63.250  |
|2021-07-20  |HB華      |708.9    |101.6    |607.3     |172.30.5.23  |113.111.63.250  |
+------------+----------+---------+---------+----------+-------------+----------------+

警報需要釘釘API,方法是建立釘釘羣,然後添加一個釘釘機器人,然後把得到的api url寫入到env.sh即可。

測試警報:

# ./wg-login-alert-cron.sh

5 總結

真的好好用!

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.