Försöker du fånga datapaket för att analysera trafik i ditt nätverk? Du kanske är en serveradministratör som har stött på ett problem och vill övervaka överförda data i nätverket. Oavsett situationen är Linux-verktyget tcpdump vad du behöver.

I den här artikeln kommer vi att diskutera kommandot tcpdump i detalj, tillsammans med några guider om hur du installerar och använder tcpdump på ditt Linux-system.

Vad är tcpdump-kommandot?

Tcpdump är ett kraftfullt nätverksövervakningsverktyg som gör det möjligt för en användare att filtrera paket och trafik i ett nätverk effektivt. Du kan få detaljerad information relaterad till TCP / IP och de paket som överförs i ditt nätverk. Tcpdump är ett kommandoradsverktyg, vilket innebär att du kan köra det på Linux-servrar utan en skärm.

Systemadministratörer kan också integrera tcpdump-verktyget med cron för att automatisera olika uppgifter som loggning. Eftersom dess många funktioner gör det ganska mångsidigt fungerar tcpdump som en felsökning såväl som ett säkerhetsverktyg.

instagram viewer

Hur man installerar tcpdump på Linux

Medan du för det mesta hittar tcpdump förinstallerat på ditt system, levereras vissa Linux-distributioner inte med paketet. Därför kan du behöva installera verktyget manuellt på ditt system.

Du kan kontrollera om tcpdump är installerat på ditt system med hjälp av som kommando.

vilken tcpdump

Om utdata visar en katalogsökväg (/usr/bin/tcpdump), då har ditt system paketet installerat. Men om inte, kan du göra det enkelt med standardpakethanteraren på ditt system.

Så här installerar du tcpdump på Debian-baserade distributioner som Ubuntu:

sudo apt-get install tcpdump

Det är också enkelt att installera tcpdump på CentOS.

sudo yum installera tcpdump

På ärkebaserade distributioner:

sudo pacman -S tcpdump

Så här installerar du på Fedora:

sudo dnf installera tcpdump

Observera att paketet tcpdump kräver libcap som ett beroende, så se till att du också installerar det på ditt system.

Tcpdump-exempel för att fånga nätverkspaket på Linux

Nu när du har installerat tcpdump på din Linux-maskin är det dags att övervaka några paket. Eftersom tcpdump kräver superanvändarbehörigheter för att utföra de flesta operationerna måste du lägga till sudo till dina kommandon.

1. Lista alla nätverksgränssnitt

För att kontrollera vilka nätverksgränssnitt som finns att fånga, använder du -D flagga med kommandot tcpdump.

tcpdump -D

Passerar --list-gränssnitt flagga som argument kommer att returnera samma utdata.

tcpdump - lista-gränssnitt

Utgången kommer att vara en lista över alla nätverksgränssnitt som finns på ditt system.

Efter att ha fått listan över nätverksgränssnitt är det dags att övervaka ditt nätverk genom att fånga paket på ditt system. Även om du kan ange vilket gränssnitt du vill använda, några argument kommandon tcpdump att fånga nätverkspaket med valfritt aktivt gränssnitt.

tcpdump - gränssnitt någon

Systemet visar följande utdata.

Relaterad: Vad är modellen för sammankoppling av öppna system?

2. Tcpdump-utdataformat

Från och med den tredje raden betecknar varje rad i utgången ett specifikt paket som fångats av tcpdump. Så här ser utdata från ett enda paket ut.

17: 00: 25.369138 wlp0s20f3 Out IP localystem.40310> kul01s10-in-f46.1e100.net.https: Flags [P.], seq 196: 568, ack 1, win 309, options [nop, nop, TS val 117964079 ecr 816509256], längd 33

Tänk på att inte alla paket fångas på detta sätt, men det här är det allmänna formatet följt av de flesta av dem.

Utgången innehåller följande information.

  1. Tidsstämpel för det mottagna paketet
  2. Gränssnittsnamn
  3. Paketflöde
  4. Namnet på nätverksprotokollet
  5. IP-adress och portinformation
  6. TCP-flaggor
  7. Sekvensnummer av data i paketet
  8. Ack-data
  9. Fönsterstorlek
  10. Paketlängd

Det första fältet (17:00:25.369138) visar tidsstämpeln när ditt system skickade eller fick paketet. Den registrerade tiden extraheras från systemets lokala tid.

Det andra och tredje fälten anger gränssnittet som används och flödet av paketet. I utdraget ovan, wlp0s20f3 är namnet på det trådlösa gränssnittet och Ut är paketflödet.

Det fjärde fältet innehåller information relaterad till nätverksprotokollnamnet. Generellt hittar du två protokoll- IP och IP6, där IP betecknar IPV4 och IP6 är för IPV6.

Nästa fält innehåller IP-adresserna eller namnet på källan och destinationssystemet. IP-adresserna följs av portnumret.

Det sjätte fältet i utgången består av TCP-flaggor. Det finns olika flaggor som används i tcpdump-utdata.

Flaggnamn Värde Beskrivning
SYN S Anslutningen startade
FENA F Anslutningen slutförd
SKJUTA PÅ P Data skjuts
RST R Anslutningen har återställts
ACK . Bekräftelse

Utgången kan också innehålla en kombination av flera TCP-flaggor. Till exempel, FLAGG [f.] står för ett FIN-ACK-paket.

När vi flyttar oss längre i utdatautdraget innehåller nästa fält sekvensnumret (seq 196: 568) av data i paketet. Det första paketet har alltid ett positivt heltal och de efterföljande paketen använder det relativa sekvensnumret för att förbättra dataflödet.

Nästa fält innehåller kvitteringsnumret (ack 1) eller enkelt Ack-nummer. Paketet som fångats i avsändarens maskin har 1 som kvittensnummer. I mottagarens ände är Ack-numret värdet på nästa paket.

Det nionde fältet i utgången rymmer fönsterstorleken (vinna 309), vilket är antalet tillgängliga byte i den mottagande bufferten. Det finns flera andra fält som följer fönsterstorleken, inklusive Maximum Segment Size (MSS).

Det sista fältet (längd 33) innehåller längden på det totala paketet som fångats av tcpdump.

3. Begränsa antalet fångade paket

När du kör kommandot tcpdump för första gången kanske du märker att systemet fortsätter att fånga nätverkspaket tills du skickar en avbrottssignal. Du kan åsidosätta detta standardbeteende genom att ange antalet paket som du vill fånga i förväg med hjälp av -c flagga.

tcpdump - gränssnitt någon -c 10

Det ovannämnda kommandot kommer att fånga tio paket från vilket som helst aktivt nätverksgränssnitt.

4. Filtrera paket baserat på fält

När du felsöker ett problem blir det inte enklare att få ett stort block med textutdata på din terminal. Det är där filtreringsfunktionen i tcpdump spelar in. Du kan filtrera paketen enligt olika fält inklusive värd, protokoll, portnummer och mer.

För att bara fånga TCP-paket, skriv:

tcpdump - gränssnitt alla -c 5 tcp

På samma sätt, om du vill filtrera utdata med portnummer:

tcpdump - gränssnitt vilken som helst -c 5-port 50

Ovan nämnda kommando hämtar endast paket som överförs via den angivna porten.

För att få paketdetaljer för en viss värd:

tcpdump - gränssnitt någon -c 5-värd 112.123.13.145

Om du vill filtrera paket som skickas eller tas emot av en viss värd använder du src eller dst argument med kommandot.

tcpdump - gränssnitt någon -c 5 src 112.123.13.145
tcpdump - gränssnitt någon -c 5 dst 112.123.13.145

Du kan också använda de logiska operatorerna och och eller för att kombinera två eller flera uttryck tillsammans. Till exempel för att få paket som tillhör källans IP 112.123.13.145 och använd porten 80:

tcpdump - gränssnitt någon -c 10 src 112.123.13.145 och port 80

Komplexa uttryck kan grupperas tillsammans med parentes som följer:

tcpdump - gränssnitt vilken som helst -c 10 "(src 112.123.13.145 eller src 234.231.23.234) och (port 45 eller port 80)"

5. Visa innehållet i paketet

Du kan använda -A och -x flaggar med kommandot tcpdump för att analysera innehållet i nätverkspaketet. De -A flagga står för ASCII format och -x betecknar hexadecimal formatera.

Så här visar du innehållet i nästa nätverkspaket som fångats av systemet:

tcpdump - gränssnitt alla -c 1 -A
tcpdump - gränssnitt någon -c 1 -x

Relaterad: Vad är paketförlust och hur åtgärdar du orsaken?

6. Spara fångstdata i en fil

Om du vill spara inspelningsdata för referensändamål är tcpdump där för att hjälpa dig. Passera bara -w flagga med standardkommandot för att skriva utdata till en fil istället för att visa den på skärmen.

tcpdump - gränssnitt alla -c 10 -w data.pcap

De .pcap filändelsen står för paketfångst data. Du kan också utfärda det ovannämnda kommandot i utförligt läge med hjälp av -v flagga.

tcpdump - gränssnitt alla -c 10 -w data.pcap -v

Att läsa en .pcap fil med tcpdump, använd -r flagga följt av filvägen. De -r står för Läsa.

tcpdump -r data.pcap

Du kan också filtrera nätverkspaket från paketdata som sparats i filen.

tcpdump -r data.pcap-port 80

Övervakning av nätverkstrafik på Linux

Om du har tilldelats uppgiften att administrera en Linux-server är kommandot tcpdump ett bra verktyg att inkludera i din arsenal. Du kan enkelt åtgärda nätverksrelaterade problem genom att fånga paket som överförs i ditt nätverk i realtid.

Men innan allt detta måste din enhet vara ansluten till internet. För nybörjare i Linux kan det även vara lite utmanande att ansluta till Wi-Fi via kommandoraden. Men om du använder rätt verktyg är det enkelt.

E-post
Hur man ansluter till Wi-Fi via Linux-terminalen med Nmcli

Vill du ansluta till ett Wi-Fi-nätverk via Linux-kommandoraden? Här är vad du behöver veta om nmcli-kommandot.

Läs Nästa

Relaterade ämnen
  • Linux
  • säkerhet
  • Nätverk Forensics
Om författaren
Deepesh Sharma (37 artiklar publicerade)

Deepesh är Junior Editor för Linux på MUO. Han har skrivit informationsinnehåll på internet i över 3 år. På fritiden tycker han om att skriva, lyssna på musik och spela sin gitarr.

Mer från Deepesh Sharma

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Ett steg till…!

Bekräfta din e-postadress i e-postmeddelandet som vi just skickade till dig.

.