README.md

Image alt

О приложении Trafshow

Простой и удобный GUI-инструмент для мониторинга трафика сетевых соединений. Предназначен для оперативного анализа основных характеристик проходящего трафика, а также долгосрочного накопления подробной статистики использования сети.

Ключевые особенности:

  • Сетевой поток представлен в реальном времени в виде серии пакетов между удаленным хостом и локальным приложением (когда это возможно) на Ethernet и Internet уровнях. Источник, протокол, объем и скорость ста наиболее активных потоков отображаются в виде динамического списка или трехмерных графиков. Объем и скорость передачи данных показаны в пакетах, байтах и полезной нагрузке.

  • Содержимое выбранного потока динамически отображается в виде шестнадцатеричного дампа, сгруппированного по сетевым слоям с подробной информацией о свойствах. ЗАМЕЧАНИЕ: Расшифровка данных в пакетах SSL/TLS не производится!

  • Необработанный поток пакетов можно удобно отфильтровать и выгрузить в локальное или удаленное хранилище в формате, совместимом с PCAP, для дальнейшего углубленного анализа другими инструментами.

  • Главный движок приложения способен функционировать в качестве системной службы, которая в фоновом режиме собирает историю всего проходящего сетевого трафика во встроенную базу данных SQL. Наглядная информация об источниках, получателях, колличестве и времени прохождения трафика мнгновенно доступна в один клик.

  • Поддерживается конфигурация с удаленным мониторингом трафика на других узлах локальной сети. Например, вы можете централизованно управлять несколькими Android-смартфонами на одном большом экране рабочего стола Linux.

  • Приложение можно использовать в среде Switched Port Analyzer (SPAN, также известной как зеркалирование портов) для прослушивания всего транзитного трафика на сетевом интерфейсе.

Большое спасибо Qt - https://www.qt.io - за лучшую кроссплатформенную библиотеку!

Домашний сайт приложения - http://www.trafshow.ru - в разработке

Авторские права (c) 2018-2022 Владимир Воробьев - b800xy (a) yandex.ru, Под лицензией MIT

Как собрать Trafshow из исходников

ВНИМАНИЕ: Эта версия Trafshow работает ТОЛЬКО под управлением ОС Linux и поддержкой IPv6. Сборку рекомендуется осуществлять на 4+ ядерном процессоре с минимум 8Gb оперативной памяти, требуется подключение к Интернет!

Перед сборкой приложения в системе должны быть установлены следующие инструменты:

gcc++ cmake perl wget git flex bison setcap
  • Установите необходимые компоненты из состава библиотеки Qt

Требуется Qt5 версий 5.12 или выше, Qt6 также поддерживается.

Trafshow зависит от нескольких модулей (разделяемых библиотек) из типового набора Qt:

Core Network Sql Gui Widgets Qml Quick QuickControls2 QuickTemplates2

В операционной системе с рабочим столом KDE или LXQt все эти модули как правило уже предустановлены и их достаточно для запуска приложения. Однако, если вы хотите наблюдать трафик еще и в виде трех-мерных графиков, то понадобится доустановить опциональный модуль DataVisualization.

Во время сборки приложения, помимо самих этих модулей, потребуются ещё и соответствующие им include-файлы, а также некоторые сопутствующие утилиты от установленной версии Qt.

Всё это можно установить из штатных репозиториев Linux как показано ниже.

Для дистрибутивов на основе Debian, например Ubuntu 20.04, следующая команда должна установить всё необходимое для сборки:

sudo apt-get install g++ cmake git flex bison \
qt5-qmake qttools5-dev-tools qtbase5-dev qtdeclarative5-dev qtquickcontrols2-5-dev \
libqt5datavisualization5-dev

Если сборка не требуется, а нужно лишь установить комплект библиотек Qt, то выполните:

sudo apt-get install libqt5core5a libqt5network5 libqt5sql5 \
libqt5gui5 libqt5widgets5 libqt5qml5 libqt5quick5 libqt5quickcontrols2-5 \
libqt5datavisualization5

