Hur man använder tcpdump och 6 exempel

Hur man använder tcpdump och 6 exempel

Försöker du fånga datapaket för att analysera trafik i ditt nätverk? Kanske är du en serveradministratör som har stött på ett problem och vill övervaka överförd data i nätverket. Oavsett situationen är tcpdump Linux -verktyget 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 att en användare kan filtrera paket och trafik på ett nätverk effektivt. Du kan få detaljerad information om TCP/IP och paketen som överförs på ditt nätverk. Tcpdump är ett kommandoradsverktyg, vilket innebär att du kan köra det på Linux-servrar utan skärm.





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

Så här installerar du 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.

which tcpdump

Om utdata visar en katalogväg ( /usr/bin/tcpdump ), då har ditt system paketet installerat. Men om inte, kan du enkelt göra det 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 install tcpdump

På Arch-baserade distributioner:

sudo pacman -S tcpdump

Så här installerar du på Fedora:

sudo dnf install tcpdump

Observera att tcpdump -paketet 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örighet 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änd -D flagga med kommandot tcpdump.

tcpdump -D

Passerar --list-gränssnitt flagga som argument returnerar samma utdata.

tcpdump --list-interfaces

Utdata 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, kommer några argument kommandon tcpdump för att fånga nätverkspaket med ett aktivt gränssnitt.

tcpdump --interface any

Systemet visar följande utdata.

hur man slätar kanter i Photoshop

Relaterad: Vad är Open Systems Interconnection Model?

2. Utmatningsformatet tcpdump

Från den tredje raden anger varje rad i utdata ett specifikt paket som fångas av tcpdump. Så här ser utmatningen av ett enda paket ut.

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

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

Utdata innehåller följande information.

  1. Tidsstämpel för det mottagna paketet
  2. Gränssnittsnamn
  3. Paketflöde
  4. Nätverksprotokollets namn
  5. IP -adress och portinformation
  6. TCP -flaggor
  7. Sekvensnumret av data i paketet
  8. Ack data
  9. Fönster storlek
  10. Paketlängd

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

windows 10 vaknar av sig själv

Det andra och tredje fältet anger gränssnittet som används och paketets flöde. I avsnittet 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ätverkets protokollnamn. I allmänhet 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äll- och destinationssystemet. IP -adresserna följs av portnumret.

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

Flagga namnVärdeBeskrivning
SYNSAnslutningen startade
SLUTETFAnslutningen klar
SKJUTA PÅPData skickas
RSTRAnslutningen återställs
ACK.Bekräftelse

Utdata 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 går vidare i utdatabiten innehåller nästa fält sekvensnumret ( sek 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ångas i avsändarens maskin har 1 som kvittensnummer. På mottagarens ände är Ack -numret värdet på nästa paket.

Det nionde fältet i utdata rymmer fönstret ( vinna 309 ), vilket är antalet byte som finns i den mottagande bufferten. Det finns flera andra fält som följer fönstret, inklusive den maximala segmentstorleken (MSS).

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

3. Begränsa antalet fångade paket

När du kör tcpdump -kommandot för första gången kan du märka 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 -c flagga.

tcpdump --interface any -c 10

Det ovannämnda kommandot kommer att fånga tio paket från alla aktiva nätverksgränssnitt.

4. Filtrera paket baserat på fält

När du felsöker ett problem, blir det inte lättare att få ett stort textblock 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.

Om du bara vill fånga TCP -paket skriver du:

tcpdump --interface any -c 5 tcp

På samma sätt, om du vill filtrera utmatningen med portnumret:

tcpdump --interface any -c 5 port 50

Ovanstående kommando hämtar endast paket som överförs via den angivna porten.

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

tcpdump --interface any -c 5 host 112.123.13.145

Om du vill filtrera paket som skickats eller mottagits av en specifik värd, använd src eller etc argument med kommandot.

tcpdump --interface any -c 5 src 112.123.13.145
tcpdump --interface any -c 5 dst 112.123.13.145

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

tcpdump --interface any -c 10 src 112.123.13.145 and port 80

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

tcpdump --interface any -c 10 '(src 112.123.13.145 or src 234.231.23.234) and (port 45 or port 80)'

5. Visa paketets innehåll

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

Så här ser du innehållet i nästa nätverkspaket som systemet samlar in:

tcpdump --interface any -c 1 -A
tcpdump --interface any -c 1 -x

Relaterat: Vad är paketförlust och hur åtgärdar man orsaken?

6. Spara fångstdata i en fil

Om du vill spara fångstdata för referensändamål finns tcpdump där för att hjälpa dig. Bara passera -i flagga med standardkommandot för att skriva utmatningen till en fil istället för att visa den på skärmen.

tcpdump --interface any -c 10 -w data.pcap

De .pcap filtillägget står för paketinsamling data. Du kan också ge kommandot ovan i ordagrant läge med -v flagga.

tcpdump --interface any -c 10 -w data.pcap -v

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

hur man lägger till länk till instagram -inlägg
tcpdump -r data.pcap

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

tcpdump -r data.pcap port 80

Övervaka 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 på ditt nätverk i realtid.

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

Dela med sig Dela med sig Tweet 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 kommandot nmcli.

Läs Nästa
Relaterade ämnen
  • Linux
  • säkerhet
  • Network Forensics
Om författaren Deepesh Sharma(79 artiklar publicerade)

Deepesh är Junior Editor för Linux på MUO. Han skriver informationsguider på Linux, i syfte att ge alla nykomlingar en lycklig upplevelse. Osäker på filmer, men om du vill prata om teknik är han din kille. På fritiden kan du hitta honom läsa böcker, lyssna på olika musikgenrer eller spela 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!

Klicka här för att prenumerera