Сведения о процессе
Просматривайте командную строку, родительские процессы, открытые файлы и связанные сетевые соединения.
prtv0.5.0
Диагностика сети на macOS и Linux
Просматривайте сетевые соединения, процессы и SSH-туннели в терминале. Фильтруйте обновляемую таблицу для поиска конфликтов портов или выгружайте результаты для скриптов.
Rust · MIT · Последнее обновление
prt watch 3000 5432 8080
:3000 UP node (2410) since 4m
:5432 UP postgres (1901) since 4m
:8080 DOWN since 12s
prt
Просматривайте командную строку, родительские процессы, открытые файлы и связанные сетевые соединения.
Таблица выделяет новые и закрытые соединения. Фильтруйте по порту, протоколу, процессу, состоянию или пользователю.
Выгружайте снимок в JSON/CSV, поток NDJSON или наблюдайте за выбранными портами разработки.

Диагностика сети на macOS и Linux
Запустите prt и найдите нужный порт или процесс.
Откройте детали и топологию процесса, затем проверьте связанные SSH-туннели.
01 / Установка
cargo install prt02 / README
Настройка, примеры использования и справочник API.
prt — управляемый с клавиатуры терминальный интерфейс для просмотра сетевых соединений, поиска конфликтов портов, исследования процессов и управления SSH-туннелями в macOS и Linux. В нём есть живая таблица соединений, фильтры, история изменений, топология процессов, оповещения и форматы для скриптов.
13-секундное демо воспроизводится прямо в README. Также можно открыть неподвижный кадр или прочитать текстовое описание демо. Запись воспроизводится из файла docs/demo.tape.
lsof/proccargo install prt
prt
Запустите sudo prt, если операционная система скрывает процессы других пользователей. Для обычного просмотра повышенные права не нужны.
Сборка текущего исходного кода:
git clone https://github.com/rekurt/prt.git
cd prt
cargo install --path crates/prt
| Задача | Что делает prt |
|---|---|
| Найти конфликт портов | Ищет по порту, процессу, протоколу, состоянию, сервису, PID и пользователю |
| Следить за изменениями | Обновляет данные каждые две секунды и выделяет новые и закрытые соединения |
| Исследовать процесс | Показывает командную строку, дерево родителей, CPU, память, открытые файлы и соединения |
| Посмотреть топологию | Рисует дерево процесс → локальный порт → удалённый адрес |
| Найти подозрительные слушатели | Помечает их [!] и поддерживает отдельный фильтр |
| Работать с контейнерами | Показывает контейнер Docker или Podman, которому принадлежит процесс |
| Управлять SSH-переадресацией | Читает SSH config, создаёт, редактирует, перезапускает и сохраняет туннели |
| Автоматизировать проверки | Экспортирует снимок JSON/CSV или непрерывный поток NDJSON |
Также prt оценивает общую сетевую скорость, сопоставляет известные порты с сервисами, поддерживает правила оповещений и контекстные действия: завершение процесса, блокировку адреса, копирование, трассировку и SSH-переадресацию.
prt # интерактивный интерфейс
prt --lang ru # русский язык (также en и zh)
prt --export json # один JSON-снимок и выход
prt --export csv # один CSV-снимок и выход
prt --json # непрерывный поток NDJSON
prt watch 80 443 5432 # компактный UP/DOWN-монитор выбранных портов
sudo prt # показать доступные root процессы
--export создаёт конечный снимок. --json продолжает работать и на каждом цикле сканирования выводит по одному объекту на соединение. Поток корректно останавливается, когда следующая команда в конвейере, например head, закрывает канал.
# Сохранить снимок для сравнения или отчёта об инциденте.
prt --export json > ports.json
# Вывести имена процессов из живого потока.
prt --json | jq -r '.process.name'
# Следить за портами разработки.
prt watch 3000 5432 8080
Tab и Shift+Tab переключают три основных раздела:
| Раздел | Назначение | Подвкладки |
|---|---|---|
| Соединения | Сортируемая таблица и дополнительная панель подробностей | Нет |
| Процессы | Данные выбранного процесса и его сетевая топология | Детали, Топология |
| SSH | Хосты из SSH config и управляемые туннели | Хосты, Туннели |
Нажмите ?, чтобы открыть встроенную справку. Если неудобно запоминать сочетания, нажмите : и найдите действие в палитре команд.
| Клавиша | Действие |
|---|---|
? |
Открыть справку; любая клавиша закрывает её |
q |
Выйти |
Tab / Shift+Tab |
Следующий / предыдущий раздел |
Space |
Контекстное меню действий |
: |
Палитра команд с поиском |
/ |
Поиск и фильтр; двойной Esc очищает непустой фильтр |
p |
Приостановить или продолжить автообновление |
r |
Обновить сейчас |
s |
Ввести пароль sudo для доступа к дополнительным процессам |
L |
Сменить язык интерфейса |
j / k, ↑ / ↓ |
Перемещение и прокрутка |
g / G, Home / End |
В начало / в конец |
K / Delete |
Запросить завершение выбранного процесса |
c |
Скопировать выбранное соединение |
Клавиши отдельных разделов:
| Контекст | Клавиша | Действие |
|---|---|---|
| Соединения | Enter |
Открыть выбранный процесс в разделе «Процессы» |
| Соединения | d |
Показать или скрыть нижнюю панель подробностей |
| Соединения | o / O |
Следующий столбец сортировки / обратный порядок |
| Процессы | [ / ] |
Переключить «Детали» и «Топологию» |
| SSH | [ / ] |
Переключить «Хосты» и «Туннели» |
| SSH Хосты | Enter |
Открыть форму туннеля для выбранного хоста |
| SSH Хосты | r |
Перечитать SSH config и конфигурацию prt |
| SSH Туннели | n / e |
Создать / изменить туннель |
| SSH Туннели | K / r / s |
Завершить / перезапустить / сохранить туннели |
Нажмите /, чтобы отфильтровать таблицу. Обычный текст сопоставляется с данными соединения; псевдонимы new, gone и active фильтруют жизненный цикл. Введите ! или suspicious, чтобы увидеть только соединения, отмеченные эвристиками безопасности.
Новые строки зелёные, закрытые — тускло-красные и остаются в таблице пять секунд. Состояние соединения и возраст отображаются текстом, но различие new/gone пока передаётся цветом.
Необязательный файл конфигурации: ~/.config/prt/config.toml. Если файла нет, используются значения по умолчанию. Ошибка разбора выводится пользователю, после чего также применяются значения по умолчанию.
# Названия сервисов для портов.
[known_ports]
3000 = "frontend"
5432 = "postgres"
# Звуковой сигнал при новом SSH-соединении.
[[alerts]]
port = 22
action = "bell"
# Подсветка слушающих процессов Python.
[[alerts]]
process = "python"
state = "LISTEN"
action = "highlight"
# Дополнительный SSH-хост.
[[ssh_hosts]]
alias = "staging"
hostname = "staging.example.com"
user = "deploy"
port = 22
Условия оповещений: port, process, state, connections_gt. Действия: bell и highlight. Звуковой сигнал срабатывает только для новых записей.
Раздел SSH также читает ~/.ssh/config. Экран туннелей сохраняет конфигурацию в секцию [[ssh_tunnels]] файла prt.
Сканирование и навигация ничего не изменяют в системе. Изменяющие состояние действия находятся в меню Space:
ptrace в Linux или доступа к dtruss в macOS;ssh с параметрами из формы туннеля.Перед продолжением проверьте подтверждение или заполненную форму. Правила сообщения об уязвимостях описаны в политике безопасности.
Если терминальный интерфейс несовместим со вспомогательной технологией, наиболее предсказуемый машиночитаемый вариант — prt --export json.
Репозиторий — Rust workspace из двух пакетов:
crates/
├── prt-core/ сканирование, отслеживание, фильтры, оповещения,
│ конфигурация, процессы, контейнеры, i18n и платформы
└── prt/ CLI, интерфейс ratatui, ввод, потоковый и watch-режимы,
трассировка и SSH-туннели
cargo build --workspace
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings
cargo fmt --all -- --check
Документация библиотеки доступна на docs.rs для prt-core, правила участия — в CONTRIBUTING.md.
Проект распространяется по лицензии MIT.
Если prt оказался полезен, можно поставить проекту звезду на GitHub.
prt
03 / Все проекты
Библиотеки, консольные инструменты и приложения.