Захотелось как-то мне помониторить сетевой интерфейс в режиме реального времени, глянуть чем и как забивается канал. Утилита
tcpdump для этих целей не подходила. Поискав по дереву портов, обнаружил интересную утилиту
trafshow. В ее основу положен принцип
tcpdump и она выводит топ сетевых соединений по скоростям.
Следует отметить, что все программы, напрямую работающие с оборудованием, требуют права суперпользователя. При запуске такого рода ПО под обычным пользователем, вы обычно получите сообщение о невозможности запуска приложения
$ trafshow
trafshow: No packet capture device available (no permision?)
Соотвественно trafshow надо запускать с соотвествующими привелегиями. Также не стоит забывать что подобное ПО обычно переводит сетевую карточку в "promiscuous" режим, то бишь в режим "прослушивания". Этим приемом также пользуются и многочисленное семейство снифферов, что очень не приветствуются системными администраторами
Мы немного отвлеклись, ставим:
#whereis trafshow
trafshow: /usr/ports/net/trafshow
#cd /usr/ports/net/trafshow
#make install clean
После установки, согласно принятой привычки, читаем ман:
#man trafshow
из которого становится ясно, что утилитка, базирующаяся на Ncurses отрисовывает практически в реальном времени сетевые соединения, базирущиеся на libpcap-совместимом интерфейсе, отображение идет асинхронно со сбором данных, умеет сама агрегировать соединения, превышающие число необходимых для отображения и много другое.
Синтаксис запуска
trafshow [-vpnb] [-a len] [-c conf] [-i name] [-s str] [-u port] [-R refresh] [-P purge] [-F file| expr]
Рассмотрим поподробнее ее опции:
-v Печатает версию программы и завершает работу;
-p Запрет перевода сетевых карточек в promiscuous режим;
-n Запрет перевода численных значений адресов и портов в удобочитабельный вид (пример: 80 - https, 93.158.134.3 - ya.ru). При работающей программе переключение производится клавишей "N";
-b Назначение этой опции мне непонятно :winked: ;
-a len Позволяет выводить агрегированный траффик и порты, используя префикс сетевой маски len;
-с conf Задает отличную от первоначальный цветовой схемы, расположенной по адресу /usr/local/etc/trafshow;
-i name Задает прослушиваемый сетевой интерфейс, если не задано - слушает все активные интерфейсы;
-s str Ищет искомую строку str в данных, при совпадении подсвечивает ее курсором.
-u port Слушает заданный UDP порт для снятия статистики Cisco Netflow, по умолчанию равен 9995. Для отключения следует задать номер порта 0;
-R refresh Задает интервал обновления, по умолчанию равен 2 секундам. Для изменения непосредственно в окне программы используется клавиша "R";
-P purge Задает временной интервал для очистки устаревших записей, по умолчанию равен 10, в программе меняется клавишей "P";
-F file Задает файл для фильтров.
expr Указывает, какие пакеты будут отображаться. Если не задано - будет показано все. Синтаксис подробно описан в tcpdump(1).
Ознакомившись, запускаем:
#trafshow
Выбираем нужный сетевой интерфейс, и видим симпатичное окошко с цветовой подсветкой