Опитвате ли се да уловите пакети данни, за да анализирате трафика във вашата мрежа? Може би сте администратор на сървър, който се е натъкнал на проблем и иска да наблюдава предадените данни в мрежата. Каквато и да е ситуацията, помощната програма tcpdump Linux е това, от което се нуждаете.

В тази статия ще обсъдим подробно командата tcpdump, заедно с някои ръководства за това как да инсталирате и използвате tcpdump във вашата Linux система.

Какво представлява командата tcpdump?

Tcpdump е мощен инструмент за наблюдение на мрежата, който позволява на потребителя да филтрира ефективно пакетите и трафика в мрежата. Можете да получите подробна информация, свързана с TCP / IP и пакетите, предавани във вашата мрежа. Tcpdump е помощна програма за команден ред, което означава, че можете да я стартирате на Linux сървъри без дисплей.

Системните администратори също могат да интегрират помощната програма tcpdump с cron с цел автоматизиране на различни задачи като регистриране. Тъй като многобройните му функции го правят доста гъвкав, tcpdump работи и като средство за отстраняване на неизправности, и като инструмент за защита.

instagram viewer

Как да инсталирам tcpdump на Linux

Докато през повечето време ще намерите предварително инсталиран tcpdump във вашата система, някои дистрибуции на Linux не се доставят с пакета. Следователно може да се наложи ръчно да инсталирате помощната програма на вашата система.

Можете да проверите дали tcpdump е инсталиран на вашата система, като използвате който команда.

който tcpdump

Ако изходът показва път на директория (/usr/bin/tcpdump), тогава системата ви има инсталиран пакет. Ако обаче не, можете да го направите лесно, като използвате мениджъра на пакети по подразбиране във вашата система.

За да инсталирате tcpdump на дистрибуции, базирани на Debian като Ubuntu:

sudo apt-get инсталирате tcpdump

Инсталирането на tcpdump на CentOS също е лесно.

sudo yum инсталирате tcpdump

За дистрибуции, базирани на Arch:

sudo pacman -S tcpdump

За да инсталирате на Fedora:

sudo dnf инсталирайте tcpdump

Имайте предвид, че пакетът tcpdump изисква libcap като зависимост, така че не забравяйте да го инсталирате и на вашата система.

Tcpdump Примери за улавяне на мрежови пакети на Linux

Сега, след като успешно сте инсталирали tcpdump на вашата машина Linux, е време да наблюдавате някои пакети. Тъй като tcpdump изисква разрешения на суперпотребител за изпълнение на повечето операции, ще трябва да добавите судо към вашите команди.

1. Списък на всички мрежови интерфейси

За да проверите кои мрежови интерфейси са достъпни за заснемане, използвайте флаг с командата tcpdump.

tcpdump -D

Преминавайки през --list-интерфейси флаг като аргумент ще върне същия изход.

tcpdump - списък-интерфейси

Резултатът ще бъде списък на всички мрежови интерфейси, които присъстват във вашата система.

След получаване на списъка с мрежови интерфейси е време да наблюдавате мрежата си, като улавяте пакети в системата си Въпреки че можете да посочите кой интерфейс искате да използвате, всякакви аргумент команди tcpdump за улавяне на мрежови пакети с помощта на всеки активен интерфейс.

tcpdump - интерфейс всеки

Системата ще покаже следния изход.

Свързани: Какво представлява моделът за взаимно свързване на отворени системи?

2. Изходният формат на tcpdump

Започвайки от третия ред, всеки ред от изхода обозначава определен пакет, заловен от tcpdump. Ето как изглежда изходът на един пакет.

17: 00: 25.369138 wlp0s20f3 Out IP localystem.40310> kul01s10-in-f46.1e100.net.https: Flags [P.], sq 196: 568, ack 1, win 309, options [nop, nop, TS val 117964079 ecr 816509256], дължина 33

Имайте предвид, че не всички пакети се улавят по този начин, но това е общият формат, следван от повечето от тях.

Резултатът съдържа следната информация.

  1. Клеймо за време на получения пакет
  2. Име на интерфейса
  3. Поток на пакети
  4. Име на мрежовия протокол
  5. IP адрес и подробности за порта
  6. TCP флагове
  7. Поредният номер на данните в пакета
  8. Ack данни
  9. Размер на прозореца
  10. Дължина на пакета

Първото поле (17:00:25.369138) показва времевия печат, когато вашата система е изпратила или получила пакета. Записаното време се извлича от местното време на вашата система.

Второто и третото поле означават използвания интерфейс и потока на пакета. В горния фрагмент, wlp0s20f3 е името на безжичния интерфейс и Вън е пакетният поток.

Четвъртото поле включва информация, свързана с името на мрежовия протокол. Като цяло ще намерите два протокола- IP и IP6, където IP означава IPV4, а IP6 е за IPV6.

Следващото поле съдържа IP адресите или името на системата източник и дестинация. IP адресите са последвани от номера на порта.

Шестото поле в изхода се състои от TCP флагове. Има различни флагове, които се използват в изхода на tcpdump.

Име на знамето Стойност Описание
SYN С Връзката започна
FIN F Връзката завърши
НАТЪСНЕТЕ P Данните се изтласкват
RST R Връзката е нулирана
ACK . Признание

Изходът може да съдържа и комбинация от няколко TCP флага. Например, ФЛАГ [е.] означава FIN-ACK пакет.

