Утилита tcpflow — это инструмент командной строки в Linux, предназначенный для перехвата информации, передаваемой в рамках TCP-соединений, с последующей реконструкцией потоков данных (например, HTTP-запросов, передачи файлов и так далее). Проще говоря, с помощью этой команды можно увидеть, что на самом деле было отправлено или получено по сети — например, полное содержимое веб-запроса, — а не просто низкоуровневые сетевые пакеты.
В этой статье мы расскажем, как установить и использовать tcpflow в ОС Linux.
Содержимое:
- Установка утилиты tcpflow в ОС Linux
- Синтаксис команды tcpflow
- Запуск утилиты tcpflow
- Создание отдельной папки для файлов tcpflow
- Вывод информации на экран без сохранения в файлы
- Перехват трафика с определенного порта
- Сохранение данных в расширенном формате
- Выводы
Установка утилиты tcpflow в ОС Linux
Пакет инструмента tcpflow находится в стандартных репозиториях большинства популярных дистрибутивов Linux. Поэтому чтобы установить эту утилиту, достаточно выполнить одну команду.
Для Debian / Ubuntu Linux:
Для RHEL / CentOS Linux:
Для Fedora 22+ Linux:
Читайте также: Команда iptraf в Linux с примерами.
Синтаксис команды tcpflow
Синтаксис tcpflow довольно прост и выглядит следующим образом:
Где:
[OPTIONS]— необязательные опции, которые расширяют функционал утилиты;[ARGUMENTS]— аргументы.
Чтобы ознакомиться со всеми опциями команды tcpflow, выполните в терминале:
Читайте также: Команда ping в скриптах Bash.
Запуск утилиты tcpflow
Чтобы программа tcpflow начала отслеживать сетевой трафик, нужно воспользоваться одноименной командой с правами суперпользователя:
В процессе работы программа записывает всю собранную информацию в специальные файлы в текущей рабочей директории. Одним из таких файлов является XML-документ report.xml, содержащий краткое описание TCP-потоков. Его содержимое может варьироваться в зависимости от настроек, но обычно включает базовые метаданные о каждом TCP-потоке такие, как:
- IP-адреса и порты источника и назначения;
- временные метки начала и окончания потока;
- имена файлов, в которых были сохранены данные;
- размер потока и другую информацию.
Также tcpflow сортирует все данные по каждому потоку в отдельные файлы, названия которых записаны в следующем формате:
Где:
<source IP>— IP-адрес источника;<source port>— порт источника;<destination IP>— IP-адрес назначения;<destination port>— порт назначения.
Вы можете убедиться, что tcpflow создает такие файлы в текущем каталоге, выполнив команду ls:
Читайте также: 12 примеров команды ss в Linux.
Создание отдельной папки для файлов tcpflow
Поскольку операционная система может одновременно участвовать в большом количестве TCP-соединений, важно заранее позаботиться о том, чтобы файлы tcpflow сохранялись в одном определенном месте и не засоряли текущую рабочую директорию.
Чтобы указать утилите tcpflow создавать файлы в конкретной папке, используйте опцию -o, передав в качестве аргумента путь к нужной директории. Например:
Убедиться в том, что файлы действительно сохраняются в указанный каталог, можно с помощью команды ls:
Вывод информации на экран без сохранения в файлы
Если Вам не нужно, чтобы утилита tcpflow создавала файлы, можно указать ей выводить всю полученную информацию прямо в окно терминала. Для этого запустите команду с опцией -c:
Читайте также: Мониторинг использования сети с помощью nethogs в Linux.
Перехват трафика с определенного порта
С помощью программы tcpflow можно собирать трафик только с определенного порта. Чтобы воспользоваться такой возможностью, запустите команду с опцией port, в качестве аргумента которой укажите номер порта. Например:
Сохранение данных в расширенном формате
Режим verbose предоставляет дополнительные сведения о процессе захвата трафика. Он позволяет получить более подробную информацию о пакетах, например:
- состояние TCP-соединений и флаги;
- повторная сборка данных и возможные ошибки;
- временные метки и статистика потоков (например, длительность и количество переданных байт).
Чтобы запустить команду tcpflow с включенным расширенным режимом, примените опцию -v:
Читайте также: 5 способов узнать максимальную скорость сетевой карты в Linux.
Выводы
Инструмент tcpflow собирает полезную информацию о TCP-соединениях. Благодаря полученным данным пользователи могут анализировать сетевой трафик на предмет ошибок, несанкционированного доступа или потенциальных угроз.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.


































