Hvordan bruke tcpdump og 6 eksempler

Hvordan bruke tcpdump og 6 eksempler

Prøver du å fange datapakker for å analysere trafikk på nettverket ditt? Kanskje du er en serveradministrator som har støtt på et problem og ønsker å overvåke overførte data på nettverket. Uansett situasjon, er tcpdump Linux -verktøyet det du trenger.





I denne artikkelen vil vi diskutere tcpdump -kommandoen i detalj, sammen med noen guider for hvordan du installerer og bruker tcpdump på ditt Linux -system.





Hva er tcpdump -kommandoen?

Tcpdump er et kraftig nettverksovervåkingsverktøy som lar en bruker filtrere pakker og trafikk på et nettverk effektivt. Du kan få detaljert informasjon relatert til TCP/IP og pakkene som overføres på nettverket ditt. Tcpdump er et kommandolinjeverktøy, noe som betyr at du kan kjøre det på Linux-servere uten skjerm.





Systemadministratorer kan også integrere tcpdump -verktøyet med cron for å automatisere ulike oppgaver som logging. Siden de mange funksjonene gjør den ganske allsidig, fungerer tcpdump både som en feilsøking og et sikkerhetsverktøy.

Slik installerer du tcpdump på Linux

Mens du for det meste finner tcpdump forhåndsinstallert på systemet ditt, leveres noen Linux -distribusjoner ikke med pakken. Derfor må du kanskje installere verktøyet manuelt på systemet ditt.



Du kan sjekke om tcpdump er installert på systemet ditt ved å bruke hvilken kommando.

which tcpdump

Hvis utgangen viser en katalogbane ( /usr/bin/tcpdump ), så har systemet installert pakken. Men hvis ikke, kan du enkelt gjøre det ved hjelp av standard pakkebehandling på systemet ditt.





Slik installerer du tcpdump på Debian-baserte distribusjoner som Ubuntu:

sudo apt-get install tcpdump

Det er også enkelt å installere tcpdump på CentOS.





sudo yum install tcpdump

På Arch-baserte distribusjoner:

sudo pacman -S tcpdump

Slik installerer du på Fedora:

sudo dnf install tcpdump

Vær oppmerksom på at tcpdump -pakken krever libcap som en avhengighet, så sørg for at du også installerer det på systemet ditt.

Tcpdump -eksempler for å fange nettverkspakker på Linux

Nå som du har installert tcpdump på Linux -maskinen din, er det på tide å overvåke noen pakker. Siden tcpdump krever superbrukertillatelser for å utføre de fleste operasjonene, må du legge til sudo til kommandoene dine.

1. Liste over alle nettverksgrensesnitt

For å sjekke hvilke nettverksgrensesnitt som er tilgjengelige for å fange, bruker du -D flagg med tcpdump -kommandoen.

tcpdump -D

Passerer --list-grensesnitt flag som et argument vil returnere den samme utgangen.

tcpdump --list-interfaces

Utgangen vil være en liste over alle nettverksgrensesnittene som er tilstede på systemet ditt.

Etter å ha fått listen over nettverksgrensesnitt, er det på tide å overvåke nettverket ditt ved å fange pakker på systemet ditt. Selv om du kan angi hvilket grensesnitt du vil bruke, vil noen argument kommandoer tcpdump for å fange nettverkspakker ved hjelp av et aktivt grensesnitt.

tcpdump --interface any

Systemet viser følgende utgang.

finn ut hva slettet youtube -video var

I slekt: Hva er modellen for åpne systemer?

2. Utskriftsformatet tcpdump

Fra den tredje linjen angir hver linje i utgangen en bestemt pakke fanget av tcpdump. Slik ser utgangen til en enkelt pakke 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

Husk at ikke alle pakker fanges opp på denne måten, men dette er det generelle formatet etterfulgt av de fleste av dem.

Utgangen inneholder følgende informasjon.

  1. Tidsstempel for den mottatte pakken
  2. Grensesnittnavn
  3. Pakkeflyt
  4. Navnet på nettverksprotokollen
  5. IP -adresse og portdetaljer
  6. TCP -flagg
  7. Sekvensnummeret av data i pakken
  8. Ack data
  9. Vindusstørrelse
  10. Pakkelengde

Det første feltet ( 17.00: 25.369138 ) viser tidsstempelet da systemet sendte eller mottok pakken. Tiden som er registrert hentes fra systemets lokale tid.

hvordan kopiere filer fra android til pc

Det andre og tredje feltet angir grensesnittet som brukes og pakken. I utdraget ovenfor, wlp0s20f3 er navnet på det trådløse grensesnittet og Ute er pakkestrømmen.

Det fjerde feltet inneholder informasjon relatert til nettverksprotokollnavnet. Vanligvis finner du to protokoller- IP og IP6 , der IP betegner IPV4 og IP6 er for IPV6.

Det neste feltet inneholder IP -adressene eller navnet på kilden og destinasjonssystemet. IP -adressene etterfølges av portnummeret.

Det sjette feltet i utdataene består av TCP -flagg. Det er forskjellige flagg som brukes i tcpdump -utgangen.

FlaggnavnVerdiBeskrivelse
SYNSTilkoblingen startet
SLUTTFTilkoblingen er fullført
TRYKKPData skyves
RSTRTilkoblingen nullstilles
ALAS.Bekreftelse

