tcpdump — популярный инструмент для анализа сетевого трафика. Он позволяет перехватывать пакеты данных и анализировать их содержание. В статье рассказываем, как использовать tcpdump на операционной системе Linux и Windows.
Что такое tcpdump
tcpdump — это утилита командной строки для захвата и анализа пакетов в компьютерных сетях. Она поддерживает работу с разными сетевыми протоколами, например TCP, UDP, ICMP и другими. Ее используют для:
- отладки сетевых приложений;
- выявления проблем с сетью;
- обнаружения сетевых атак;
- анализа безопасности;
- мониторинга трафика.
Утилита tcpdump входит в стандартный пакет инструментов Linux, но на Windows его необходимо установить вручную.
Преимущества tcpdump
tcpdump — один из самых популярных инструментов для анализа сетевого трафика. Его любят за:
- простоту: у tcpdump несложный интерфейс, а вся работа происходит в командной строке;
- гибкость фильтрации: с помощью утилиты можно захватывать только тот трафик, который вас интересует. Например, фильтровать пакеты по IP-адресу, портам, протоколам;
- универсальность: tcpdump поддерживает разные сетевые протоколы. Можно изучать трафик на уровне Ethernet, IP, TCP, UDP;
- легкость интеграции: утилиту легко интегрировать в скрипты и автоматизированные процессы. Это помогает автоматизировать мониторинг сети и анализ трафика;
- низкие системные требования: инструмент не требует много ресурсов и подходит для работы на серверах или во встраиваемых системах;
- доступность: tcpdump поддерживают большинство UNIX-подобных систем, включая Linux и macOS. На Windows его можно использовать через эмуляторы терминала.
Установка tcpdump
Чтобы установить tcpdump на устройство с Linux:
- Откройте терминал (Ctrl + Alt + T).
- Обновите список доступных пакетов. Для этого введите команду из списка и нажмите Enter:
- Ubuntu и Debian: sudo apt update
- CentOS/RHEL: sudo yum check-update
- Fedora: sudo dnf check-update
- Arch Linux: sudo pacman -Sy
После этого вас попросят ввести пароль. Используйте тот же, что в вашей учетной записи пользователя.
3) Установите tcpdump. Используйте одну из команд ниже в зависимости от дистрибутива:
- Ubuntu/Debian: sudo apt install tcpdump
- CentOS/RHEL: sudo yum install tcpdump
- Fedora: sudo dnf install tcpdump
- Arch Linux: sudo pacman -S tcpdump
После этого нажмите Enter и подтвердите установку (Y, а затем Enter).
4) Проверьте установку с помощью команды tcpdump —version. Если установка прошла успешно, вы увидите информацию о версии утилиты. Теперь можно использовать утилиту.
Чтобы работать с tcpdump на Windows, скачайте и установите соответствующую версию для этой операционной системы. Обычно используют программы WinPcap или Npcap, которые предоставляют драйверы для работы с сетевыми интерфейсами.
Как пользоваться tcpdump на Linux
Для захвата пакетов потребуются права суперадминистратора. Чтобы запустить утилиту, зайдите в терминал и введите команду sudo tcpdump.
tcpdump будет перехватывать трафик на всех интерфейсах и выводить информацию о пакетах в режиме реального времени. Если у вас несколько сетевых интерфейсов, укажите, какой именно нужно использовать:
- Посмотрите список доступных интерфейсов: sudo tcpdump -D
- Выберите нужный интерфейс (например, eth0 или wlan0) и запустите tcpdump с указанием интерфейса: sudo tcpdump -i eth0
Когда нужно собрать не все данные, используйте фильтры tcpdump:
- По IP-адресу: sudo tcpdump -i eth0 host 192.168.1.100
- По определенному порту: sudo tcpdump -i eth0 port 80
- По протоколу (например, ICMP): sudo tcpdump -i eth0 icmp
Разные фильтры можно настраивать одновременно с помощью операторов AND (и), OR (или) и NOT (не). Например, чтобы перехватить трафик на интерфейсе eth1 от IP-адреса 10.0.0.1 с целевым портом 80, можно использовать команду:
tcpdump -n -i eth1 src 10.0.0.1 and dst port 80
Утилита будет продолжать перехват пакетов и выводить заголовки до тех пор, пока вы не нажмете Ctrl + C.

Основные опции tcpdump
Для управления сетевым трафиком и фильтрами используют специальные параметры tcpdump:
- -i <interface> — указывает интерфейс для перехвата (tcpdump -i eth0);
- -n — выводит IP-адреса и номера портов в числовом формате. Это ускоряет работу и упрощает вывод (tcpdump -n);
- -v, -vv, -vvv — увеличивает подробность выводимой информации, от минимальной v до максимальной vvv (tcpdump -vv);
- -c <count> — ограничивает количество перехваченных пакетов (tcpdump -c 10);
- -w <file> — записывает перехваченные данные в файл (tcpdump -w capture.pcap). Чтобы прочитать их, используйте команду -r <file> (sudo tcpdump -r capture.pcap)
- -s — устанавливает размер захватываемого пакета. По умолчанию tcpdump захватывает только первые 68 или 96 байт. Чтобы захватить полный пакет, можно установить размер в 0 (tcpdump -s 0);
- -A — показывает содержимое пакетов в ASCII-формате для анализа текстовых данных (tcpdump -A);
- -X — выводит данные пакета в шестнадцатеричном формате (tcpdump -X).
tcpdump на linux — пример анализа пакетов
Если вы хотите увидеть детали TCP-соединения, можно использовать опцию -v, например:
sudo tcpdump -i eth0 -v tcp
Так вы получите информацию о каждом TCP-пакете, включая флаги SYN, ACK, FIN. Это может быть полезно для диагностики проблем с соединением.
Вывод tcpdump будет выглядеть примерно так:
12:34:56.789123 IP 192.168.1.1.12345 > 192.168.1.2.80: Flags [S], seq 123456789, win 29200, length 0
Что он включает:
- 12:34:56.789123 — время захвата пакета;
- IP — тип протокола;
- 192.168.1.1.12345 — адрес и порт отправителя;
- 192.168.1.2.80 — адрес и порт получателя;
- Flags [S] — флаг SYN, указывающий на начало TCP-соединения;
- seq 123456789 — номер последовательности;
- win 29200 — размер окна (window size);
- length 0 — длина данных в пакете.
Чтобы сохранить перехваченные данные в отдельный файл, используйте опцию -w. Готовый файл можно загрузить в Wireshark — там есть удобный графический интерфейс для анализа перехваченных пакетов.

Главное о перехвате сетевого трафика с помощью tcpdump
- Утилита tcpdump помогает понять, что происходит в сети, и быстро диагностировать проблемы.
- tcpdump — простой, гибкий и поддерживает разные сетевые протоколы.
- tcpdump работает на Linux и MacOS, на Windows для полноценной работы необходимо установить дополнительные компоненты, например Npcap.
- С tcpdump можно собирать весь трафик или фильтровать его по номеру порта, IP-адресу, протоколу и другим параметрам.
- Перехваченные данные можно сохранять в отдельный файл и загружать в Wireshark для анализа.