Первый захват
Импортируйте захват, откройте сессию и разберитесь в рабочей среде.
Это руководство проведёт вас от файла захвата на диске до детально изученного запроса: импорт, парсинг, поиск сессии в рабочей среде и открытие запроса в инспекторе. Предполагается, что Traffic Jam уже запущен — инструкции по установке см. в /docs/ru/getting-started/installation/.
Импорт захвата
Откройте вкладку Captures (боковая панель → группа Capture, либо нажмите ⌘/Ctrl+1, либо g, затем c). Панель импорта принимает три вида входных данных:
- Import files — выберите один или несколько файлов захвата и keylog.
- Import folder — выберите каталог; файлы захвата и keylog внутри будут сопоставлены автоматически (сначала по точному совпадению базового имени, затем — единственный keylog в том же каталоге).
- Перетащите файлы в любое место окна — тип файлов определяется по расширению.
| Тип | Распознаваемые расширения |
|---|---|
| Захваты трафика | .pcap, .pcapng, .cap, .pcap.gz, .pcapng.gz |
| TLS keylog (формат NSS) | .sslkeylog, .keylog, .keys, .log, .txt |
| Экспорт из браузера | .har |
Эквиваленты на клавиатуре: u — выбор файлов, Shift+u — выбор каталога, n — ручное сопоставление (назначить keylog захвату вручную), i — импорт сопоставленных пар, Shift+d — очистка всех захватов. Всплывающее уведомление подводит итог (N captures imported, N HAR imported) и сообщает об ошибках по каждому файлу.
Что происходит при импорте
Бэкенд парсит захваты внутри процесса с помощью gopacket — байты захвата и ключевой материал никогда не передаются дочернему процессу, а TShark для импорта не требуется. Для каждого захвата он:
- Восстанавливает TCP-потоки и реконструирует обмены запрос/ответ HTTP/1 и HTTP/2, сохраняя порядок заголовков, предпросмотр тел (декодируются content-encoding gzip, deflate, brotli и zstd) и тайминги по каждому обмену.
- Расшифровывает поддерживаемые сессии TLS 1.2/1.3, используя ключевой материал из приложенного NSS keylog-файла или из блока Decryption Secrets Block (DSB) в формате pcapng, встроенного в сам захват; оба источника объединяются.
- Извлекает отпечатки TLS ClientHello (JA3/JA3-full, JA4/JA4r, SNI, ALPN, наборы шифров, расширения) и сертификаты сервера.
- Сохраняет распарсенную сессию в SQLite (по умолчанию
.traffic-jam/traffic-jam-v2.sqlite3, переопределяется черезTRAFFIC_JAM_DB_PATH), чтобы импортированные сессии переживали перезапуски API.
HAR-файлы соответствуют схеме HAR 1.2 и импортируются как сессии тем же способом, за исключением TLS-данных на уровне пакетов.
[!NOTE] Часть трафика невозможно восстановить из захвата пакетов. Если парсер обнаруживает потоки QUIC/HTTP3, он предупреждает, что QUIC не расшифровывается с помощью TLS keylog — отключите QUIC/HTTP3 в клиенте и повторите захват. Рукопожатия обновления WebSocket обнаруживаются и помечаются, но кадры сообщений WebSocket пока не декодируются.
Устройство рабочей среды
Окно представляет собой фиксированную оболочку с левой боковой панелью и областью содержимого:
- Боковая панель — вкладки сгруппированы в Capture (Captures, Browser capture, Android), Analysis (API lab, Timeline, Compare, TLS) и Tools (Workbench). У каждой вкладки есть акселератор
⌘/Ctrl+Nи последовательность сg(например,glдля Timeline). В нижней части боковой панели находятся Bookmarks, Shortcuts, Settings и переключатель темы; панель сворачивается в полоску иконок. - Баннер состояния бэкенда — появляется вверху только при сбое проверки доступности API («Backend unavailable») с кнопкой Retry.
- Контекстная панель — показывает название активной вкладки и её назначение.
- Строка состояния — внизу окна; показывает прогресс загрузки по каждой сессии, пока загружаются детали захвата, с элементами управления для отмены, повтора и исключения.
Вкладка Timeline (⌘/Ctrl+5) — это место, где вы читаете сессию: список запросов, упорядоченный по времени, с полем поиска («Search host, path, headers…»), фильтрами по методу/статусу/протоколу/хосту/потоку, а также режимом одиночного захвата или сравнения бок о бок с выбором захватов Baseline и Candidate. Управление живым захватом (которое требует mitmdump, tshark, Chrome и интерфейс захвата) описано в /docs/ru/capture/; вкладки анализа, построенные поверх импортированных сессий, описаны в /docs/ru/analysis/.
Открытие запроса
В Timeline перемещайте выделение клавишами j/k (или стрелками) и нажмите Enter, чтобы открыть диалог инспектора запросов. Он показывает полный обмен: стартовую строку, упорядоченные заголовки запроса и ответа, декодированные тела запроса/ответа, трассировку пакетов и приложенный TLS-отпечаток. Из диалога можно:
- переключать разделы деталей клавишами
1–8; - перемещаться по отфильтрованному списку стрелками «назад/вперёд»;
- добавить запрос в закладки (закладки собираются в панели Bookmarks на боковой панели,
gk); - назначить запрос как Baseline или Candidate для Compare либо открыть его сопоставленную пару во вкладке Compare;
- перейти к просмотру TLS-отпечатка для данного обмена.
Нажмите Esc, чтобы закрыть. Заголовки с учётными данными и конфиденциальные значения по умолчанию маскируются; при их отображении появляется баннер «Captured secrets are visible», а доступ к отображению истекает через 15 минут. Replay и экспорт всегда требуют отдельного явного включения.
[!TIP] Нажмите кнопку Shortcuts на боковой панели (или откройте диалог сочетаний клавиш), чтобы получить полный список с поиском — он включает клавиши Timeline:
/(фокус на поиск),r(сброс фильтров),f(дополнительные фильтры),v(режим одиночного просмотра/сравнения),s(поменять местами baseline и compare),a/m(назначить baseline/candidate из выделения) иp(открыть сопоставленную пару в Compare).
[!WARNING] Traffic Jam предназначен для авторизованного тестирования систем, которые вам разрешено тестировать. Захваты могут содержать действующие учётные данные и сессионные токены; храните файлы захватов и базу данных SQLite на машинах, которые вы контролируете.