Мониторинг сетевого трафика на Ubuntu – базовая задача для админа и DevOps. Нужно видеть, кто ходит на сервер, сколько уходит и приходит данных, какой процесс жрёт канал. Ниже – практичный набор: realtime-мониторы, долгосрочная статистика, захват пакетов и простая автоматизация.
Зачем смотреть сетевой трафик
- Ловить аномальную активность, сканы и неожиданные исходящие соединения
- Понимать, куда уходит полоса и где узкие места
- Следить за нагрузкой интерфейсов и не допускать перегрузок
- Иметь цифры для отчётов и разбора инцидентов
iftop: кто с кем и сколько прямо сейчас
iftop показывает входящий и исходящий трафик в реальном времени: пары IP, объём, текущую скорость. Удобно, когда нужно быстро ответить «кто сейчас грузит канал».
sudo apt install iftop sudo iftop
После запуска откроется TUI: сверху хосты, снизу суммарные значения. Полезно сразу смотреть на неожиданные внешние адреса и всплески.
nload: графики входящего и исходящего
nload рисует простые графики in/out. Когда нужен «взгляд на загрузку», а не список IP – это самый быстрый вариант.
sudo apt install nload sudo nload
Переключайте интерфейсы стрелками, если на сервере несколько NIC. Хорошо ловит скачки при DDoS-подобной нагрузке или «убежавшем» бэкапе.
vnStat: статистика за день, месяц, год
vnStat не держит экран, а копит счётчики в фоне. Это про «сколько ушло за месяц», а не про live-потоки.
sudo apt install vnstat sudo systemctl enable --now vnstat
Базовые отчёты:
vnstat vnstat -d # по дням vnstat -m # по месяцам vnstat -h # по часам
Убедитесь, что демон видит нужный интерфейс (vnstat --iflist, при необходимости vnstat -u -i eth0). Иначе статистика будет пустой.
bmon: интерфейсы и детализация
bmon (Bandwidth Monitor) удобен, когда интерфейсов много: rates, пакеты, ошибки, переключение между NIC в одном TUI.
sudo apt install bmon sudo bmon
Помогает при разборе производительности: сравниваете каналы, видите, где растут drops или где упирается один линк.
nethogs: какой процесс жрёт сеть
nethogs группирует трафик по PID/процессу. Когда «сеть занята», а в iftop непонятно, какой сервис виноват, nethogs часто закрывает вопрос за минуту.
sudo apt install nethogs sudo nethogs
Можно указать интерфейс: sudo nethogs eth0. Смотрите на неожиданные бинарники, шеллы и «забытые» агенты.
tcpdump: захват пакетов
Когда нужен не «кто сколько», а «что именно в пакетах», берите tcpdump. Live-вывод:
sudo tcpdump -i eth0 # или с DNS-резолвом выключенным (быстрее, чище) sudo tcpdump -ni eth0
Сохранить дамп и потом открыть в Wireshark:
sudo tcpdump -i eth0 -w capture.pcap # ограничить объём, например 100 МБ sudo tcpdump -i eth0 -C 100 -w capture.pcap
Фильтры BPF экономят диск и нервы: host 1.2.3.4, port 443, tcp and not port 22.
Полезные приёмы с iftop
Только HTTP (порт 80):
sudo iftop -f "port 80"
Конкретный интерфейс, если NIC несколько:
sudo iftop -i eth1
Имя интерфейса смотрите в ip -br a (на Ubuntu 22.04+ часто ens* / enp*, не eth0).
Автоматизация через cron
Для регулярных снимков статистики vnStat достаточно простого скрипта и crontab. Пример отчёта по дням:
#!/bin/bash
# /usr/local/bin/vnstat-report.sh
set -euo pipefail
OUT=/var/log/vnstat_report.txt
{
date -Is
vnstat -d
echo "----"
vnstat -m
} > "$OUT"
echo "Отчёт сохранён в $OUT"
Раз в час:
sudo chmod +x /usr/local/bin/vnstat-report.sh echo '0 * * * * root /usr/local/bin/vnstat-report.sh' | sudo tee /etc/cron.d/vnstat-report
Для алертов по порогам лучше смотреть в сторону Prometheus node_exporter, Netdata или простого check в Zabbix. vnStat и cron – минимум, с которого можно начать.
Что брать в какой ситуации
- Кто грузит канал прямо сейчас – iftop, nload, bmon
- Какой процесс – nethogs
- Сколько ушло за день/месяц – vnStat
- Разбор содержимого пакетов – tcpdump (+ Wireshark)
Держите 2-3 утилиты под рукой и не ждите, пока «что-то странное» уже положит сайт. Live-монитор, долгосрочная статистика и возможность снять pcap закрывают большинство бытовых и прод-кейсов на Ubuntu-сервере.

