Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
rustnet — Мониторинг сети по каждому процессу для вашего терминала с глубоким анализом пакетов. Кроссплатформенный, изолированный. | Kitploit
Инструменты/GitHubGitHub/domcyrus/rustnet
Сниффинг и анализ пакетовБезопасность контейнеровФорензикаСбор информацииБезопасность облачных средРазведка угрозАнализ DNSАнализ Журналов
GitHubdomcyrus/rustnet

rustnet

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

Репозиторий
4.8k2231710 ч 49 мин назадПроверено Kitploit
Сайт

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

RustNet

Мониторинг сети в разрезе процессов для вашего терминала: живые соединения TCP, UDP и QUIC с глубоким анализом пакетов, по умолчанию в песочнице.

Built With Ratatui Build Status Crates.io GitHub Stars License GitHub release Docker Image

English | 简体中文 | 日本語

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

Просмотр в реальном времени каждого соединения вашей машины: кому оно принадлежит и какой протокол используется. Без tcpdump, проброса X11 и root-каналов.

Возможности

  • Привязка к процессу: каждое соединение TCP, UDP и QUIC сопоставляется с владеющим им процессом: через eBPF на Linux, PKTAP на macOS, ETW с автоматическим резервным вариантом IP Helper на Windows и нативные API на FreeBSD. Сведения включают PID, исполняемый файл, имена пользователя/группы, уверенность сопоставления и ограниченную цепочку родительских процессов на всех платформах. Wireshark и tcpdump на это не способны; netstat / ss не показывают состояние в реальном времени.
  • Глубокий анализ пакетов: распознавание HTTP, HTTPS/TLS с SNI, DNS, SSH, FTP, QUIC, MQTT, BitTorrent, STUN, NTP, mDNS, LLMNR, DHCP, SNMP, SSDP и NetBIOS без внешних диссекторов.
  • Аннотированный экспорт PCAPNG: --pcapng-export записывает захват, готовый к открытию в Wireshark: процесс, PID, направление, DPI/SNI и GeoIP встраиваются в виде комментариев к каждому пакету. Откройте его в Wireshark — каждый пакет уже будет содержать имя своего процесса, без постобработки. Также доступен классический --pcap-export с боковым JSONL-файлом для офлайн-корреляции.
  • Изоляция в песочнице: Landlock (Linux 5.13+), Seatbelt (macOS), сброс привилегий через токен и блокировка дочерних процессов через job object (Windows). Привилегии сбрасываются сразу после инициализации libpcap. См. SECURITY.md.
  • Сетевые метрики: время кругового обхода (RTT) в реальном времени для TCP, квитирования QUIC, DNS-ответов и ICMP echo, а также детектирование повторных передач TCP, пакетов вне порядка и быстрых повторных передач.
  • Умный жизненный цикл соединений: тайм-ауты с учётом протокола и индикаторы устаревания «белый → жёлтый → красный». Клавиша t оставляет исторические (закрытые) соединения видимыми для анализа инцидентов.
  • Фильтрация в стиле Vim/fzf: port:, src:, dst:, sni:, process:, state:, proto:, а также регулярные выражения через /(?i)pattern/.
  • Обогащение GeoIP: определение страны по локальной базе MaxMind GeoLite2. Без сетевых запросов.
  • Определение устройств в локальной сети: MAC-адрес и производитель (из встроенной базы IEEE OUI) для узлов в пределах канала и шлюза; определяется пассивно по ARP-трафику и отображается на панели сведений.
  • Привязка Kubernetes (опциональная возможность kubernetes): соединения сопоставляются с их подом, пространством имён и контейнером и отображаются на панели сведений, в экспорте JSON/PCAPNG и в фильтрах pod:, ns:, container:. Возможность включена в официальном Docker-образе; в кластере используйте плагин kubectl-rustnet, чтобы запустить инструмент как эфемерный отладочный под. См. USAGE.md.
  • Кроссплатформенность: Linux, macOS, Windows, FreeBSD.

Зачем RustNet?

RustNet закрывает разрыв между простыми инструментами просмотра соединений (netstat, ss) и анализаторами пакетов (Wireshark, tcpdump):

  • Привязка к процессу: видно, какое приложение владеет каждым соединением. Wireshark не может этого дать, потому что видит только пакеты, а не сокеты.
  • Ориентация на соединения: отслеживание состояний, пропускной способности и протоколов по каждому соединению в реальном времени
  • Дружелюбность к SSH: TUI работает через SSH, поэтому можно быстро увидеть, что происходит на удалённом сервере, без проброса X11 и захвата трафика

