Skip to content

wireguard VPN 服务器管理工具。提供服务器配置、重启、警报、报表等功能;提供用户的列出、添加、删除、导出配置、二维码分享等功能

License

Notifications You must be signed in to change notification settings

kevinzu007/zzxia-wireguard-manage

Repository files navigation

zzxia-wireguard-manage

1 介绍

wireguard VPN 服务器管理工具。提供服务器配置、重启、警报、报表等功能;提供用户的列出、添加、删除、导出配置、二维码分享等功能

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;

打赏

2 软件架构

Linux shell

3 安装教程

  • 克隆下来即可
  • wireguard服务器的安装方法请参考官网https://www.wireguard.com/install/

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"    #--- 用户端走VPN链路的网络地址范围(用来设置用户端路由)

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 参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

6 特技

  1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
  2. Gitee 官方博客 blog.gitee.com
  3. 你可以 https://gitee.com/explore 这个地址来了解 Gitee 上的优秀开源项目
  4. GVP 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
  5. Gitee 官方提供的使用手册 https://gitee.com/help
  6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 https://gitee.com/gitee-stars/

About

wireguard VPN 服务器管理工具。提供服务器配置、重启、警报、报表等功能;提供用户的列出、添加、删除、导出配置、二维码分享等功能

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages