В мобильной среде Termux нередко возникает задача понять, что именно происходит в сети: к каким хостам обращается приложение, как формируется трафик, почему возникают задержки или ошибки, и какие протоколы участвуют в обмене. На практике надежный и воспроизводимый подход строится вокруг tcpdump для сбора трафика и дальнейшего анализа в Wireshark по сохранённым файлам pcap.
Ниже — профессиональный, прикладной сценарий автоматизированного сбора и анализа пакетов в Termux: от установки зависимостей до практичных фильтров, пакетной выгрузки и безопасных рабочих процедур.
Правовые и этические рамки
Сбор сетевых данных — чувствительная деятельность. В рамках законодательства РФ и корпоративных политик применяйте инструменты только:
- на собственных устройствах и в собственной сети;
- при наличии явного разрешения (например, в рамках тестирования или отладки, согласованной задачи);
- без перехвата данных третьих лиц, если на это нет оснований и согласий.
Рекомендуемый принцип: фиксируйте трафик, относящийся к вашей системе/вашей инфраструктуре, и ограничивайте сбор временными окнами.
Что понадобится
- Termux (Android)
- Инструменты: tcpdump, Wireshark (обычно на ПК), утилиты для файлов и автоматизации
- Компьютер для открытия pcap в Wireshark (Windows/Linux/macOS)
Важно: Wireshark на самом телефоне работает не всегда удобно. Надёжный путь — собрать трафик в Termux и открыть pcap на ПК.
Установка tcpdump и зависимостей в Termux
Начните с обновления пакетов и установки tcpdump. В Termux это обычно выглядит так:
pkg update -y
pkg upgrade -y
pkg install -y tcpdump
Для удобной работы с файлами и временем могут пригодиться дополнительные утилиты (по ситуации):
pkg install -y coreutils util-linux
Проверка доступности tcpdump:
tcpdump --version
Понимание интерфейсов и выбор точки захвата
Трафик бывает на разных интерфейсах: обычно это Wi‑Fi (например, wlan0) или мобильная сеть (иногда rmnet*). Узнать активные интерфейсы можно через ip:
ip link show
Для быстрого старта полезно вывести краткие данные о выбранном интерфейсе и попробовать «сухой» сбор в коротком окне.
Базовый захват трафика (pcap)
Сохраняйте трафик в pcap — это стандартный формат для Wireshark. Пример: захват на интерфейсе wlan0 длительностью 30 секунд:
mkdir -p /sdcard/pcap
cd /sdcard/pcap
INTERFACE=wlan0
TIMEOUT=30
OUT_FILE="capture_${INTERFACE}_$(date +%Y%m%d_%H%M%S).pcap"
tcpdump -i "$INTERFACE" -s 0 -w "$OUT_FILE" -G "$TIMEOUT" -W 1
Пояснение ключевых опций:
-i— интерфейс-s 0— захват полного пакета (без усечения)-w— запись в pcap-Gи-W— разбиение по времени (в примере — один файл)
Автоматизация: сбор с метаданными и понятными именами файлов
Если вы регулярно анализируете сеть, удобно добавлять метки: интерфейс, время, цель (например, домен или IP) и ограничение по фильтру. Ниже пример скрипта, который создаёт pcap-файл с именем, отражающим фильтр.
Создайте файл, например /data/data/com.termux/files/home/pcap_capture.sh:
cat > pcap_capture.sh <<'EOF'
#!/data/data/com.termux/files/usr/bin/bash
set -euo pipefail
INTERFACE="${1:-wlan0}"
DURATION="${2:-30}"
FILTER="${3:-}"
OUT_DIR="/sdcard/pcap"
mkdir -p "$OUT_DIR"
TS="$(date +%Y%m%d_%H%M%S)"
SANITIZED_FILTER="$(echo "$FILTER" | tr ' /:"' '' | tr -cd '[:alnum:]_-.')"
if [ -n "$FILTER" ]; then
OUT_FILE="capture_${INTERFACE}_${SANITIZED_FILTER}_${TS}.pcap"
else
OUT_FILE="capture_${INTERFACE}_${TS}.pcap"
fi
echo "[+] Interface: $INTERFACE"
echo "[+] Duration: $DURATION sec"
[ -n "$FILTER" ] && echo "[+] Filter: $FILTER"
echo "[+] Output: $OUT_DIR/$OUT_FILE"
tcpdump -i "$INTERFACE" -s 0 -w "$OUT_DIR/$OUT_FILE" -G "$DURATION" -W 1 ${FILTER:+$FILTER}
EOF
chmod +x pcap_capture.sh
Запуск:
./pcap_capture.sh wlan0 30 "tcp port 443"
Фильтр передаётся как строка в стиле tcpdump. Важно подбирать фильтры корректно, чтобы не собирать лишние данные.
Фильтрация: что собирать и что исключать
Чем точнее фильтр, тем меньше размер pcap и тем быстрее анализ в Wireshark.
- Только TCP:
tcp
- Только HTTPS (443):
tcp port 443
- Только трафик к конкретному IP:
host 192.0.2.10
- Комбинация: HTTPS к конкретному IP:
tcp port 443 and host 192.0.2.10
- Исключить лишний мусор (примерно): исключение ICMP:
not icmp
Практический совет: начинайте с широкого окна, затем сужайте фильтры под конкретную задачу.
Сбор на ограниченном объёме (контроль размера и усечение)
При нестабильной сети pcap может быстро разрастаться. Для управляемости используйте размер захвата -s. Например, захватывать первые 96 байт полезной части (достаточно для многих заголовков):
INTERFACE=wlan0
DURATION=30
OUT_FILE="capture_trunc_${(date +%Y%m%d_%H%M%S)}.pcap"
tcpdump -i "$INTERFACE" -s 96 -w "/sdcard/pcap/$OUT_FILE" -G "$DURATION" -W 1 tcp port 443
Если цель — восстановить полезную часть протокола, возможно потребуется -s 0.
Отображение в реальном времени и параллельное логирование
Для диагностических задач полезно видеть, что именно «летит» в моменте. Например, параллельно вывести краткую информацию на экран и сохранить pcap:
tcpdump -i wlan0 -s 0 -w /sdcard/pcap/live_demo.pcap tcp port 443
Если нужно добавить фильтрацию вывода в консоль, используйте stdout-логирование на стороне shell. Важно не усложнять пайплайны так, чтобы не потерять pcap целиком.
Перенос pcap на компьютер и открытие в Wireshark
Далее вы открываете файл .pcap в Wireshark на ПК. Метод переноса зависит от ваших привычек: USB, облачное хранилище, файловый менеджер или adb.
Обычно удобно найти файлы в каталоге /sdcard/pcap и скопировать их в рабочую папку на компьютере.
В Wireshark:
- Откройте File -> Open и выберите pcap
- Используйте строку фильтрации, например
tcp.port == 443 - Проверяйте потоки: Follow -> TCP Stream (для TCP)
Частые сценарии анализа
Вот типовые проверки, которые помогают быстрее получить ответ по проблеме:
- Проверка рукопожатия TCP: есть ли SYN/SYN-ACK/ACK, нет ли повторных попыток.
- Сегментация и ретрансляции: анализ повторов и задержек.
- HTTP(S) поверх TCP: в зависимости от шифрования — акцент на метаданные (SNI, сертификаты, адреса, параметры сессии).
- DNS-решение: если видно UDP/53 и запросы — оценка корректности резолвинга.
Типичные ошибки при сборе
- Неправильный интерфейс: трафик не попадает, если выбрать не тот
-i. - Слишком короткое окно: можно не поймать целевую операцию.
- Чрезмерно широкий сбор: pcap становится большим и анализ затягивается.
- Усечение слишком маленьким -s: теряются поля, нужные для разборов.
Рекомендованные практики безопасности
- Ограничивайте время сбора: используйте параметры длительности.
- Сужайте фильтры под задачу (IP/порт/протокол).
- Не храните pcap дольше необходимости и не передавайте файлы без нужды.
- Если требуется рабочая изоляция — допустимо создавать локальную сеть для тестов с использованием VPN только для локального взаимодействия, а не для обхода ограничений.
Пример «готового» рабочего набора команд
Ниже краткий набор, который часто используют для быстрой диагностики HTTPS-взаимодействий с конкретной целью.
# 1) Определите интерфейс (в примере предполагаем wlan0)
ip link show
# 2) Захват 45 секунд только HTTPS к IP-адресу
mkdir -p /sdcard/pcap
./pcap_capture.sh wlan0 45 "tcp port 443 and host 192.0.2.10"
# 3) После завершения откройте файл в Wireshark на ПК
# (копирование зависит от вашего устройства)
Заключение
Автоматизированный сбор трафика в Termux через tcpdump с последующим анализом pcap в Wireshark — один из самых практичных и воспроизводимых подходов для диагностики сети. Правильно выбирайте интерфейс, ограничивайте время и фильтры, управляйте размером дампа и придерживайтесь правовых рамок при работе с сетевыми данными.
Если вам нужно выстроить процесс анализа «под ключ» для ваших задач (от сценариев сбора до методики разборов и оформления отчётов), обращайтесь в РыбинскЛАБ — поможем организовать безопасный и эффективный workflow.