Придвижвайки се по-нататък в изходния фрагмент, следващото поле съдържа поредния номер (сл. 196: 568) на данните в пакета. Първият пакет винаги има положително цяло число и следващите пакети използват относителния пореден номер, за да подобрят потока от данни.

Следващото поле съдържа номера на потвърждение (ack 1), или просто Ack номер. Пакетът, заловен в машината на подателя, има 1 като номер за потвърждение. В края на приемника номерът на Ack е стойността на следващия пакет.

Деветото поле в изхода побира размера на прозореца (победа 309), което е броят на байтовете, налични в приемащия буфер. Има няколко други полета, които следват размера на прозореца, включително Максимален размер на сегмента (MSS).

Последното поле (дължина 33) съдържа дължината на цялостния пакет, уловен от tcpdump.

3. Ограничете броя на заловените пакети

Докато изпълнявате командата tcpdump за първи път, може да забележите, че системата продължава да улавя мрежови пакети, докато не предадете сигнал за прекъсване. Можете да замените това поведение по подразбиране, като посочите броя на пакетите, които искате да уловите предварително, като използвате -° С флаг.

tcpdump - интерфейс всеки -c 10

Гореспоменатата команда ще улови десет пакета от всеки активен мрежов интерфейс.

4. Филтрирайте пакети въз основа на полета

Когато отстранявате проблем, получаването на голям блок извеждане на текст на вашия терминал не улеснява. Тук влиза в действие функцията за филтриране в tcpdump. Можете да филтрирате пакетите според различни полета, включително хост, протокол, номер на порт и др.

За да уловите само TCP пакети, напишете:

tcpdump - интерфейс всеки -c 5 tcp

По същия начин, ако искате да филтрирате изхода, като използвате номера на порта:

tcpdump - интерфейс всеки -c 5 порт 50

Гореспоменатата команда ще извлича само пакети, предадени през посочения порт.

За да получите подробности за пакета за определен хост:

tcpdump - интерфейс всеки -c 5 хост 112.123.13.145

Ако искате да филтрирате пакетите, изпратени или получени от определен хост, използвайте src или dst аргумент с командата.

tcpdump - интерфейс всеки -c 5 src 112.123.13.145
tcpdump - интерфейс всеки -c 5 dst 112.123.13.145

Можете също да използвате логическите оператори и и или да комбинирате два или повече израза заедно. Например, за да получите пакети, които принадлежат на IP източника 112.123.13.145 и използвайте порта 80:

tcpdump - интерфейс всеки -c 10 src 112.123.13.145 и порт 80

Сложните изрази могат да бъдат групирани заедно с помощта на скоби както следва:

tcpdump - интерфейс всеки -c 10 "(src 112.123.13.145 или src 234.231.23.234) и (порт 45 или порт 80)"

5. Вижте съдържанието на пакета

Можете да използвате и флагове с командата tcpdump за анализ на съдържанието на мрежовия пакет. The  флаг означава ASCII формат и обозначава шестнадесетичен формат.

За да видите съдържанието на следващия мрежов пакет, заснет от системата:

tcpdump - интерфейс всеки -c 1 -A
tcpdump - интерфейс всеки -c 1 -x

Свързани: Какво представлява загубата на пакети и как да се отстрани причината за това?

6. Запазване на данни за заснемане във файл

Ако искате да запазите данните за заснемане за справочни цели, tcpdump е там, за да ви помогне. Просто преминете -w флаг с командата по подразбиране за записване на изхода във файл, вместо да се показва на екрана.

tcpdump - интерфейс всеки -c 10 -w data.pcap

The .pcap разширението на файла означава улавяне на пакети данни. Можете също така да издадете гореспоменатата команда в подробен режим, като използвате -v флаг.

tcpdump - интерфейс всеки -c 10 -w data.pcap -v

За да прочетете a .pcap файл с помощта на tcpdump, използвайте -r флаг, последван от пътя на файла. The -r означава Прочети.

tcpdump -r data.pcap

Можете също да филтрирате мрежовите пакети от пакетите данни, записани във файла.

tcpdump -r data.pcap порт 80

Мониторинг на мрежовия трафик на Linux

Ако сте получили задачата да администрирате Linux сървър, тогава командата tcpdump е чудесен инструмент за включване във вашия арсенал. Можете лесно да коригирате проблеми, свързани с мрежата, като улавяте пакети, предавани във вашата мрежа в реално време.

Но преди всичко това, вашето устройство трябва да е свързано с интернет. За начинаещи в Linux дори свързването с Wi-Fi чрез командния ред може да бъде малко предизвикателно. Но ако използвате правилните инструменти, това е бързо.

електронна поща
Как да се свържете с Wi-Fi през терминала на Linux с Nmcli

Искате ли да се свържете с Wi-Fi мрежа чрез командния ред на Linux? Ето какво трябва да знаете за командата nmcli.

Прочетете Напред

Свързани теми
  • Linux
  • Сигурност
  • Мрежова криминалистика
За автора
Дийпеш Шарма (37 статии публикувани)

Deepesh е младши редактор за Linux в MUO. Той пише информационно съдържание в интернет повече от 3 години. В свободното си време той обича да пише, да слуша музика и да свири на китара.

Още от Deepesh Sharma

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!

Още една стъпка…!

Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.

.