Site icon ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 8 декабря, 2025

RustNet: пользовательский интерфейс для мониторинга сети в реальном времени, созданный на Rust

Как сетевой администратор, вы должны знать, что происходит в вашей сети прямо сейчас. Мониторинг сети в режиме реального времени помогает выявлять всплески активности, аномалии, некорректные процессы или нежелательные подключения по мере их возникновения. Существует множество инструментов для мониторинга сети в режиме реального времени. Недавно я наткнулся на многообещающий инструмент под названием RustNet.

RustNet — это инструмент для мониторинга на основе терминала, созданный на языке Rust. Он позволяет в режиме реального времени отслеживать сетевые подключения: какой процесс их инициировал, в каком они состоянии и какой объём данных они передают.

В этой статье мы узнаем, что такое RustNet, как его установить в Linux и как контролировать свою сеть с помощью RustNet.

 

Что такое RustNet?

RustNet — это кроссплатформенный инструмент с пользовательским интерфейсом для мониторинга сети, созданный на языке Rust. Основная цель RustNet — обеспечить мониторинг сетевых подключений в режиме реального времени с подробной информацией о состоянии.

RustNet запускается в окне терминала, что делает его подходящим для сред, в которых использование графических инструментов, таких как Wireshark, нецелесообразно, особенно на серверах.

Он поддерживает различные платформы, включая Linux, macOS и Windows. На компьютере с Linux его можно установить с помощью менеджера пакетов Rust Cargo или Docker. Для пользователей Fedora он доступен через репозиторий COPR.

Это проект с открытым исходным кодом, доступный на GitHub. Проект распространяется по лицензии Apache версии 2.0.

 

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

1. Мониторинг в реальном времени и отслеживание подключений

RustNet отслеживает активные соединения по протоколам TCP, UDP, ICMP и ARP. Он отображает конкретные статусы соединений, в том числе подробные состояния для различных протоколов:

 

2. Глубокая проверка пакетов (DPI)

Инструмент определяет протоколы приложений, анализируя содержимое пакетов:

 

3. Идентификация процесса

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

 

4. Пользовательский интерфейс терминала (TUI) и интерактивность

RustNet использует фреймворк ratatui для создания продвинутого интерфейса терминала:

 

5. Архитектура и требования

RustNet использует многопоточную архитектуру с такими ключевыми компонентами, как поток захвата пакетов (с использованием libpcap), обработчики пакетов, обогащение процессов и поток очистки.

Из-за необходимости перехвата пакетов RustNet требует повышенных привилегий (например, sudo) в большинстве систем.

В Linux двоичному файлу можно предоставить определённые сетевые возможности (CAP_NET_RAW и CAP_NET_ADMIN), чтобы он мог работать без полного доступа root.

 

Установите RustNet в Linux

Убедитесь, что у вас есть всё необходимое:

 

Установка Rust

Если вы ещё не установили Rust, запустите:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

 

Следуйте инструкциям. После установки запустите:

rustc --version
cargo --version

 

Вам следует ознакомиться с печатными версиями.

 

Установка RustNet

После настройки Rust установите RustNet с помощью cargo:

cargo install rustnet

 

Если команда не выполняется, возможно, вам нужно обновить набор инструментов.

rustup update

 

Если вы используете RHEL или Fedora, вы можете установить Rustnet через репозиторий COPR:

sudo dnf copr enable domcyrus/rustnet
sudo dnf install rustnet

 

Если вы используете системы на базе Arch, он доступен в AUR. Вы можете установить его с помощью любых вспомогательных инструментов AUR, таких как Paru или Yay:

paru -S rustnet

 

Кроме того, вы можете скачать готовые двоичные файлы RustNet с страницы релизов (https://github.com/domcyrus/rustnet/releases) и установить их с помощью менеджера пакетов вашего дистрибутива:

Debian / Ubuntu:

sudo dpkg -i Rustnet_LinuxDEB_amd64.deb
sudo apt-get install -f

# Запустите с помощью sudo
sudo rustnet

# Необязательно: предоставьте возможность запуска без sudo
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/rustnet
rustnet

 

RHEL / Fedora:

sudo dnf установить Rustnet_LinuxRPM_x86_64.rpm

# Запустите с помощью sudo
sudo rustnet

# Необязательно: предоставьте возможность запуска без sudo
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/rustnet
rustnet

Мониторинг сетевого трафика в режиме реального времени с помощью RustNet

Для мониторинга сетевого трафика в реальном времени часто требуются повышенные привилегии.

 

Предупреждение: Запуск средств захвата с повышенными привилегиями может представлять угрозу безопасности. Используйте только проверенные источники.

В демонстрационных целях я буду запускать RustNet на виртуальной машине Arch Linux.

Запустите RustNet с помощью команды:

sudo rustnet

 

Если вы хотите запустить его без sudo, выполните команду:

sudo setcap cap_net_raw,cap_net_admin=eip $(which rustnet)

 

Теперь запустите инструмент RustNet без sudo:

rustnet

 

Так выглядит интерфейс RustNet по умолчанию.

По умолчанию вы увидите представление Обзор (см. скриншот ниже). Это экран по умолчанию, на котором отображаются активные подключения.

Мониторинг сети в режиме реального времени с помощью RustNet — обзор

Мониторинг сети в режиме реального времени с помощью RustNet — обзор

 

Обзорный раздел

Экран «Обзор» условно разделён на следующие части:

 

Несколько заметок:

 

Вот что означает каждый столбец / показатель:

 

Понимающие состояния:

 

Просмотр Сведений о подключении

Если вы нажмете Enter при подключении, откроется это подробное представление. Оно включает в себя:

 

Это позволяет увеличить масштаб одного соединения, чтобы понять, как оно работает. Используйте Esc (или соответствующую клавишу), чтобы вернуться к обзору.

Просмотр сведений о сетевом подключении в RustNet TUI

Просмотр сведений о сетевом подключении в RustNet TUI

 

Справка / Просмотр условных обозначений ключей

Нажатие h (или tab) переключает экран справки.

Раздел Справки RustNet

Раздел Справки RustNet

 

На скриншоте выше вы можете увидеть:

 

В разделе справки приведено несколько примеров синтаксиса фильтров. Вы можете использовать их в качестве краткого справочника.

Примеры использования RustNet

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

1. Обнаружение всплесков трафика

Если вы заметили внезапное значительное увеличение количества байтов, передаваемых по одному соединению:

 

2. Подозрительные подключения / неизвестные хосты

Если подключение осуществляется к IP-адресу/домену, который вам неизвестен:

 

3. Мониторинг обслуживания

Если вы управляете веб-сервером:

 

Заключение

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

Мониторинг сети в режиме реального времени — важная задача системного или сетевого администратора. Он позволяет увидеть, что происходит «под капотом», выявить аномалии и понять, как ведёт себя сеть в процессе работы. RustNet TUI — это простой, но эффективный инструмент для начала работы.

Лучший способ узнать больше об этом инструменте — использовать его ежедневно. Попробуйте запустить RustNet на тестовой системе, сгенерируйте трафик (например, откройте несколько вкладок в браузере, передайте файлы), изучите фильтры и поэкспериментируйте.

Когда вы освоитесь, вы сможете расширить эту настройку, добавив скрипты, оповещения или информационные панели.

 

Ресурс:

Exit mobile version