在使用 wgcf 创建的 WireGuard VPN 接口的情况下,你可能想要监控的是 VPS 流量而不仅仅是默认的物理网络接口(如 ens5)。WireGuard 通常会创建一个名为 wg0 或类似的虚拟网络接口。如果你想要监控通过这个 VPS 接口的流量,你需要确保 vnStat 也监控这个接口。

以下是在 Debian 系统上安装 vnStat 并监控 WireGuard 接口的步骤:

  1. 安装 vnStat

    sudo apt-get update
    sudo apt-get install vnstat
  2. 确认 WireGuard 接口名称
    安装 WireGuard 后,通过以下命令确认创建的 VPN 接口名称:

    wg

    或者

    ifconfig -a

    通常,WireGuard 接口会被命名为 wg0wg1 等。

  3. 初始化 vnStat 数据库
    使用 WireGuard 接口名称(例如 wg0)初始化 vnStat 数据库:

    sudo vnstat -u -i wg0

    如果你还想要监控物理接口(例如 ens5),可以一次性监控多个接口:

    sudo vnstat -u -i ens5,wg0
  4. 设置 vnStat 开机启动
    使 vnStat 服务在系统启动时自动运行:

    sudo systemctl enable vnstat
    sudo systemctl start vnstat
  5. 查看流量统计
    使用以下命令查看流量统计信息:

    • 实时流量:

      vnstat -l -i wg0
    • 月流量统计:

      vnstat -m -i wg0
    • 日流量统计:

      vnstat -d -i wg0
    • 小时流量统计:

      vnstat -h -i wg0

通过这些步骤,你可以监控通过 WireGuard VPN 接口的流量以及物理网络接口的流量。确保你根据实际情况调整接口名称和命令。

crontab -l
crontab -e

每月1号凌晨1点执行脚本:

0 1 1 * * /usr/local/bin/send_vnstat_report.sh

每1分钟执行一次脚本:

* * * * * /usr/local/bin/send_vnstat_report.sh

每天晚上23点执行:

0 23 * * * /usr/local/bin/send_vnstat_report.sh

使用read_txt_to_mail.py执行定时任务,每月最后一天零点将本月使用的流量情况发送邮件:

在server上创建该任务的虚拟环镜vnstat_mail.env:

cd /opt/services/pythonPrj/
python3 -m venv vnstat_mail.env
source /opt/services/pythonPrj/vnstat_mail.env/bin/activate
nohup python3.11 /opt/services/pythonPrj/read_txt_to_mail.py &