在使用 wgcf
创建的 WireGuard VPN 接口的情况下,你可能想要监控的是 VPS 流量而不仅仅是默认的物理网络接口(如 ens5
)。WireGuard 通常会创建一个名为 wg0
或类似的虚拟网络接口。如果你想要监控通过这个 VPS 接口的流量,你需要确保 vnStat 也监控这个接口。
以下是在 Debian 系统上安装 vnStat 并监控 WireGuard 接口的步骤:
安装 vnStat:
sudo apt-get update sudo apt-get install vnstat
确认 WireGuard 接口名称:
安装 WireGuard 后,通过以下命令确认创建的 VPN 接口名称:wg
或者
ifconfig -a
通常,WireGuard 接口会被命名为
wg0
、wg1
等。初始化 vnStat 数据库:
使用 WireGuard 接口名称(例如wg0
)初始化 vnStat 数据库:sudo vnstat -u -i wg0
如果你还想要监控物理接口(例如
ens5
),可以一次性监控多个接口:sudo vnstat -u -i ens5,wg0
设置 vnStat 开机启动:
使 vnStat 服务在系统启动时自动运行:sudo systemctl enable vnstat sudo systemctl start vnstat
查看流量统计:
使用以下命令查看流量统计信息:实时流量:
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 &