Utgangen kan også inneholde en kombinasjon av flere TCP -flagg. For eksempel, FLAGG [f.] står for en FIN-ACK-pakke.

Når du beveger deg lenger i utskriftskoden, inneholder det neste feltet sekvensnummeret ( sek 196: 568 ) av dataene i pakken. Den første pakken har alltid en positiv heltallsverdi, og de påfølgende pakkene bruker det relative sekvensnummeret for å forbedre dataflyten.

Det neste feltet inneholder bekreftelsesnummeret ( akk 1 ), eller enkelt Ack -nummer. Pakken fanget i avsenderens maskin har 1 som bekreftelsesnummer. På mottakerens ende er Ack -tallet verdien av den neste pakken.

Det niende feltet i utgangen rommer vindusstørrelsen ( vinne 309 ), som er antall byte tilgjengelig i mottaksbufferen. Det er flere andre felt som følger vindusstørrelsen, inkludert maksimal segmentstørrelse (MSS).

Det siste feltet ( lengde 33 ) inneholder lengden på den samlede pakken fanget av tcpdump.

3. Begrens antallet fangede pakker

Mens du kjører tcpdump -kommandoen for første gang, kan du legge merke til at systemet fortsetter å fange nettverkspakker til du sender et avbruddssignal. Du kan overstyre denne standardatferden ved å spesifisere antallet pakker du vil fange på forhånd ved å bruke -c flagg.

tcpdump --interface any -c 10

Den ovennevnte kommandoen vil fange ti pakker fra et hvilket som helst aktivt nettverksgrensesnitt.

4. Filtrer pakker basert på felt

Når du feilsøker et problem, blir det ikke lettere å få en stor tekstblokk på terminalen. Det er der filtreringsfunksjonen i tcpdump spiller inn. Du kan filtrere pakkene i henhold til forskjellige felt, inkludert vert, protokoll, portnummer og mer.

For å fange bare TCP -pakker, skriver du inn:

tcpdump --interface any -c 5 tcp

På samme måte, hvis du vil filtrere utgangen ved hjelp av portnummeret:

tcpdump --interface any -c 5 port 50

Kommandoen ovenfor vil bare hente pakker som sendes gjennom den angitte porten.

Slik får du pakkedetaljene for en bestemt vert:

tcpdump --interface any -c 5 host 112.123.13.145

Hvis du vil filtrere pakker som er sendt eller mottatt av en bestemt vert, bruker du src eller etc argument med kommandoen.

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

Du kan også bruke de logiske operatorene og og eller å kombinere to eller flere uttrykk sammen. For eksempel for å få pakker som tilhører kilde -IP -en 112.123.13.145 og bruk porten 80 :

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

Komplekse uttrykk kan grupperes ved hjelp av parenteser følgende:

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

5. Se innholdet i pakken

Du kan bruke -TIL og -x flagg med kommandoen tcpdump for å analysere innholdet i nettverkspakken. De -TIL flagget står for ASCII format og -x betegner heksadesimal format.

Slik ser du innholdet i den neste nettverkspakken som systemet tar opp:

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

Relatert: Hva er tap av pakker og hvordan fikser jeg årsaken?

6. Lagre Capture Data i en fil

Hvis du vil lagre fangstdataene for referanseformål, er tcpdump der for å hjelpe deg. Bare passere -i flagg med standardkommandoen for å skrive utdataene til en fil i stedet for å vise den på skjermen.

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

De .pcap filtypen står for pakkefangst data. Du kan også utstede den ovennevnte kommandoen i omfattende modus ved hjelp av -v flagg.

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

Å lese a .pcap filen ved hjelp av tcpdump, bruk -r flagg etterfulgt av filbanen. De -r står for Lese .

hvordan du sender en pin -plassering
tcpdump -r data.pcap

Du kan også filtrere nettverkspakker fra pakkedataene som er lagret i filen.

tcpdump -r data.pcap port 80

Overvåking av nettverkstrafikk på Linux

Hvis du har blitt tildelt oppgaven med å administrere en Linux -server, er tcpdump -kommandoen et flott verktøy å inkludere i arsenalet ditt. Du kan enkelt fikse nettverksrelaterte problemer ved å fange pakker som overføres på nettverket ditt i sanntid.

Men før alt dette må enheten din være koblet til internett. For Linux-nybegynnere kan til og med koble til Wi-Fi via kommandolinjen være litt utfordrende. Men hvis du bruker de riktige verktøyene, er det et blunk.

Dele Dele kvitring E -post Hvordan koble til Wi-Fi gjennom Linux-terminalen med Nmcli

Vil du koble til et Wi-Fi-nettverk via Linux-kommandolinjen? Her er hva du trenger å vite om kommandoen nmcli.

Les neste
Relaterte temaer
  • Linux
  • Sikkerhet
  • Network Forensics
Om forfatteren Deepesh Sharma(79 artikler publisert)

Deepesh er Junior Editor for Linux ved MUO. Han skriver informasjonsguider på Linux, med sikte på å gi alle nykommere en lykksalig opplevelse. Usikker på filmer, men hvis du vil snakke om teknologi, er han din fyr. På fritiden kan du finne ham lese bøker, lytte til forskjellige musikksjangre eller spille gitar.

Mer fra Deepesh Sharma

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere