Hvordan bruke netstat i GNU / Linux
- Kategori: Linux
Netstat er et veldig kraftig verktøy som vil liste over alle TCP- og UDP-tilkoblinger, så vel som unix-socketforbindelser som for øyeblikket lytter etter tilkoblinger og tilkoblede for øyeblikket. Selv om mange hjemmebrukere ikke nødvendigvis trenger å bekymre seg for dette, vil online-spillere, eller alle som har tenkt å være vert for noen form for server i fremtiden, sikkert på et tidspunkt trenge å håndtere porter.
Netstat er også nyttig for sikkerhet og personvern, for eksempel for å finne ut hvilke programmer som 'snakker' med Internett.
Å bruke netstat kan være en ekstremt enkel prosess, eller det kan bli veldig komplisert og tungt, avhengig av bruk; så i dag vil vi se på noen av de mer vanlige bruksområdene for Netstat.
Som lovet (i artikkelen min ' Hvordan finner jeg nettverksinformasjonen min i Linux ? ') Jeg skal introdusere deg netstat-kommandoen. Denne kommandoen er et veldig nyttig verktøy for å oppdage nettverksinformasjon som rutetabeller, nettverkstilkoblinger, grensesnittstatistikk, maskeradetilkoblinger og multicast-medlemskap. Men det er ikke så enkelt å bruke som noen av de andre 'funn' -verktøyene (for eksempel ifconfig). Med netstat trenger du virkelig å vite hva du leter etter og hvordan du finner det. Denne artikkelen vil hjelpe deg å forstå nettopp det.
Installasjon?
Heldigvis skulle distribusjonen din komme med netstat kommando forhåndsinstallert. For å sjekke dette, åpner du et terminalvindu (det er der du uansett vil bruke netstat) og gi ut kommandoen hvilken nettstat . Denne kommandoen skal returnere noe lignende / Bin / netstat . Det vil fortelle deg at verktøyet er installert og hvor den kjørbare er.
Grunnleggende om Netstat
Den grunnleggende netstat-kommandoen ser ut som:
netstat ARGUMENTVALG
Hvor ARGUMENT er den typen adressefamilie du vil ha informasjon om, og OPTIONS er det valgfrie alternativet som vil spesifisere hvilken type informasjon du får tilbake.
Fordi netstat tilbyr et slikt utvalg av alternativer, kan det være best hvis jeg først lister opp noen av de mer nyttige alternativene.
- til : Viser status for alle stikkontakter og rutetabelloppføringer.
- c : Vis informasjon kontinuerlig.
- d : Vis tilstanden til alle grensesnitt som bruker DHCP.
- er : Vis utvidet informasjon.
- g : Vis informasjon om multicast-gruppemedlemskap for både IPv4 og IPv6.
- Jeg : Vis en tabell over alle nettverksinnsnitt.
- l : Begrens statistikk til et definert grensesnitt.
- M : Vis rutetabeller for multicast.
- n : Viser nettverksadresser som tall i stedet for standardsymbolene.
- p : Vis adressetilsynstabeller.
- P : Begrens statistikk til en definert protokoll.
- r : Vis alle rutetabeller.
- t : Vis TCP-tilkoblinger.
- u : Vis UDP-tilkoblinger.
- v : Bruk verbose mode for output.
Så la oss ta en titt og se hvordan disse kan brukes sammen.
netstat
I seg selv (ingen alternativer) skriver denne kommandoen ut generisk statistikk over verten du for øyeblikket er koblet til.
netstat -an
Denne kommandoen viser alle tilkoblinger til verten, inkludert kilde- og destinasjonsadresser og porter, og viser dem som tall.
netstat -rn
Denne kommandoen viser rutetabellen for verten i numerisk form.
netstat -r
Denne kommandoen viser rutetabellen for verten din.
netstat -natp
Denne kommandoen vil vise aktive TCP-tilkoblinger i numerisk form.
netstat -t - lytting
Dette vil vise deg alle tcp-porter du vert lytter til.
netstat - statistikk
Denne kommandoen viser forskjellige statistikker for vertens grensesnitt. Merk at denne kommandoen vil vise MYE statistikk.
Som du kan se, vil denne kommandoen vise ganske mye informasjon. På toppen av det kan det hende du må røre denne kommandoen gjennom mindre kommando for å se den lettere. Den fullstendige kommandoen vil se ut som netstat - statistikk | mindre. Hvis du bruker det på den måten, kan du bruke piltastene til å bla opp og ned gjennom ouput.
Brukstips for Netstat
En av de mest grunnleggende og vanlige måtene å bruke netstat på er å sjekke hvilke porter som lytter
- netstat -l
Noe som gir noe slikt på mitt nylig installerte Antergos-system
Eller hvis du ønsker å fokusere søket litt mer, kan du legge til et annet alternativ for å sortere spesifikt for forskjellige typer forbindelser
- netstat -lt # for TCP
- netstat -lu # for UDP
- netstat -lx # for Unix
Du kan også gå på den motsatte enden av spekteret og liste opp alle tilkoblinger
- netstat -a
Hvis du foretrekker det, er et annet alternativ som kan være nyttig å huske på å bruke alternativet ‘n’. Når du for eksempel bruker netstat -n eller netstat -ltn, vil ikke alle vertsnavn forsøke å bli løst, og bare IP-adresser vil bli vist, som i eksemplet nedenfor.
Som du kan se, ble localhost på navn løst til sin numeriske verdi etter bruk av 'n' alternativet
En annen måte å bruke netstat på er netstat -ie, ‘i’ for grensesnitt og ‘e’ for ‘utvidet’ som vil bidra til å gi oss en mer menneskelig lesbar utgang.
netstat -ie # Dette vil vise oss en liste over nettverksgrensesnitt og informasjon om hver enhet.
Avanserte Netstat-tips
Det vi vil gjøre er å fortelle netstat å gi oss output for spesifikke applikasjoner som lytter etter tcp-tilkoblinger. For å gjøre dette utsteder vi kommandoen:
- netstat - tcp - lytte - programmer
Utdataene for denne kommandoen vil se ut som:
Proto Recv-Q Send-Q Lokal adresse Utenriksadresse Stat PID / Program
tcp 0 0 *: ssh *: * LYTT 25469 / sshd
tcp 0 0 *: httpd *: * LYTT 26754 / httpd
tcp 0 0 localhost: ipp *: * LISTEN -
Nå kan du faktisk se litt nyttig informasjon. I utskriften ovenfor kan du se at både sshd og httpd lytter etter innkommende tilkoblinger. Ovennevnte er bare en utdrag om hvordan utdataene kan se ut. Det som er veldig nyttig med denne kommandoen, er at den vil vise deg om det er en kommando eller lokal adresse som lytter til innkommende tilkoblinger som ikke burde lytte. Hvis du finner et program som ikke bør lytte, dreper du det for å være trygt.
Rute
Netstat kan raskt skrive ut maskinenes rutetabell med kommandoen:
netstat -r
Utgangen til denne kommandoen vil se ut som:
Kernel IP-rutingtabell
Destination Gateway Genmask Flagg MSS Window irtt Iface 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
standard 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
Statistikk
Dette er en av fordelene med netstat-verktøyene. Med dette kan du finne ut nøyaktig statistikken for hver protokoll. Den grunnleggende kommandostrukturen er:
netstat - statistikk
som vil gi deg langt mer informasjon enn du ønsker. Si at du bare vil se statistikk over TCP-protokollen. For dette kan du gi kommandoen:
netstat -t - statistikk
Utgangen til kommandoen over vil inneholde informasjon som:
tcp:
4343 aktive tilkoblingsåpninger
8 passive tilkoblingsåpninger
5 mislykkede tilkoblingsforsøk
178 tilbakestillinger av tilkoblinger mottatt
6 forbindelser opprettet
59075 mottatte segmenter
60033 segmenter sendes ut
76 segmenter overført
0 dårlige segmenter mottatt.
303 tilbakestillinger sendt
Eller du kan få informasjon om UDP i tillegg med kommandoen:
netstat -u - statistikk
Noe som vil gi deg lignende utdata for UDP-protokollen.
Bli kreativ
Hva om du ville se alle unike IP-adresser koblet til en server? Du kan gjøre det med netstat (og ved hjelp av noen få andre verktøy) slik:
netstat -nat | awk '{print $ 5}' | kutt -d: -f1 | sed -e '/ ^ $ / d | uniq
Utdataene fra kommandoen ovenfor vil avhenge av hvor mye trafikk maskinen / serveren din får. Men den vil inneholde alle unike IP-adresser som prøver å koble til serveren din.
Hva med å sjekke for å se om serveren din er under et DOS-angrep? Du kan gjøre det med nettstat som dette:
netstat -anp | grep 'tcp | udp' | awk '{print $ 5}' | kutt -d: -f1 | sorter | uniq -c | sortere -n
Kommandoen ovenfor viser IP-adressene som ber om den største mengden tilkoblinger til serveren din. Hvis du ser et nummer som er langt høyere enn det burde være, er du sannsynligvis under et Denial of Service-angrep.
Siste tanker
Netstat er et av disse verktøyene du aldri virkelig tror du trenger, før du plutselig gjør det; og det er alltid godt å vite hvordan man bruker det, hvis behovet noen gang oppstår minst på noen grunnleggende nivå. For mer informasjon om hvordan du bruker netstat-kommandoen og dens alternativer, sjekk ut mannssidene ved å skrive mann netstat .
Nå du: Hva er ditt foretrukne verktøy for å sjekke nettverksinformasjon, og hvorfor? Gi oss beskjed i kommentarene!
Relaterte artikler
- Hvordan finner jeg nettverksinformasjonen min - i Linux?
- Grunnleggende om feilsøking i nettverket: Ipconfig-kommandoen
- Sette opp CSF-brannmur frontend for IPTables
- Noen nyttige, men dunkle, Linux-administratorverktøy
- Feilsøke nettverksproblemer med Gnome's Nettools