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

Содержание
- Кратко про tcpdump и tshark
- Основные отличия
- Примеры использования
- tcpdump
- tshark
- Сравнение фильтров
- Когда выбрать tcpdump для анализа трафика
- Когда выбрать 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
Совместное использование: захват + анализ
Один из лучших подходов:
- Используем tcpdump для захвата с минимальной нагрузкой:
sudo tcpdump -i eth0 -w traffic.pcap
- Потом анализируем полученный файл через 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 анализирует.