RustNet дополняет инструменты захвата пакетов. Используйте RustNet, чтобы видеть, что устанавливает соединения. Для прямой проверки в Wireshark --pcapng-export записывает живые комментарии к пакетам (best-effort) с контекстом PID/процесса. Для корреляции после завершения используйте --pcap-export вместе с боковым JSONL-файлом и опциональным скриптом scripts/pcap_enrich.py. Подробнее см. Экспорт PCAP и Сравнение с похожими инструментами.

Создан на основе ratatui, libpcap, eBPF (libbpf-rs), DashMap, crossbeam, ring, MaxMind GeoLite2 и Landlock. Полный разбор зависимостей см. в ARCHITECTURE.md.

Расширенная идентификация процессов через eBPF (по умолчанию в Linux)

По умолчанию в Linux RustNet использует программы eBPF в ядре для более производительной идентификации процессов с меньшими накладными расходами.

Имена процессов:

  • eBPF записывает TGID лидера группы процессов и имя comm (поле ядра ограничено 16 символами), а не имя действующего потока, поэтому многопоточные приложения показывают имя основного процесса вместо имён потоков вроде «Socket Thread»
  • Затем RustNet заново определяет текущее имя через /proc/<tgid>/comm, восстанавливает усечённые в comm имена по имени исполняемого файла (например, «chromium-browse» становится «chromium-browser») и определяет полный путь к исполняемому файлу, отображаемый в представлении Details
  • Недолговечные процессы, завершившиеся до запуска такого обогащения, сохраняют записанное eBPF 16-символьное имя

Резервное поведение:

  • Если eBPF не удаётся загрузить или не хватает прав, RustNet автоматически переключается на стандартную идентификацию процессов на основе procfs
  • Стандартный режим так же определяет имена через сканирование procfs, но с более высокой нагрузкой на CPU
  • eBPF включён по умолчанию; специальные флаги сборки не нужны

Чтобы отключить eBPF и использовать режим только с procfs, соберите с:

root@kitploit:~
cargo build --release --no-default-features

Техническую информацию см. в ARCHITECTURE.md.

Активность процессов и мониторинг интерфейсов

RustNet сочетает учёт трафика на уровне процессов со статистикой сетевых интерфейсов в реальном времени:

  • Вкладка Overview: показывает активные интерфейсы с текущими скоростями, ошибками и потерями
  • Вкладка Activity (клавиша 3): ранжирует процессы по исходящему (TX) или входящему (RX) трафику, включая накопленный и скользящий трафик, скорости, доли, соединения и адреса назначения
  • Сценарий безопасности: отсортируйте по исходящему трафику (Egress), выявите неожиданного отправителя, затем изучите его основной удалённый узел и накопленный трафик, даже если соединение уже закрыто
  • Сведения об интерфейсе (клавиша i на вкладке Activity): показывает исходные подробные метрики для каждого интерфейса
  • Кроссплатформенность: Linux (sysfs), macOS/FreeBSD (getifaddrs), Windows (GetIfTable2 API)
  • Умная фильтрация: Windows автоматически исключает виртуальные и фильтрующие адаптеры

Документацию по интерпретации статистики интерфейсов и поведению на конкретных платформах см. в USAGE.md.

Доступные метрики:

  • Всего байт и пакетов (RX/TX)
  • Счётчики ошибок (приём и передача)
  • Потери пакетов (переполнение очередей)
  • Коллизии (устаревший показатель, редко используется в современных сетях)

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

Скриншоты

Обзор
Таблица соединений с данными в реальном времени и спарклайнами
Сведения
SNI, шифр, GeoIP, DPI по каждому соединению
График
Диаграмма трафика, распределение приложений, топ процессов
Активность
Исходящий/входящий трафик процессов, охват за 60 секунд, привязка и удалённые узлы

Быстрый старт

Установка

Homebrew (macOS / Linux):

root@kitploit:~
brew install rustnet

Ubuntu (22.04 LTS+) / Linux Mint 21+ / Pop!_OS 22.04+:

