如何在 Ubuntu 22.04 上使用 vnStat 监控网络流量
本教程适用于这些操作系统版本
- Ubuntu 22.04(Jammy Jellyfish)
- Ubuntu 20.04(Focal Fossa)
在此页
- 先决条件
- 开始
- 安装 vnStat
- 使用 Systemd 管理 VnStat
- 如何使用 vnStat 监控网络流量
- 结论
vnStat 是一个免费的、开源的、基于控制台的网络流量监控工具,适用于 Linux 操作系统。使用 vnStat,您可以监控不同时间段的网络统计信息。它简单、轻便,并且只占用一小部分系统资源。 vnStat 允许您生成每小时、每天、每月、每周和每天的网络流量数据。本教程将向您展示如何安装和使用 vnStat 来监控网络流量。
特征
- 同时监控多个接口。
- 提供多种输出选项,如按天、按周等。
- 按小时、天、月或周对数据进行排序,或获取前 10 天。
- 允许您生成图像格式的输出。
- 同时监控多个网络接口。
- 轻量级且 CPU 使用率低。
本教程将向您展示如何在 Ubuntu 22.04 上安装和使用 VnStat 工具来监控网络流量。
先决条件
- 一台运行 Ubuntu 20.04 的服务器。
- 在服务器上配置了根密码。
入门
在开始之前,建议将所有系统包更新和升级到最新版本。您可以使用以下命令更新所有这些:
apt update -y
apt upgrade -y
更新所有包后,您可以在下一步中从源安装 VnStat。
安装 vnStat
默认情况下,最新版本的 vnStat 在 Ubuntu 默认存储库中不可用。所以你需要从源代码编译它。
首先,使用以下命令安装编译 vnStat 所需的所有依赖项:
apt-get install build-essential gcc make libsqlite3-dev -y
安装所有依赖项后,使用以下命令下载最新版本的 vnStat 源:
wget https://humdi.net/vnstat/vnstat-2.10.tar.gz
下载完成后,使用以下命令解压缩下载的文件:
tar -xvzf vnstat-2.10.tar.gz
接下来,将目录更改为提取的目录并使用以下命令对其进行配置:
cd vnstat-2.10
./configure --prefix=/usr --sysconfdir=/etc
接下来,通过运行以下命令安装 vnStat:
make
make install
安装 vnStat 后,您可以使用以下命令验证安装的 vnStat 版本:
vnstat -v
您应该得到以下输出:
vnStat 2.10 by Teemu Toivola
完成后,您可以继续下一步。
使用 Systemd 管理 VnStat
要使用 systemd 管理 VnStat,您需要将 vnStat systemd 服务文件从 vnStat 源复制到 /etc/systemd/system/ 目录:
cp -v vnstat-2.10/examples/systemd/vnstat.service /etc/systemd/system/
接下来,启用 vnStat 服务并使用以下命令启动它:
systemctl enable vnstat
systemctl start vnstat
您还可以使用以下命令检查 vnStat 服务的状态:
systemctl status vnstat
您应该得到以下输出:
? vnstat.service - vnStat network traffic monitor
Loaded: loaded (/lib/systemd/system/vnstat.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-11-29 08:34:08 IST; 2h 49min ago
Docs: man:vnstatd(1)
man:vnstat(1)
man:vnstat.conf(5)
Main PID: 1730 (vnstatd)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/vnstat.service
??1730 /usr/sbin/vnstatd -n
Nov 29 08:34:08 vyompc systemd[1]: Started vnStat network traffic monitor.
Nov 29 08:34:08 vyompc vnstatd[1730]: Info: vnStat daemon 1.18 started. (pid:1730 uid:122 gid:128)
Nov 29 08:34:08 vyompc vnstatd[1730]: Info: Monitoring: enp20s0 (1000 Mbit) wlp22s0 (1000 Mbit)
完成后,您可以继续下一步。
如何使用 vnStat 监控网络流量
vnStat 提供了几个选项,允许您监控网络流量。您可以使用以下命令列出所有可用选项:
vnstat --help
您应该得到以下输出:
vnStat 2.10 by Teemu Toivola
-5, --fiveminutes [limit] show 5 minutes
-h, --hours [limit] show hours
-hg, --hoursgraph show hours graph
-d, --days [limit] show days
-m, --months [limit] show months
-y, --years [limit] show years
-t, --top [limit] show top days
-b, --begin set list begin date
-e, --end set list end date
--oneline [mode] show simple parsable format
--json [mode] [limit] show database in json format
--xml [mode] [limit] show database in xml format
-tr, --traffic [time] calculate traffic
-l, --live [mode] show transfer rate in real time
-i, --iface select interface
Use "--longhelp" or "man vnstat" for complete list of options.
在使用 vnStat 之前,您需要等待一段时间来更新 vnStat 数据库。更新数据库后,您可以不带任何选项运行 vnStat,如下所示:
vnstat
您应该看到以下输出:
rx / tx / total / estimated
wlp22s0:
Oct '22 17.80 GiB / 4.35 GiB / 22.15 GiB
Nov '22 16.61 GiB / 3.62 GiB / 20.23 GiB / 21.48 GiB
yesterday 332.22 MiB / 114.17 MiB / 446.39 MiB
today 710.25 MiB / 44.85 MiB / 755.11 MiB / 1.55 GiB
要使用特定的网络接口,请使用 -i 选项,如下所示:
vnstat -i ens3
您应该在以下输出中获得每日和每月的统计信息:
Database updated: 2020-11-12 06:30:00
ens3 since Saturday 29 January 2022
rx: 185.89 GiB tx: 38.82 GiB total: 224.70 GiB
monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
Oct '22 17.80 GiB | 4.35 GiB | 22.15 GiB | 71.04 kbit/s
Nov '22 16.61 GiB | 3.62 GiB | 20.23 GiB | 71.20 kbit/s
------------------------+-------------+-------------+---------------
estimated 17.64 GiB | 3.85 GiB | 21.48 GiB |
daily
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
yesterday 332.22 MiB | 114.17 MiB | 446.39 MiB | 43.34 kbit/s
today 710.25 MiB | 44.85 MiB | 755.11 MiB | 154.31 kbit/s
------------------------+-------------+-------------+---------------
estimated 1.46 GiB | 92 MiB | 1.55 GiB |
要显示每小时统计信息,请运行以下命令:
vnstat -h
您应该得到以下输出:
ens3 / hourly
h rx (MiB) tx (MiB) ][ h rx (MiB) tx (MiB) ][ h rx (MiB) tx (MiB)
12 5.4 0.2 ][ 20 30.4 14.8 ][ 04 0.0 0.0
13 72.7 15.0 ][ 21 24.8 6.4 ][ 05 0.0 0.0
14 1.9 0.4 ][ 22 20.1 9.8 ][ 06 0.0 0.0
15 0.0 0.0 ][ 23 0.0 0.0 ][ 07 0.0 0.0
16 0.0 0.0 ][ 00 0.0 0.0 ][ 08 147.0 10.2
17 36.4 9.6 ][ 01 0.0 0.0 ][ 09 64.1 9.4
18 54.0 23.4 ][ 02 0.0 0.0 ][ 10 496.9 23.9
19 86.5 34.5 ][ 03 0.0 0.0 ][ 11 2.3 1.3
要显示每日统计信息,请运行以下命令:
vnstat -d
您应该得到以下输出:
ens3 / daily
day rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
Sunday 30 October 2022 266.75 MiB | 47.81 MiB | 314.56 MiB | 30.54 kbit/s
Monday 31 October 2022 701.49 MiB | 225.89 MiB | 927.38 MiB | 90.04 kbit/s
Tuesday 01 November 2022 506.20 MiB | 184.50 MiB | 690.70 MiB | 67.06 kbit/s
Wednesday 02 November 2022 631.15 MiB | 182.43 MiB | 813.59 MiB | 78.99 kbit/s
Thursday 03 November 2022 189.21 MiB | 41.18 MiB | 230.39 MiB | 22.37 kbit/s
Friday 04 November 2022 703.67 MiB | 175.49 MiB | 879.16 MiB | 85.36 kbit/s
Saturday 05 November 2022 518.96 MiB | 130.47 MiB | 649.43 MiB | 63.05 kbit/s
Sunday 06 November 2022 301.74 MiB | 81.95 MiB | 383.69 MiB | 37.25 kbit/s
您可以使用选项 -t 来显示流量最高的日子:
vnstat -t
您应该得到以下输出:
ens3 / top 1
# day rx | tx | total | avg. rate
-----------------------------+-------------+-------------+---------------
1 Thursday 03 February 2022 2.58 GiB | 214.64 MiB | 2.79 GiB | 277.76 kbit/s
2 Saturday 05 February 2022 2.11 GiB | 229.32 MiB | 2.33 GiB | 231.67 kbit/s
3 Tuesday 01 February 2022 1.81 GiB | 190.56 MiB | 2.00 GiB | 198.71 kbit/s
4 Wednesday 02 February 2022 1.80 GiB | 179.75 MiB | 1.98 GiB | 196.72 kbit/s
5 Sunday 10 July 2022 1.69 GiB | 248.34 MiB | 1.93 GiB | 192.21 kbit/s
6 Saturday 19 February 2022 1.56 GiB | 172.67 MiB | 1.73 GiB | 171.56 kbit/s
7 Friday 16 September 2022 1.44 GiB | 201.21 MiB | 1.64 GiB | 163.16 kbit/s
8 Friday 17 June 2022 1.34 GiB | 278.89 MiB | 1.61 GiB | 160.33 kbit/s
9 Friday 25 March 2022 1.06 GiB | 504.19 MiB | 1.55 GiB | 154.51 kbit/s
10 Monday 07 February 2022 1.30 GiB | 160.68 MiB | 1.46 GiB | 145.30 kbit/s
-----------------------------+-------------+-------------+---------------
要实时显示网络流量统计信息,请运行以下命令:
vnstat -l
您应该得到以下输出:
Monitoring ens3... (press CTRL-C to stop)
rx: 11 kbit/s 7 p/s tx: 9 kbit/s 6 p/s^C
ens3 / traffic statistics
rx | tx
--------------------------------------+------------------
bytes 17 KiB | 18 KiB
--------------------------------------+------------------
max 24 kbit/s | 33 kbit/s
average 6.78 kbit/s | 7.39 kbit/s
min 0 kbit/s | 0 kbit/s
--------------------------------------+------------------
packets 78 | 82
--------------------------------------+------------------
max 10 p/s | 11 p/s
average 3 p/s | 4 p/s
min 0 p/s | 0 p/s
--------------------------------------+------------------
time 20 seconds
您还可以使用以下命令清除接口 ens3 的数据库条目并停止监控:
vnstat -i ens3 --remove --force
您应该得到以下输出:
Interface "ens3" removed from database.
The interface will no longer be monitored. Use --add
if monitoring the interface is again needed.
您还可以通过运行以下命令再次添加已删除的接口 ens3:
vnstat -i ens3 --add
您应该得到以下输出:
Adding interface "ens3" for monitoring to database...
Restart the vnStat daemon if it is currently running in order to start monitoring "ens3".
接下来,重新启动 vnStat 服务以应用更改:
systemctl restart vnstat
结论
在这篇文章中,我们解释了如何在 Ubuntu 22.04 上安装 vnStat。我们还通过几个示例向您展示了如何使用它来监控网络流量。您现在可以使用此工具来分析和解决与网络相关的问题。如果您有任何问题,请随时问我。