你知道的,Wireguard服務器是沒有圖形界面管理工具的,默認只能在命令行編輯配置文件進行添加刪除用户,更沒有其他高級功能了,這非常不方便,然後就自己開發了這個工具,已經用了好多年了,現在推薦給大家:zzxia-wireguard-manage,項目地址是:https://gitee.com/zhf_sy/zzxia-wg-manage。
[toc]
1 介紹
wireguard 服務器管理工具。提供服務器配置、重啓、警報、報表等功能;提供用户的列出、添加、刪除、導出配置、二維碼分享等功能
1.1 功能:
- 配置服務器
- 列出賬號
- 添加刪除賬號
- 導出用户配置文本,也可以二維碼分享
- 重啓
- 顯示用户在線狀態
- 用户登錄發送釘釘消息
- 用户離線發送釘釘消息
- 每天生成用户報告
- 總報告
1.2 喜歡她,就滿足她:
- 【Star】她,讓她看到你是愛她的;
- 【Watching】她,時刻感知她的動態;
- 【Fork】她,為她增加新功能,修Bug,讓她更加卡哇伊;
- 【Issue】她,告訴她有哪些小脾氣,她會改的,手動小綿羊;
- 【打賞】她,為她買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 總結
真的好好用!