Поиск по сайту:

Как контролировать пропускную способность сети с помощью 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

Статьи по данной тематике