Как контролировать пропускную способность сети с помощью vnStat в Linux и BSD
Установите и используйте инструмент мониторинга сетевого трафика vnStat в Linux
В этом руководстве мы увидим, что такое vnStat, как установить vnStat, а затем как отслеживать пропускную способность сети с помощью vnStat в операционных системах Linux и BSD. системы.
vnStat Введение
VnStat — это бесплатный, легкий и легкий консольный монитор сетевого трафика с открытым исходным кодом. Используя VnStat, мы можем легко узнать, какая пропускная способность сети потребляется, и отобразить результат ежечасно, ежедневно, ежемесячно или за определенный период времени.
Vnstat собирает сведения об использовании одного или нескольких сетевых интерфейсов и отображает сводку в командной строке. Это также помогает рассчитать приблизительный объем использования пропускной способности Интернета в месяц, день или за определенный период времени.
Установите vnStat в Linux
VnStat доступен в репозиториях по умолчанию во многих операционных системах Linux и Unix. Вы можете установить его с помощью менеджера пакетов вашего дистрибутива.
В системах на базе Arch:
Убедитесь, что вы включили репозиторий [Community]
и установите его с помощью pacman, как показано ниже:
sudo pacman -S vnstat
В Debian, Ubuntu, Linux Mint, Pop OS:
sudo apt install vnstat
В Ubuntu вам может потребоваться включить репозиторий [Universe]
для установки vnstat.
В Redhat, CentOS, AlmaLinux, Rocky Linux:
Сначала добавьте и включите репозиторий EPEL:
sudo dnf install epel-release
Затем установите vnStat, как показано выше.
sudo dnf install vnstat
В Fedora:
sudo dnf install vnstat
В openSUSE:
sudo zypper install vnstat
После установки vnStat запустите его службу командой:
sudo systemctl enable --now vnstat
Вам не нужно запускать vnstat в системах на базе DEB, поскольку он автоматически включается и запускается после установки vnStat.
Установите vnStat во FreeBSD.
В системах BSD, таких как freeBSD, обновите дерево портов и установите vnStat от имени пользователя root
, используя команды:
pkg update
pkg install vnstat
После установки включите и запустите службу vnStat, как показано ниже.
echo 'vnstat_enable="YES"' >> /etc/rc.conf
service vnstat start
Пример вывода:
Starting vnstat.
No interfaces found in database, adding available interfaces...
Interface "em0" added with 1000 Mbit bandwidth limit.
-> 1 new interface found.
Limits can be modified using the configuration file. See "man vnstat.conf".
Unwanted interfaces can be removed from monitoring with "vnstat --remove".".
Настройка сетевого интерфейса по умолчанию в Linux
vnStat использует eth0
в качестве сетевого интерфейса по умолчанию в своем файле конфигурации (/etc/vnstat.conf
).
Однако в некоторых системах Linux (например, Ubuntu) имя сетевого интерфейса может быть другим, например enp0s3
, enp0s8
. Вы можете проверить имя сетевого интерфейса с помощью команды "ip addr"
.
Давайте посмотрим на содержимое файла конфигурации vnstat.
head /etc/vnstat.conf
Пример вывода:
vnStat 1.18 config file
##
default interface
Interface "eth0"
location of the database directory
DatabaseDir "/var/lib/vnstat"
locale (LC_ALL) ("-" = use system locale)
Как видите, интерфейсом по умолчанию в этом файле является etho
.
Давайте проверим доступные сетевые интерфейсы, определенные vnstat.
ls /var/lib/vnstat
enp0s3 enp0s8
Как видите, доступные сетевые интерфейсы отличаются от тех, которые определены в файле vnstat.conf
.
Если вы не установите правильный интерфейс по умолчанию, вы можете получить следующую ошибку при просмотре трафика пропускной способности сети почасово или ежемесячно.
Error: Unable to read database "/var/lib/vnstat/eth0": No such file or directory
Это происходит потому, что интерфейс по умолчанию неправильно определен в файле /etc/vnstat.conf
.
Чтобы настроить сетевой интерфейс по умолчанию, отредактируйте файл /etc/vnstat.conf
и обновите правильное имя интерфейса. Вы можете напрямую редактировать файл /etc/vnstat.conf
и глобально обновлять имя интерфейса. Однако рекомендуется создать собственный файл конфигурации vnstat в домашнем каталоге пользователя.
cp /etc/vnstat.conf ~/.vnstatrc
nano ~/.vnstatrc
Я собираюсь использовать enp0s3
в качестве интерфейса по умолчанию.
Настройте сетевой интерфейс по умолчанию для VnStat
Замените enp0s3 на свой. Сохраните и закройте файл.
Настройка сетевого интерфейса по умолчанию во FreeBSD
Отредактируйте файл конфигурации vnstat:
vi /usr/local/etc/vnstat.conf
Если файл конфигурации недоступен, создайте новый, используя образец файла конфигурации:
cp /usr/local/etc/vnstat.conf.sample /usr/local/etc/vnstat.conf
Затем обновите правильный сетевой интерфейс по умолчанию:
Interface "em0"
Сохраните и закройте файл.
Мониторинг пропускной способности сети с помощью vnStat в Linux и Unix
Если вы новичок в vnStat, откройте раздел справки vnStat и просмотрите список доступных опций, выполнив следующую команду:
vnstat --help
Пример вывода:
vnStat 1.18 by Teemu Toivola <tst at iki dot fi>
-q, --query query database
-h, --hours show hours
-d, --days show days
-m, --months show months
-w, --weeks show weeks
-t, --top10 show top 10 days
-s, --short use short output
-u, --update update database
-i, --iface select interface (default: eth0)
-?, --help short help
-v, --version show version
-tr, --traffic calculate traffic
-ru, --rateunit swap configured rate unit
-l, --live show transfer rate in real time
See also "--longhelp" for complete options list and "man vnstat".
Просмотр использования полосы пропускания всех интерфейсов
Теперь давайте отобразим сетевой трафик всех интерфейсов.
Для этого просто запустите:
vnstat
Пример вывода:
rx / tx / total / estimated
enp0s3:
Sep '19 120 KiB / 66 KiB / 186 KiB / 0 KiB
today 120 KiB / 66 KiB / 186 KiB / --
enp0s8:
Sep '19 128 KiB / 88 KiB / 216 KiB / 0 KiB
today 128 KiB / 88 KiB / 216 KiB / --
Просмотрите использование полосы пропускания всех сетевых интерфейсов с помощью vnstat.
Здесь,
rx
– полученный трафик.tx
– переданный трафик.
Подождите несколько минут, чтобы Vnstat начал собирать данные об использовании сетевого трафика. Если вы запустите vnstat сразу после его установки, вы можете получить результат, подобный приведенному ниже.
enp0s3: Not enough data available yet.
Или вы получите следующий вывод в дистрибутивах на основе RPM, таких как CentOS.
No database found, nothing to do. Use --help for help.
A new database can be created with the following command:
vnstat --create -i eth0
Replace 'eth0' with the interface that should be monitored.
The following interfaces are currently available:
enp0s3 (1000 Mbit) lo
Сейчас ничего не показывает. Это связано с тем, что vnStat еще не начал собирать статистику.
Просмотр использования полосы пропускания конкретного интерфейса
Чтобы просмотреть использование полосы пропускания сети для определенного интерфейса, например enp0s3, просто укажите имя сетевой карты, как показано ниже.
vnstat -i enp0s3
Пример вывода:
Database updated: Mon Sep 9 08:26:47 2019
enp0s3 since 09/09/2019
rx: 136 KiB tx: 74 KiB total: 210 KiB
monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
Sep '19 136 KiB | 74 KiB | 210 KiB | 0.00 kbit/s
------------------------+-------------+-------------+---------------
estimated -- | -- | -- |
daily
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
today 136 KiB | 74 KiB | 210 KiB | 0.06 kbit/s
------------------------+-------------+-------------+---------------
estimated -- | -- | -- |
Просмотрите использование пропускной способности сети для конкретного сетевого интерфейса с помощью vnstat.
Здесь enp0s3
— имя моей сетевой карты. Вы можете узнать имя своей сетевой карты с помощью команды "ip addr"
.
В FreeBSD имя сетевой карты — em0
. Чтобы просмотреть его пропускную способность, просто запустите:
vnstat -i em0
Пример вывода:
Database updated: 2019-09-09 16:40:00
em0 since 2019-09-09
rx: 606.84 KiB tx: 56.12 KiB total: 662.96 KiB
monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
2019-09 606.84 KiB | 56.12 KiB | 662.96 KiB | 7 bit/s
------------------------+-------------+-------------+---------------
estimated -- | -- | -- |
daily
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
today 606.84 KiB | 56.12 KiB | 662.96 KiB | 90 bit/s
------------------------+-------------+-------------+---------------
estimated 873 KiB | 80 KiB | 953 KiB
Просмотрите использование пропускной способности сети во FreeBSD с помощью vnstat
Просмотр использования полосы пропускания в час
Давайте отобразим результаты сетевого трафика в час. Для этого запустите:
vnstat -h
Пример вывода:
enp0s3 09:46
^ r
| r r
| r r
| r r
| r r r
| rt rt r
| rt rt r
| rt rt rt
| rt rt rt
| r rt rt rt
-+--------------------------------------------------------------------------->
| 10 11 12 13 14 15 16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08 09
h rx (KiB) tx (KiB) ][ h rx (KiB) tx (KiB) ][ h rx (KiB) tx (KiB)
10 0 0 ][ 18 0 0 ][ 02 0 0
11 0 0 ][ 19 0 0 ][ 03 0 0
12 0 0 ][ 20 0 0 ][ 04 0 0
13 0 0 ][ 21 0 0 ][ 05 0 0
14 0 0 ][ 22 0 0 ][ 06 12 7
15 0 0 ][ 23 0 0 ][ 07 86 48
16 0 0 ][ 00 0 0 ][ 08 88 45
17 0 0 ][ 01 0 0 ][ 09 59 32
Просмотр использования пропускной способности сети в час с помощью vnstat
Если у вас несколько интерфейсов, используйте параметр -i для просмотра почасового сетевого трафика конкретной карты, как показано ниже.
vnstat -h -i enp0s8
Рекомендуем прочитать:
- Как ограничить пропускную способность сети в Linux с помощью Wondershaper
Просмотр ежедневного использования пропускной способности
Используйте флаг '-d'
, чтобы отобразить сетевой трафик сетевого интерфейса по умолчанию за день.
vnstat -d
Пример вывода:
enp0s3 / daily
day rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
09/09/2019 258 KiB | 138 KiB | 396 KiB | 0.09 kbit/s
------------------------+-------------+-------------+---------------
estimated -- | -- | -- |
Просмотр еженедельного использования пропускной способности
vnstat -w
Пример вывода:
enp0s3 / weekly
rx | tx | total | avg. rate
---------------------------+-------------+-------------+---------------
last 7 days 258 KiB | 138 KiB | 396 KiB | 0.00 kbit/s
current week 258 KiB | 138 KiB | 396 KiB | 0.09 kbit/s
---------------------------+-------------+-------------+---------------
estimated -- | -- | -- |
Просмотр ежемесячного использования пропускной способности
Чтобы просмотреть ежемесячное использование сетевой карты, используйте переключатель '-m'
.
vnstat -m
Пример вывода:
enp0s3 / monthly
month rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
Sep '19 258 KiB | 138 KiB | 396 KiB | 0.00 kbit/s
------------------------+-------------+-------------+---------------
estimated -- | -- | -- |
Отображение использования пропускной способности за последние десять дней
Чтобы отобразить использование сети за последние десять дней, используйте флаг '-t'
.
vnstat -t
Пример вывода:
enp0s3 / top 10
# day rx | tx | total | avg. rate
-----------------------------+-------------+-------------+---------------
no data available
-----------------------------+-------------+-------------+---------------
Он не отображает данные за десять лучших дней, потому что сегодня я установил Vnstat.
Рекомендуем прочитать:
- Установить инструмент мониторинга производительности NetData в Linux
Просмотр использования полосы пропускания за определенное время
Мы также можем просмотреть использование полосы пропускания в определенное время.
Чтобы отобразить использование полосы пропускания за последние десять секунд, выполните:
vnstat -i enp0s3 -tr 10
Пример вывода:
7 packets sampled in 10 seconds
Traffic average for enp0s3
rx 0.28 kbit/s 0 packets/s
tx 0.14 kbit/s 0 packets/s
Просмотр использования полосы пропускания в реальном времени
Чтобы начать мониторинг использования конкретной интерфейсной карты в реальном времени, запустите:
vnstat -i enp0s3 -l
Пример вывода:
Monitoring enp0s3... (press CTRL-C to stop)
rx: 0 kbit/s 0 p/s tx: 0 kbit/s 0 p/s
Просмотр использования пропускной способности в реальном времени с помощью vnstat
Чтобы остановить мониторинг в реальном времени, нажмите CTRL-C
.
Более подробную информацию можно найти на страницах руководства:
man vnstat
Заключение
VnStat — это удобный и полезный инструмент для мониторинга использования Интернета или сетевого трафика для одного или нескольких сетевых интерфейсов. Если вам интересно, сколько трафика вы потребляете ежедневно/ежемесячно, вы можете использовать этот инструмент, чтобы узнать это без помощи вашего интернет-провайдера или каких-либо сторонних инструментов.
Ресурс:
- Главная страница vnStat