root@kitploit:~
sudo add-apt-repository ppa:domcyrus/rustnet
# on Pop!_OS: sudo apt-manage add ppa:domcyrus/rustnet
sudo apt update && sudo apt install rustnet

Fedora (42+):

root@kitploit:~
sudo dnf copr enable domcyrus/rustnet
sudo dnf install rustnet

openSUSE Tumbleweed:

root@kitploit:~
sudo zypper addrepo https://download.opensuse.org/repositories/home:/domcyrus:/rustnet/openSUSE_Tumbleweed/home:domcyrus:rustnet.repo
sudo zypper refresh
sudo zypper install rustnet

Arch Linux:

root@kitploit:~
sudo pacman -S rustnet

Nix / NixOS:

root@kitploit:~
nix-shell -p rustnet
# Then inside the shell: sudo rustnet

From crates.io:

root@kitploit:~
cargo install rustnet-monitor

Windows (Chocolatey):

root@kitploit:~
# Run in Administrator PowerShell
# Requires Npcap (https://npcap.com) installed with "WinPcap API-compatible Mode" enabled
choco install rustnet

Другие платформы:

  • FreeBSD: скачайте из релизов rustnet-bsd
  • Docker, сборка из исходников, другие дистрибутивы Linux: подробные инструкции см. в INSTALL.md

Запуск RustNet

Захват пакетов требует повышенных привилегий:

root@kitploit:~
# Quick start (all platforms)
sudo rustnet

# Linux: Grant capabilities to run without sudo (recommended)
sudo setcap 'cap_net_raw,cap_bpf,cap_perfmon+eip' $(which rustnet)
rustnet

Часто используемые параметры:

root@kitploit:~
rustnet -i eth0              # Specify network interface
rustnet --show-localhost     # Show localhost connections
rustnet --no-resolve-dns     # Disable reverse DNS lookups (enabled by default)
rustnet -r 500               # Set refresh interval (ms)
rustnet --theme tokyo-night  # Theme: muted (default), vivid, catppuccin-mocha, tokyo-night, gruvbox, nord
rustnet --pcapng-export capture.pcapng  # Annotated PCAPNG for Wireshark

Тему и переопределения отдельных цветов также можно задать в ~/.config/rustnet/config.toml; приоритет имеет --theme. Схему см. в USAGE.md.

Подробную настройку прав см. в INSTALL.md, полный список параметров — в USAGE.md.

Если вы задали capabilities, но TUI по-прежнему показывает eBPF unavailable, см. eBPF недоступен, несмотря на заданные capabilities в разделе устранения неполадок.

Управление с клавиатуры

КлавишаДействие
qВыход (нажмите дважды для подтверждения)
Ctrl+CНемедленный выход
xОчистить все соединения (нажмите дважды для подтверждения)
Tab или ]Следующая вкладка
Shift+Tab или [Предыдущая вкладка
1–5Переход к Overview / Details / Activity / Graph / Help
↑/k ↓/jНавигация вверх/вниз
g GПерейти к первому/последнему соединению
EnterПросмотр сведений о соединении
EscНазад или сброс фильтра
cКопировать удалённый адрес
pПереключить имена служб/порты
dПереключить hostnames/IP в Overview или Egress/Ingress в Activity
s SПеребор столбцов сортировки / переключение направления
aПереключить группировку процессов
SpaceРазвернуть/свернуть группу процессов
←/→ или h/lСвернуть/развернуть группу
PageUp/PageDown или Ctrl+B/FНавигация по страницам
tПереключить исторические (закрытые) соединения
iПереключить сведения о системе в Overview или сведения об интерфейсе в Activity
rСбросить представление (группировку, сортировку, фильтр)

Подробное описание клавиш и советы по навигации см. в USAGE.md.

Фильтрация и сортировка

Быстрые примеры фильтрации:

root@kitploit:~
/google                        # Search for "google" anywhere
/port:443                      # Filter by port
/process:firefox               # Filter by process
/state:established             # Filter by connection state
/dport:443 sni:github.com      # Combine filters

Сортировка:

  • Нажимайте s, чтобы перебирать сортируемые столбцы (Process, Addresses, Service, Application, State, Bandwidth)
  • Нажимайте S (Shift+s), чтобы изменить направление сортировки
  • Поиск пожирателей трафика: нажимайте s, пока не появится «Bandwidth Total ↓» (сортировка по суммарной скорости приёма и передачи)

Полный синтаксис фильтрации и руководство по сортировке см. в USAGE.md.

Продвинутые примеры фильтрации

Фильтры по ключевым словам:

  • port:44 - порты, содержащие «44» (443, 8080, 4433)
  • sport:80 - исходные порты, содержащие «80»
  • dport:443 - порты назначения, содержащие «443»
  • src:192.168 - исходные IP, содержащие «192.168»
  • dst:github.com - адреса назначения, содержащие «github.com»
  • process:ssh - имена процессов, содержащие «ssh»
  • sni:api - SNI-имена хостов, содержащие «api»
  • app:openssh - SSH-соединения, использующие OpenSSH
  • state:established - фильтр по состоянию протокола
  • proto:tcp - фильтр по типу протокола

Фильтрация по состоянию:

  • state:syn_recv - полуоткрытые соединения (обнаружение SYN-флуда)
  • state:established - только установленные соединения
  • state:quic_connected - активные QUIC-соединения
  • state:dns_query - соединения DNS-запросов

Комбинированные примеры:

  • sport:80 process:nginx - соединения Nginx с порта 80
  • dport:443 sni:google.com - HTTPS к Google
  • process:firefox state:quic_connected - QUIC-соединения Firefox
  • dport:22 app:openssh state:established - установленные соединения OpenSSH
Жизненный цикл соединений и визуальные индикаторы

RustNet использует «умные» тайм-ауты и визуальные предупреждения перед удалением соединений:

Визуальные индикаторы устаревания:

  • Белый: активно (< 75% тайм-аута)
  • Жёлтый: устарело (75-90% тайм-аута)
  • Красный: критично (> 90% тайм-аута)

Тайм-ауты с учётом протокола:

  • HTTP/HTTPS: 10 минут (поддерживает keep-alive)
  • SSH: 30 минут (длительные сеансы)
  • Обычный установленный TCP: 5 минут
  • Подключённый QUIC: 3 минуты (или тайм-аут простоя из transport-param пира, если он присутствует); Initial/Handshaking: 60 секунд
  • DNS: 30 секунд
  • TCP CLOSED: 15-секундная архивная отсрочка

Пример: HTTP-соединение становится жёлтым через 7.5 мин, красным через 9 мин и удаляется через 10 мин.

Полные сведения о тайм-аутах см. в USAGE.md.

Документация

  • INSTALL.md - подробные инструкции по установке для всех платформ, настройка прав и устранение неполадок
  • USAGE.md - полное руководство по использованию, включая параметры командной строки, фильтрацию, сортировку и журналирование
  • SECURITY.md - функции безопасности, включая песочницу Landlock и управление привилегиями
  • ARCHITECTURE.md - техническая архитектура, реализации для платформ и детали производительности
  • CONTRIBUTING.md - порядок внесения вклада, требования к качеству и правила проекта
  • PROFILING.md - руководство по профилированию производительности с настройкой flamegraph и советами по оптимизации
  • ROADMAP.md - запланированные функции и будущие улучшения
  • RELEASE.md - процесс выпуска релизов для мейнтейнеров

Вклад в проект

Вклад приветствуется! Пожалуйста, ознакомьтесь с CONTRIBUTING.md — там описано, как внести свой вклад.

Список людей, внёсших вклад в проект, см. в CONTRIBUTORS.md.

Лицензия

Проект распространяется по лицензии Apache License, Version 2.0 — подробности см. в файле LICENSE.

Благодарности

  • Терминальный интерфейс создан с помощью ratatui
  • Захват пакетов на базе libpcap
  • Вдохновлён такими инструментами, как tshark/wireshark/tcpdump, sniffnet, netstat, ss, iftop и bandwhich
  • Часть кода написана «вайб-кодингом» (OMG) / да пребудут с вами LLM-боги

Перенос документации

Некоторые разделы перенесены в отдельные файлы для лучшей организации:

  • Настройка прав: теперь в INSTALL.md - Настройка прав
  • Инструкции по установке: теперь в INSTALL.md
  • Подробное использование: теперь в USAGE.md
  • Детали архитектуры: теперь в ARCHITECTURE.md
Скачать инструмент
/
Войти в режим фильтра
hПереключить справку