Для дистрибутивов на основе RedHat, в частности CentOS Stream 9 и Fedora 36, следующая команда установит все недостающие пакеты:

sudo dnf install gcc-c++ cmake git flex bison \
qt5-linguist qt5-qtbase-devel qt5-qtdeclarative-devel qt5-qtquickcontrols2-devel \
qt5-qtdatavis3d-devel 

А например, для openSUSE Leap 15.4 и Tumbleweed может потребоваться более расширенный набор пакетов:

sudo zypper install gcc-c++ perl cmake wget git flex bison libcap-progs \
libqt5-linguist libqt5-qtbase-devel libQt5QuickControls2-devel \
libQt5QuickTemplates2-devel libQt5DataVisualization5-devel libqt5-qtdatavis3d-imports

Напротив, в Manjaro Linux 21.3.3 (Ruah) с рабочим столом KDE, наоборот, почти все что нужно уже предустановлено:

sudo pacman -S make cmake flex bison qt5-datavis3d

ALT Starterkit p10 (Hypericum), MATE desktop:

sudo apt-get install gcc-c++ cmake git flex bison \
qt5-qtbase qt5-base-devel qt5-datavis3d-devel libqt5-datavisualization \
qt5-quickcontrols2-devel qt5-graphicaleffects

ROSA Fresh Desktop 12.2, LXQt desktop:

sudo dnf install gcc-c++ flex bison \
qt5-qtbase-devel lib64qt5datavis3d-devel lib64qt5datavis3d5 \
lib64qt5qml-devel lib64qt5quick-devel lib64qt5quickcontrols2-devel

Вы также можете использовать Trafshow с альтернативной версией библиотеки Qt5 или Qt6, которую можно собрать из исходников и установить локально в домашний подкаталог. Например, так: https://www.ics.com/blog/how-build-qt-620-source-ubuntu-linux

  • Перейдите в каталог с исходниками Trafshow и запустите скрипт ./build.sh

Скрипт сам найдет всё необходимое в системе, подготовит проект к сборке в отдельном теневом подкаталоге и запустит там его компиляцию.

Если вы хотите использовать Trafshow с альтернативной версией библиотеки Qt, то скрипт нужно запустить с аргументом, указывающим на её локально установленный профиль. Например:

./build.sh ~/Qt6.2.2/clang_64/bin/qmake6

На этом этапе несколько сторонних компонент будут автоматически загружены, скомпилированы и статически влинкованы в движок Trafshow что-бы больше не зависеть от внешних факторов:

Этот процесс займет некоторое время, в течении которого могут возникнуть несколько незначительных предупреждений компилятора, проигнорируйте их.

  • Установите Trafshow в систему и в вашу графическую среду

Общесистемные файлы устанавливаются по-умолчанию в /usr/local в следующие подкаталоги (при отсутствии будут созданы):

bin, lib и share/trafshow, а также в домашний каталог текущего пользователя

Убедитесь, что /usr/local/bin присутствует в поисковом пути:

echo $PATH

и выполните установку с первоначальным запуском:

sudo cmake --install build-directory && run-trafshow

где build-directory - подкаталог текущей теневой сборки проекта.

Следуйте дальнейшим инструкциям на экране.

Если первоначальный запуск не удался с примерно такой диагностикой на экране консоли:

QQmlApplicationEngine failed to load component qrc:/main.qml:4 module “QtQuick.Layouts” is not installed

то в вашей системе оказались не установлены Qml-плагины, соответствующие установленной библиотеке Qt. Доустановите их:

sudo apt-get install qml-module-qtquick-layouts qml-module-qtquick-controls \
qml-module-qtquick-controls2 qml-module-qtqml-models2 qml-module-qtdatavisualization \
qml-module-qt-labs-settings

и снова запустите Trafshow:

run-trafshow

если программа запустилась удачно, то любые сопутствующие сообщения на консоле можно проигнорировать. В дальнейшем вызывайте Trafshow по иконке без использования консоли.

Описание

Системная утилита для мониторинга сетевого трафика в Linux

Конвейеры
0 успешных
0 с ошибкой