Монитор сети в терминале - RustNet для тех, кто хочет видеть все соединения

16 Jun, 2026
4,406
🔱 202
👥 23

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

Демонстрация RustNet

Кому это нужно

RustNet пригодится:

  • Системным администраторам для мониторинга серверов
  • Разработчикам сетевых приложений для отладки
  • DevOps инженерам для анализа трафика в контейнерах
  • Всем, кто хочет понять, куда и зачем соединяется их компьютер

Главные возможности

1. Мониторинг в реальном времени

RustNet показывает не просто список соединений, а их динамику:

  • Все состояния TCP (ESTABLISHED, SYN_SENT, TIME_WAIT)
  • Особые состояния для QUIC, DNS, SSH
  • Активность UDP (стало ли соединение «простаивающим»)

Пример фильтрации установленных соединений:

Реклама
rustnet --no-localhost state:established

2. Глубокая инспекция пакетов (DPI)

RustNet различает:

  • HTTP/HTTPS (с извлечением SNI)
  • DNS запросы и ответы
  • SSH (версии клиентов и серверов)
  • QUIC соединения

3. Привязка к процессам

Хотите узнать, какой процесс открыл соединение? RustNet умеет:

  • Показывать имя процесса (на Linux через /proc или eBPF)
  • Фильтровать по процессу:
rustnet process:firefox

Технические детали

Проект написан на Rust и использует:

  • ratatui для терминального интерфейса
  • libpcap для захвата пакетов
  • Многопоточную архитектуру для обработки

Интересная особенность: при сборке с флагом ebpf на Linux RustNet использует eBPF для более эффективного мониторинга, хотя и с некоторыми ограничениями (имена процессов обрезаются до 16 символов).

Как установить

Самый простой способ через Cargo:

cargo install rustnet-monitor

Для Linux с eBPF поддержкой:

cargo install rustnet-monitor --features ebpf

Или через Docker:

docker run --rm -it --cap-add=NET_RAW --cap-add=NET_ADMIN --net=host \
  ghcr.io/domcyrus/rustnet:latest

Когда RustNet особенно полезен

  1. Отладка сетевых приложений — видите все соединения вашего сервиса
  2. Поиск утечек — какие сервисы куда соединяются без вашего ведома
  3. Анализ безопасности — кто пытается подключиться к вашему серверу
  4. Оптимизация — какие соединения «висят» слишком долго

RustNet — это тот инструмент, который стоит добавить в арсенал каждому, кто работает с сетями. Он сочетает:

  • Мощность низкоуровневых инструментов
  • Удобство терминального интерфейса
  • Гибкость фильтрации

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

Попробуйте и напишите в комментариях, как вы используете RustNet в своей работе!

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.