«Tcpdump» - это анализатор пакетов, используемый для диагностики и анализа сетевых проблем. Он фиксирует сетевой трафик, проходящий через ваше устройство, и просматривает его. Инструмент «tcpdump» - мощный инструмент для устранения проблем с сетью. Он поставляется с множеством опций, что делает его универсальной утилитой командной строки для исправления сетевых проблем.
Этот пост представляет собой подробное руководство по утилите tcpdump, которое включает в себя ее установку, общие функции и использование с различными параметрами. Начнем с установки:
Как установить «tcpdump»:
Во многих дистрибутивах tcpdump поставляется прямо из коробки, и для его проверки используйте:
$ which tcpdump
Если его нет в вашем дистрибутиве, установите его, используя:
$ sudo apt install tcpdumpВышеупомянутая команда будет использоваться для дистрибутивов на основе Debian, таких как Ubuntu и LinuxMint. Для «Redhat» и «CentOS» используйте:
$ sudo dnf установить tcpdumpКак захватывать пакеты с помощью tcpdump:
Для захвата пакетов могут использоваться различные интерфейсы. Чтобы получить список интерфейсов, используйте:
$ sudo tcpdump -D
Или просто используйте «any» с командой «tcpdump», чтобы получить пакеты из активного интерфейса. Чтобы начать захват пакетов, используйте:
$ sudo tcpdump - интерфейс любой
Вышеупомянутая команда отслеживает пакеты со всех активных интерфейсов. Пакеты будут непрерывно захватываться, пока пользователь не прервет их (ctrl-c).
Мы также можем ограничить количество захватываемых пакетов с помощью флага «-c», который означает «количество.”Чтобы захватить 3 пакета, используйте:
$ sudo tcpdump -i любой -c3
Приведенная выше команда полезна для фильтрации определенного пакета. Более того, для устранения проблем с подключением требуется захват всего нескольких начальных пакетов.
Значок «tcpdump”Команда захватывает пакеты с IP-адресами и именами портов по умолчанию, но для устранения беспорядка и облегчения понимания вывода; имена можно отключить с помощью «-п" а также "-nn”Для варианта порта:
$ sudo tcpdump -i любой -c3 -nn
Как показано в выходных данных выше, имена IP и портов удалены.
Как понять информацию о перехваченном пакете:
Чтобы узнать о различных полях захваченного пакета, давайте рассмотрим пример TCP-пакета:
В пакете могут быть разные поля, но общие отображаются выше. Первое поле «09:48:18.960683,”Представляет время, когда пакет получен. Далее идут IP-адреса; первый IP [216.58.209.130] - исходный IP-адрес, а второй IP-адрес [10.0.2.15.55812] - это IP-адрес назначения. Тогда вы получите флаг [п.]; список типичных флагов приведен ниже:
Флаг | Тип | Описание |
«.” | ACK | Означает признание |
S | SYN | Флаг для начала соединения |
F | ПЛАВНИК | Флаг закрытого соединения |
п | ТОЛКАТЬ | Указывает на отправку данных от отправителя |
р | RST | Сброс соединения |
Затем идет порядковый номер «seq 185: 255”. И клиент, и сервер используют 32-битный порядковый номер для обслуживания и мониторинга данных.
Значок «подтверждать»- это флаг; если он равен 1, это означает, что номер подтверждения действителен, и получатель ожидает следующий байт.
Номер окна указывает размер буфера. «победа 65535"Означает объем данных, которые можно буферизовать.
И, наконец, длина [70] пакета в байтах, что составляет «185: 255”.
Фильтрация пакетов для устранения сетевых проблем:
Инструмент «tcpdump» захватывает сотни пакетов, и большинство из них менее важны, что значительно усложняет получение необходимой информации для устранения неполадок. В этом случае фильтрация сыграет свою роль. Например, при устранении неполадок, если вас не интересует конкретный тип трафика, вы можете отфильтровать его с помощью «tcpdump», который включает фильтрацию пакетов по IP-адресам, портам и протоколам.
Как захватить пакет с использованием имени хоста с помощью команды tcpdump:
Чтобы получить пакет только с определенного хоста, используйте:
$ sudo tcpdump -i any -c4 host 10.0.2.15
Если вы хотите получить только одностороннее движение, используйте "src" а также "dst"Варианты" вместо "хозяин.”
Как захватить пакет с использованием номера порта с помощью команды tcpdump:
Чтобы отфильтровать пакеты по номеру порта, используйте:
$ sudo tcpdump -i any -c3 -nn порт 443
«443» - это номер порта HTTPS.
Как захватить пакет с использованием протокола с помощью команды tcpdump:
С помощью команды «tcpdump» вы можете фильтровать пакеты по любому протоколу, например udp, icmp, arp и т. Д. Просто введите имя протокола:
$ sudo tcpdump -i any -c6 udp
Приведенные выше команды будут захватывать только пакеты, принадлежащие протоколу «udp».
Как комбинировать параметры фильтрации с помощью логических операторов:
Различные варианты фильтрации можно комбинировать с помощью логических операторов, таких как «и / или»:
$ sudo tcpdump -i any -c6 -nn хост 10.0.2.15 и порт 443
Как хранить захваченные данные:
Полученные данные можно сохранить в файл для последующего отслеживания, и для этого будет использоваться опция «-w», а «w» означает «запись»:
$ sudo tcpdump -i any -c5 -w packetData.pcap
Расширение файла будет «.pcap, что означает «захват пакетов."После завершения захвата файл будет сохранен на вашем локальном диске. Этот файл нельзя открыть или прочитать с помощью любой программы текстового редактора. Чтобы прочитать его, используйте знак «-р»Флаг с« tcpdump »:
$ tcpdump -r packetData.pcap
Заключение:
«Tcpdump» - ценный и гибкий инструмент для захвата и анализа сетевого трафика для устранения сетевых проблем. Это руководство предназначено для изучения базового и расширенного использования утилиты командной строки «tcpdump». Но если вам это сложно, то есть менее сложная программа на основе графического интерфейса под названием «Wireshark», которая выполняет почти ту же работу, но с различными дополнительными функциями.