你知道的,Wireguard服務(wù)器是沒有圖形界面管理工具的,默認(rèn)只能在命令行編輯配置文件進(jìn)行添加刪除用戶,更沒有其他高級功能了,這非常不方便,然后就自己開發(fā)了這個工具,已經(jīng)用了好多年了,現(xiàn)在推薦給大家:zzxia-wireguard-manage,項目地址是:https://gitee.com/zhf_sy/zzxia-wg-manage。
[toc]
1 介紹
wireguard 服務(wù)器管理工具。提供服務(wù)器配置、重啟、警報、報表等功能;提供用戶的列出、添加、刪除、導(dǎo)出配置、二維碼分享等功能
1.1 功能:
- 配置服務(wù)器
- 列出賬號
- 添加刪除賬號
- 導(dǎo)出用戶配置文本,也可以二維碼分享
- 重啟
- 顯示用戶在線狀態(tài)
- 用戶登錄發(fā)送釘釘消息
- 用戶離線發(fā)送釘釘消息
- 每天生成用戶報告
- 總報告
1.2 喜歡她,就滿足她:
- 【Star】她,讓她看到你是愛她的;
- 【W(wǎng)atching】她,時刻感知她的動態(tài);
- 【Fork】她,為她增加新功能,修Bug,讓她更加卡哇伊;
- 【Issue】她,告訴她有哪些小脾氣,她會改的,手動小綿羊;
- 【打賞】她,為她買jk;
<img src="http://pic-bed.zzxia.vip/pic1/20210429155627295.jpg" alt="打賞" style="zoom:50%;" />
2 軟件架構(gòu)
Linux shell
3 安裝教程
- 克隆下來即可
- wireguard服務(wù)器的安裝方法請參考官網(wǎng)
4 使用說明
請使用-h|--help參數(shù)運行sh腳本即可看到使用幫助
4.1 創(chuàng)建修改環(huán)境變量文件
基于env.sh.sample創(chuàng)建環(huán)境變量文件env.sh,并根據(jù)自己的環(huán)境修改它:
$ cat env.sh
#!/bin/bash
## ----- 一般不需要修改 -----
# server env
SERVER_CONF_FILE_PATH="/etc/wireguard" #--- wireguard服務(wù)器配置文件路徑
WG_IF='wg0' #--- wireguard服務(wù)器網(wǎng)卡
IP_PREFIX='172.30.0' #--- wireguard服務(wù)器網(wǎng)絡(luò)地址前3節(jié)
IP_NETMASK='24' #--- wireguard服務(wù)器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在這里" #-- 用來發(fā)送釘釘消息
# server env
SERVER_CONNECT_INFO='服務(wù)器IP或域名:端口如51820' #--- wireguard服務(wù)器用以接受用戶連接的IP或域名及端口,用來生成用戶的wg配置文件
# user env
USER_DNSs='192.168.11.3,192.168.11.4' #--- 用戶的DNS,用來設(shè)置用戶的DNS
USER_ALOWED_IPs="${IP_PREFIX}.0/${IP_NETMASK},0.0.0.0/0" #--- 用戶端走Wireguard鏈路的網(wǎng)絡(luò)地址范圍(用來設(shè)置用戶端路由)
4.2 服務(wù)器設(shè)置
運行0-init-setup.sh用于第一次配置服務(wù)器:
# ./0-init-setup.sh
4.3 服務(wù)器管理
# ./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]
參數(shù)說明:
\$0 : 代表腳本本身
[] : 代表是必選項
<> : 代表是可選項
| : 代表左右選其一
{} : 代表參數(shù)值,請?zhí)鎿Q為具體參數(shù)值
% : 代表通配符,非精確值,可以被包含
#
-h|--help 此幫助
-l|--list 列出現(xiàn)有用戶
-a|--add 添加用戶
-r|--rm 刪除用戶
-o|--output-config 輸出用戶配置文件
-R|--reload 重啟服務(wù)器
-s|--status 服務(wù)器狀態(tài)
示例:
#
./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 #--- 重啟服務(wù)器
#
./wg-manage.sh -s #--- 查看服務(wù)器狀態(tài)
4.3 用戶登錄警報級用戶登錄報告(可選)
添加計劃任務(wù):
# ./1-add-crontab.sh
查看報告:
# cat ./report/wg-report.list
+------------+----------+---------+---------+----------+-------------+----------------+
|日期 |用戶名 |總流浪MiB|IN流量MiB|OUT流量MiB|IP |遠(yuǎn)程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,方法是建立釘釘群,然后添加一個釘釘機(jī)器人,然后把得到的api url寫入到env.sh即可。
測試警報:
# ./wg-login-alert-cron.sh
5 總結(jié)
真的好好用!