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

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

Hva er tcpdump Command?

Tcpdump er et kraftig nettverksovervåkingsverktøy som lar brukeren 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 det ganske allsidig, fungerer tcpdump som en feilsøking så vel som et sikkerhetsverktøy.

Slik installerer du tcpdump på Linux

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

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

hvilken tcpdump

Hvis utgangen viser en katalogbane (/usr/bin/tcpdump), så har systemet installert pakken. Men hvis ikke, kan du gjøre det enkelt ved å bruke 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 installer tcpdump

På Arch-baserte distribusjoner:

sudo pacman -S tcpdump

Slik installerer du på Fedora:

sudo dnf installere tcpdump

Merk at tcpdump-pakken krever libcap som en avhengighet, så sørg for at du også installerer den 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 dine kommandoer.

1. Liste over alle nettverksgrensesnitt

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

tcpdump -D

Passerer - liste-grensesnitt flagg som argument vil gi samme utdata.

tcpdump - liste-grensesnitt

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 spesifisere hvilket grensesnitt du vil bruke, vil noen argument kommandoer tcpdump for å fange nettverkspakker ved hjelp av hvilket som helst aktivt grensesnitt.

tcpdump - grensesnitt noen

Systemet viser følgende utdata.

I slekt: Hva er samtrafikkmodellen for åpne systemer?

2. Tcpdump-utdataformat

Fra og med 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 localystem.40310> kul01s10-in-f46.1e100.net.https: Flagg [P.], seq 196: 568, ack 1, win 309, options [nop, nop, TS val 117964079 ecr 816509256], lengde 33

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

Utgangen inneholder følgende informasjon.

  1. Tidsstempel for mottatt pakke
  2. Grensesnittnavn
  3. Pakkestrøm
  4. Navnet på nettverksprotokollen
  5. IP-adresse og portdetaljer
  6. TCP-flagg
  7. Sekvensnummeret til data i pakken
  8. Ack data
  9. Vindusstørrelse
  10. Pakkelengde

Det første feltet (17:00:25.369138) viser tidsstempelet når systemet ditt sendte eller mottok pakken. Den registrerte tiden hentes fra systemets lokale tid.

Det andre og tredje feltet angir grensesnittet som brukes og flyten til 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, hvor IP betegner IPV4 og IP6 er for IPV6.

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

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

Flaggnavn Verdi Beskrivelse
SYN S Tilkoblingen startet
FIN F Tilkoblingen fullført
TRYKK P Data skyves
RST R Tilkoblingen er tilbakestilt
ACK . Bekreftelse

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

Flytter vi oss lenger i utgangsutdraget, inneholder neste felt sekvensnummeret (seq 196: 568) av dataene i pakken. Den første pakken har alltid en positiv heltallverdi, og de etterfølgende pakkene bruker det relative sekvensnummeret for å forbedre datastrømmen.

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

Det niende feltet i utgangen har plass til vindusstørrelsen (vinn 309), som er antall byte som er 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 totale pakken fanget av tcpdump.

3. Begrens antall fangede pakker

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

tcpdump - grensesnitt hvilken som helst -c 10

Den nevnte 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 enklere å få en stor blokk med tekstutdata 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, skriv inn:

tcpdump - grensesnitt hvilken som helst -c 5 tcp

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

tcpdump - grensesnitt hvilken som helst -c 5-port 50

Ovennevnte kommando henter bare pakker som sendes gjennom den angitte porten.

Slik får du pakkeopplysningene for en bestemt vert:

tcpdump - grensesnitt hvilken som helst -c 5-vert 112.123.13.145

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

tcpdump - grensesnitt hvilken som helst -c 5 src 112.123.13.145
tcpdump - grensesnitt hvilken som helst -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 kilden IP 112.123.13.145 og bruk porten 80:

tcpdump - grensesnitt hvilken som helst -c 10 src 112.123.13.145 og port 80

Komplekse uttrykk kan grupperes sammen ved hjelp av parentes som følger:

tcpdump - grensesnitt hvilken som helst -c 10 "(src 112.123.13.145 eller src 234.231.23.234) og (port 45 eller port 80)"

5. Vis innholdet i pakken

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

Slik viser du innholdet i neste nettverkspakke som er fanget av systemet:

tcpdump - grensesnitt hvilken som helst -c 1 -A
tcpdump - grensesnitt hvilken som helst -c 1 -x

I slekt: Hva er pakketap og hvordan fikser jeg årsaken?

6. Lagre fangstdata i en fil

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

tcpdump - grensesnitt enhver -c 10 -w data.pcap

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

tcpdump --grensesnitt hvilken som helst -c 10 -w data.pcap -v

Å lese en .pcap fil ved hjelp av tcpdump, bruk -r flagg etterfulgt av filstien. De -r står for Lese.

tcpdump -r data.pcap

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

tcpdump -r data.pcap-port 80

Overvåker nettverkstrafikk på Linux

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

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

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 nmcli-kommandoen.

Les Neste

Relaterte temaer
  • Linux
  • Sikkerhet
  • Network Forensics
Om forfatteren
Deepesh Sharma (37 artikler publisert)

Deepesh er Junior Editor for Linux på MUO. Han har skrevet informasjonsinnhold på internett i over 3 år. På fritiden liker han å skrive, høre på musikk og spille gitaren.

Mer fra Deepesh Sharma

Abonner på vårt nyhetsbrev

Bli med på nyhetsbrevet vårt for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Ett steg til…!

Bekreft e-postadressen din i e-posten vi nettopp sendte deg.

.