Назад к обновлениям
New releaseJul 26, 2026

netwatch v0.27.0

Диагностика сети в реальном времени в вашем терминале. Одна команда, нулевая настройка, мгновенная видимость.

Поделиться

NetWatch

Сетевой монитор для терминала, который помогает определить процесс, стоящий за соединениями, читает TLS, ключи от которого есть у вас, и сообщает, что не так и как это исправить.

crates.io downloads Release Packaging status Platform License

Terminal Trove Tool of The Week

Плотный вид NetWatch: зеркальный график пропускной способности шрифтом Брайля, где загрузка выше оси, а отдача ниже, скорости по интерфейсам со спарклайнами, бюджеты задержки на четыре перехода и таблица соединений с состоянием TCP в ядре для выбранного сокета

netwatch --view dense. Четыре блока, без оформления, каждая привязка клавиш на границе. Загрузка растёт вверх от оси, отдача — вниз.

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

Установка

brew install netwatch                 # macOS / Linux
nix-shell -p netwatch                 # NixOS / Nix
paru -S netwatch-tui-bin              # Arch
scoop install netwatch                # Windows (needs Npcap)
cargo install netwatch-tui            # anywhere with Rust and libpcap headers

Готовые бинарники — на странице релизов. Бинарники для Linux x86_64/aarch64 статические, с встроенным libpcap, так что им ничего не нужно устанавливать. Есть также сборка для armv5te для старых NAS на Marvell Kirkwood (например, Iomega ix2-dl) под Debian — libpcap встроен так же, но она линкуется с glibc и libatomic, поэтому требует Debian 12 (bookworm) или новее с установленным libatomic1. В Windows сначала нужно установить Npcap; для сборки из исходников нужен libpcap-dev (Debian), libpcap-devel (Fedora) или libpcap (Arch). Подробности в справочнике по установке.

Запуск

netwatch              # interfaces, connections, config. No privileges.
sudo netwatch         # enables capture where elevated access is required
netwatch --lite       # one 80x24 screen
netwatch --view dense # four boxes, 130x44 or larger

1–9 и 0 переключают вкладки, V циклически переключает три вида, ? показывает все клавиши. Чтобы запускать без sudo в Linux, один раз выдайте capabilities: sudo setcap 'cap_net_raw,cap_bpf,cap_perfmon+eip' "$(which netwatch)" (почему и когда это повторять).

Что он делает

Диагностика (вкладка 9). Базовые уровни по каждой метрике привязаны к сети, которая их обучила; для готовности требуется 1 800 различных выборок, поэтому время обучения зависит от частоты проб. 25 каталогизированных правил, из них 18 реализованных детекторов Diagnose и семь ожидают интеграции. Состояние покрытия во время выполнения показывает, какие входные данные доступны, обучаются, устарели или не измеряются. Граф подавления объединяет мёртвый шлюз и его последствия в одну находку. Каждая причина ранжируется по проверкам, которые отделили её от остальных. Автоматическое изменение резолвера в TUI остаётся недоступным; Diagnose предоставляет ручные шаги. Явная команда резолвера для Linux поддерживает временные изменения администратором подтверждённых неуправляемых обычных файлов; управляемые резолверы остаются неподдерживаемыми. Демо по-прежнему имитирует применение и проверенное восстановление. Существующие журналы проверяются при запуске, а нечитаемые или повреждённые записи восстановления блокируют дальнейшие изменения хоста. Проблема закрывается только тогда, когда собственное условие успеха правила выполнялось. Никакой модели не задействовано. Как это работает, дизайн.

Медленный резолвер на 33-кратном превышении базового уровня, три ранжированные причины, исправление по нажатию клавиши и проблема, закрывающаяся сама собой, как только dns.rtt_p50 держится ниже 5 мс в течение 60 секунд

Расшифровка TLS, который вы контролируете. Направьте SSLKEYLOGFILE любого клиента на NetWatch, и открытый текст его сессий TLS 1.3 декодируется во вкладке Packets. Тот же механизм, что и в Wireshark, поэтому он работает только для трафика, ключи от которого есть у вас. Расшифровка TLS.

sudo netwatch                                              # open Packets (4)
SSLKEYLOGFILE=/tmp/keys curl https://example.com           # any client that exports keys
# filter the tab with:  decrypted:true

Дрейф исходящего трафика. Вкладка Egress (0) изучает, к каким хостам, автономным системам и портам обращается каждый процесс. Enter повышает этот базовый уровень до правила; следующее новое назначение приходит как drift с оповещением. Он наблюдает и никогда не блокирует. Вердикты — sni, ip, asn, ech, drift, no rule и undeclared при strict = true, потому что «совпало по AS» допускает всё, что запускает гиперскейлер, и таблица должна это говорить. Язык правил и схема экспорта.

Атрибуция процессов. Опрос сокетов платформы, PKTAP в macOS и опциональный kprobe eBPF в Linux (функция ebpf). Атрибуция может отсутствовать или быть устаревшей, особенно для короткоживущих потоков; Windows использует собственные сетевые/процессные инструменты. Разрешения.

Категории