Tcpdump vs Tshark: подробное сравнение инструментов для анализа трафика | SecureFlow

Tcpdump vs Tshark: подробное сравнение инструментов для анализа трафика

Постер статьи

Содержание

Если вы когда-нибудь занимались анализом сетевого трафика или диагностикой проблем в сети, то наверняка слышали про инструменты tcpdump и tshark. Оба — мощные консольные снифферы для захвата и анализа сетевых пакетов, но когда и какой лучше использовать?

В этой статье мы подробно сравним tcpdump и tshark, разберём их сильные и слабые стороны, покажем реальные примеры использования и расскажем, как выбрать нужный инструмент под конкретную задачу.

Кратко про tcpdump и tshark

  • tcpdump — это классический инструмент командной строки для захвата сетевых пакетов. Лёгкий, быстрый и широко доступный. Подходит как для простого мониторинга, так и для автоматизированных скриптов.
  • tshark — консольный аналог графического Wireshark. Умеет не только захватывать пакеты, но и глубоко их анализировать, разбирая протоколы, показывая структуру данных и статистику.

Основные отличия

Параметр tcpdump tshark
Назначение Захват и базовый просмотр пакетов Захват и глубокий анализ трафика
Скорость Очень высокая Медленнее из-за дополнительного анализа
Формат вывода Краткий текстовый, pcap Подробный, с разбивкой по уровням протоколов
Аналитические функции Ограниченные Расширенные: фильтры, статистика, декодеры
Поддержка протоколов Базовая Очень широкая, включая редкие и проприетарные
GUI-интерфейс Нет Есть через Wireshark
Поддержка фильтров BPF (захват) Display Filters (отображение + захват)

Примеры использования

tcpdump

sudo tcpdump -i eth0 -c 10

Захватит первые 10 пакетов на интерфейсе eth0.

sudo tcpdump -i eth0 tcp port 80 -w dump.pcap

Запишет только HTTP-трафик в файл dump.pcap.

tshark

sudo tshark -i eth0 -c 10 -V

Захватит 10 пакетов и выведет их подробную декомпозицию.

sudo tshark -r dump.pcap -Y "http.request"

Покажет только HTTP-запросы из ранее сохранённого файла.

Сравнение фильтров

Задача tcpdump tshark
Захват HTTP-трафика tcp port 80 -Y "http"
Только GET-запросы невозможно -Y "http.request.method == \"GET\""
ICMP-пакеты icmp -Y "icmp"
Только DNS (UDP 53) udp port 53 -Y "dns"

tcpdump использует BPF-фильтры, которые применяются на этапе захвата.
tshark использует Display Filters, которые применяются на этапе анализа и поддерживают значительно более гибкую логику.

Когда выбрать tcpdump для анализа трафика

  • Быстрая отладка сетевых проблем.
  • Работаете на сервере без графики.
  • Нужно захватить трафик и сохранить его в файл.
  • Автоматизация — запуск через cron, интеграция в скрипты.
  • Минимальные требования к ресурсам.

Подробнее: Полное руководство по tcpdump

Когда выбрать tshark для анализа трафика

  • Необходим глубокий анализ протоколов.
  • Нужны отчёты, статистика и фильтрация по уровням OSI.
  • Используете Wireshark, но хотите автоматизировать процессы.
  • Требуется точная фильтрация по значениям полей, например HTTP-заголовкам.
  • Обрабатываете pcap-файлы из других источников.

Подробнее: Полный гайд по tshark на Linux

Совместное использование: захват + анализ

Один из лучших подходов:

  1. Используем tcpdump для захвата с минимальной нагрузкой:
    sudo tcpdump -i eth0 -w traffic.pcap
    
  2. Потом анализируем полученный файл через tshark:
    tshark -r traffic.pcap -Y "ip.src == 192.168.1.10"
    

Такой подход удобен на проде: минимум нагрузки при захвате, максимум гибкости при анализе.

Частые ошибки новичков

  • tcpdump «ничего не показывает» — возможно, выбран не тот интерфейс (lo, eth0, ens33, wlan0 и т.д.)
  • tshark «слишком много текста» — убери флаг -V, используй просто -T fields.
  • Ошибка прав — запусти с sudo или добавь пользователя в группу wireshark:
    sudo usermod -aG wireshark $USER
    

Мини-статистика

Инструмент Время захвата/анализа Средняя нагрузка CPU Размер вывода
tcpdump (-c 10000) ~2.2 сек ~2–4% ~2.0 МБ (pcap)
tshark (-V -r) ~5.5 сек ~25–35% ~65–70 МБ (текст)

Вывод

Оба инструмента — незаменимые помощники сетевого администратора.

  • tcpdump — минималистичный, быстрый, идеально подходит для базового анализа, автоматизации и захвата трафика.
  • tshark — мощный инструмент для глубокого анализа, статистики, декодировки и разбора сложных протоколов.

Лучшее решение — использовать их вместе:
tcpdump захватывает → tshark анализирует.