Когда интернет «тормозит», хочется сразу увидеть, какой интерфейс загружен и с какой скоростью идут пакеты. bmon показывает это в терминале: список интерфейсов, графики RX/TX, счётчики ошибок и очередь qdisc. Утилита не пишет трафик и не разбирает пакеты, зато запускается одной командой и почти не нагружает систему.

Что показывает bmon

По умолчанию bmon читает статистику через netlink и рисует интерактивный экран curses. В верхней части — интерфейсы и их суммарные скорости, ниже — график выбранного интерфейса, ещё ниже — детальные счётчики: байты, пакеты, ошибки, drops, multicast. Для каждого интерфейса видна строка qdisc, то есть дисциплина очереди, которая влияет на задержки и потери.

Отдельно видны ошибки приёма и передачи, а также счётчики multicast. Этого достаточно, чтобы отличить перегрузку канала от проблемы с драйвером или кабелем.

Это инструмент оперативной диагностики, а не биллинга. Он не хранит историю за месяцы, не умеет разбирать протоколы и не показывает, какой процесс занял канал. Для таких задач нужны vnstat, nethogs или iftop — ниже сравним их.

Главное — смотреть на динамику, а не на абсолютные значения: всплески трафика и рост ошибок заметны уже за несколько секунд.

Установка и проверка интерфейсов

sudo apt install bmon
bmon --version
ip -br link

В Debian, Ubuntu и Linux Mint пакет есть в штатных репозиториях; в Fedora и Arch используются dnf install bmon и pacman -S bmon. Права root для просмотра статистики обычно не нужны: netlink отдаёт счётчики обычному пользователю. Команда ip -br link показывает реальные имена интерфейсов — eth0, enp3s0, wlan0, tun0; именно их подставляйте в -p.

Запуск и клавиши

bmon -p eth0 -b

Флаг -b переключает единицы на биты в секунду: так удобнее сравнивать с тарифом провайдера. -U включает десятичные приставки, -r задаёт интервал чтения счётчиков, -R — интервал расчёта скорости, -L — время жизни элемента без обновлений.

В интерактивном режиме стрелки вверх и вниз выбирают интерфейс, влево и вправо меняют отображаемую метрику. Клавиша d включает детальную статистику, i — дополнительную информацию о link, g — графики, ? — справку, q — выход. Если график пуст, проверьте, что выбран интерфейс с трафиком, и увеличьте высоту терминала.

Политики интерфейсов

bmon -p 'eth*,!eth0' -a
bmon -p eth0,wlan0 -o curses

Политика — это список имён через запятую. Звёздочка работает как wildcard, восклицательный знак исключает интерфейс. Флаг -a показывает и административно выключенные интерфейсы: полезно, когда link есть, но адрес не назначен. Для двух каналов сразу удобно открыть bmon в широком терминале: список покажет оба интерфейса, а график переключается стрелками.

Если интерфейс называется непредсказуемо, сначала выполните ip -br addr и возьмите имя из вывода. Для Wi-Fi дополнительно пригодится nmcli device status: bmon покажет скорость, но не причину слабого сигнала.

Вывод для скриптов

bmon -p eth0 -r 1 -o format:fmt='$(element:name)\t$(attr:rxrate:bytes)\t$(attr:txrate:bytes)\n'
timeout 60 bmon -p eth0 -o format:fmt='$(element:name)\t$(attr:rxrate:bytes)\t$(attr:txrate:bytes)\n' > traffic.tsv
awk '{rx+=$2; tx+=$3} END {print "RX", rx, "TX", tx}' traffic.tsv

Модуль format печатает строку на каждый интерфейс с заданным шаблоном. $(element:name) — имя, $(attr:rxrate:bytes) и $(attr:txrate:bytes) — скорости в байтах в секунду. Список доступных полей выводит bmon -o format:help. timeout ограничивает сбор, иначе bmon будет работать до остановки.

Для человекочитаемого снимка без curses используйте bmon -p eth0 -o ascii. Если нужен JSON, проверьте модуль json в своей версии: он появился в bmon 5.x, а в старых сборках может отсутствовать. Универсальный вариант — format, он есть в 4.x и 5.x.

Что смотреть при потерях и ошибках

ip -s link show eth0
tc -s qdisc show dev eth0
ethtool -S eth0 | grep -Ei 'drop|err|miss|discard'

ip -s link показывает накопленные RX/TX errors, dropped, overrun и carrier. Счётчики растут с момента загрузки, поэтому важна динамика: запустите команду дважды с интервалом или используйте watch -n1 'ip -s link show eth0'. tc -s qdisc показывает backlog и drops в очереди — признак перегрузки или неверно настроенного shaping.

ethtool -S выводит драйверные счётчики; набор полей зависит от сетевой карты. Ищите rx_missed, tx_dropped, discard, crc_errors. Если ошибки растут на физическом линке, проверьте кабель, скорость и дуплекс: ethtool eth0 | grep -E 'Speed|Duplex|Link detected'.

bmon рядом с другими инструментами

  • vnstat — долговременный учёт по дням и месяцам; удобен для контроля лимита трафика.
  • nethogs — трафик по процессам; помогает найти виновника загрузки канала.
  • iftop — соединения и хосты; показывает, с кем идёт обмен.
  • nload — простой график скорости без деталей.
  • sar -n DEV — история и снимки, если установлен sysstat и включён сбор.
vnstat -l -i eth0
sudo nethogs eth0
sudo iftop -i eth0 -n
sar -n DEV 1 5

Порядок диагностики обычно такой: bmon подтверждает, что трафик есть и на каком интерфейсе; nethogs или iftop локализуют процесс или соединение; vnstat показывает, укладываетесь ли вы в лимит; sar даёт ретроспективу. Не запускайте все инструменты одновременно на слабом роутере — они сами создают нагрузку.

Чек-лист

  1. Проверьте имя интерфейса через ip -br link и его состояние.
  2. Запустите bmon -p iface -b и убедитесь, что единицы соответствуют ожиданиям.
  3. Посмотрите ip -s link show iface: errors и dropped не растут?
  4. Проверьте tc -s qdisc show dev iface на backlog и потери.
  5. Сравните картину с nethogs или iftop, чтобы найти процесс или соединение.
  6. Для истории и лимитов добавьте vnstat, для долгосрочных метрик — sar.

Итог

bmon — быстрый способ увидеть, что происходит с сетевыми интерфейсами здесь и сейчас. Он показывает скорости, ошибки и очередь, легко фильтруется по именам и умеет отдавать данные в скрипт через format. Для поиска виновника используйте nethogs и iftop, для истории — vnstat и sar. Начните с bmon -p eth0 -b, затем добавьте ip -s link и tc -s qdisc — этого набора хватает для большинства повседневных задач.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте