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.
- Tidsstämpel för det mottagna paketet
- Gränssnittsnamn
- Paketflöde
- Nätverksprotokollets namn
- IP -adress och portinformation
- TCP -flaggor
- Sekvensnumret av data i paketet
- Ack data
- Fönster storlek
- 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 namn | Värde | Beskrivning |
---|---|---|
SYN | S | Anslutningen startade |
SLUTET | F | Anslutningen klar |
SKJUTA PÅ | P | Data skickas |
RST | R | Anslutningen å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 NmcliVill 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
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 SharmaPrenumerera 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