Hvordan Bruke netstat på Linux

  • Dave McKay

    @TheGurkha

  • februar 17, 2020, 8:00 am EDT
Fatmawati Achmad Zaenuri/

Linux netstat – kommandoen gir deg en skatt-mengder av informasjon om nettverkstilkoblinger, hvilke porter som er i bruk, og de prosesser ved hjelp av dem. Lær hvordan du bruker det.

– Porter, Prosesser og Protokoller

Nettverk stikkontakter kan enten være koblet eller venter for en tilkobling., Tilkoblingen bruker nettverk protokoller som Transport Control Protocol (TCP) eller User Datagram Protocol UDP. De bruker Internet Protocol-adresser og nettverk porter for å etablere forbindelser.

ordet stikkontakter kan trylle opp bilder av et fysisk kontaktpunkt for en leder eller kabel, men i denne sammenheng, en socket er en programvare konstruere brukes til å håndtere ene enden av en nettverkskabel datatilkobling.,

Annonsering

Sockets har i hovedsak to stater: De er enten koblet til og legge til rette for en pågående nettverk kommunikasjon, eller de venter på en innkommende tilkobling for å koble til dem. Det er andre stater, slik som staten når en kontakt er midtveis å etablere en tilkobling på en ekstern enhet, men å sette forbigående tilstander til side, kan du tenke på en måte som enten tilkoblet eller venter (som ofte kalles lytting).

lytting socket kalles server, og den kontakten som ber om en tilkobling med å lytte socket kalles en klient., Disse navnene har ingenting å gjøre med maskinvare eller datamaskinen roller. De rett og slett definere rollen til hver kontakt i begge ender av forbindelsen.

netstat – kommandoen lar deg oppdage hvilke kontakter som er tilkoblet, og hvilke kontakter som lytter. Mening, det forteller deg hvilke porter som er i bruk og hvilke prosesser som er med dem. Det kan vise deg ruting tabeller og statistikk om nettverket grensesnitt og multicast-tilkoblinger.

funksjonaliteten av netstat har blitt kopiert over tid i forskjellige Linux-verktøy, som for eksempel ip og ss., Det er likevel verdt å vite dette bestefaren av alle nettverk analyse kommandoer, fordi det er tilgjengelig på alle Linux-og Unix-lignende operativsystemer, og selv på Windows og Mac.

Her er hvordan du skal bruke det, komplett med eksempel på kommandoer.

en Liste over Alle Stikkontakter

-a (alle) alternativet gjør netstat vis alle tilkoblede og venter kontaktene. Denne kommandoen er ansvarlig for å produsere en lang liste, så vi rør det inn less.,

netstat -a | less
Annonsering

oppføringen inneholder TCP (IP), TCP6 (IPv6), og UDP sockets.

The wrap-around i terminal-vinduet gjør det litt vanskelig å se hva som skjer. Her er et par avsnitt fra oppføringen:

«Aktiv Internett» delen viser den tilkoblede eksterne tilkoblinger og lokale sockets lytte for ekstern tilkobling forespørsler. Det er, det viser nettverkstilkoblinger som er (eller vil bli) etablert for å eksterne enheter.,

Annonsering

«UNIX-domenet» viser koblet til og lytte interne tilkoblinger. Med andre ord, det viser forbindelser som har vært etablert i datamaskinen mellom forskjellige programmer, prosesser og elementer av operativsystemet.

«Aktiv Internett» kolonner:

  • Proto: protokollen som brukes av denne kontakten (for eksempel TCP eller UDP).
  • Recv-Q: får køen. Disse er innkommende byte som er mottatt, og er bufret, venter på den lokale prosessen det er å bruke denne sammenhengen til å lese og bruker dem.,
  • Send-Q: send køen. Dette viser byte som er klar til å bli sendt fra den sende køen.
  • Lokal adresse: adressen til den lokale enden av forbindelsen. Standard er for netstat for å vise den lokale vertsnavn for adressen, og navnet på tjenesten for porten.
  • Utenlandsk adresse: adressen og portnummeret til den eksterne enden av forbindelsen.
  • Staten: staten av den lokale kontakten. For UDP sockets, dette er vanligvis tomme. Se state tabellen nedenfor.,

For TCP-tilkoblinger, staten verdi kan være en av følgende :

  • LYTT: Server-siden. Kontakten venter for en tilkobling forespørsel.
  • SYN-SENT: Klient-siden. Denne kontakten har laget en tilkoblingsforespørsel og venter for å se om det vil bli akseptert.
  • SYN-MOTTATT: Server-siden. Denne kontakten venter for en tilkobling anerkjennelse etter godtar en tilkoblingsforespørsel.
  • OPPRETTET: Server og klienter. En fungerende tilkobling har blitt etablert mellom server og klient, slik at data skal overføres mellom de to.,
  • FIN-VENTE-1: Server og klienter. Denne kontakten venter for en tilkobling oppsigelsen fra den eksterne kontakten, eller for en erkjennelse av en sammenheng oppsigelsen som tidligere ble sendt fra denne kontakten.
  • FIN-VENTE-2: Server og klienter. Denne kontakten venter for en tilkobling oppsigelsen fra den eksterne kontakten.
  • LUKK-VENT: Server og klient. Denne kontakten venter for en tilkobling oppsigelsen fra den lokale brukeren.
  • LUKKING: Server og klienter., Denne kontakten venter for en tilkobling avslutning be om bekreftelse fra den eksterne kontakten.
  • SISTE-ACK: Server og klient. Denne kontakten er å vente på en bekreftelse av tilkoblingen oppsigelsen det sendes til den eksterne kontakten.
  • TID-VENT: Server og klienter. Denne kontakten sendes en bekreftelse til den eksterne kontakten for å la dem vite at den fikk den eksterne kontakten er oppsigelsen. Det er nå ventet å sørge for at bekreftelse er mottatt.
  • STENGT: Det er ingen sammenheng, slik at kontakten har blitt avsluttet.,

«Unix-domene» kolonner:

  • Proto: Den protokollen som brukes av denne kontakten. Det vil være «unix.»
  • RefCnt: Referanse teller. Antall festet prosesser som er koblet til denne kontakten.
  • Flagg: Dette er vanligvis satt til ACC , som representerer SO_ACCEPTON, som betyr at kontakten er klar for en tilkobling forespørsel. SO_WAITDATA, vist som W, betyr det at det er data som venter på å bli lest., SO_NOSPACE, vist som N, betyr det at det ikke er plass til å skrive data til kontakten (dvs., send bufferen er full).
  • Skriv: kontakten type. Se type i tabellen nedenfor.
  • Tilstand: Den tilstand av sokkelen. Se state tabellen nedenfor.
  • jeg-Node: filsystemet inode forbundet med denne kontakten.
  • Banen: Den file system vei til kontakten.

Unix domene socket typen kan være ett av følgende:

  • DGRAM: kontakten brukes i datagram-modus, ved hjelp av meldinger med fast lengde., Datagrammer, er hverken garantert å være pålitelig, sekvensert, eller som savner sidestykke.
  • STREAM: Denne kontakten er en strøm i stikkontakten. Dette er vanlig «vanlig» type socket-forbindelse. Disse kontaktene er utformet for å gi pålitelig sekvensert (i rekkefølge) levering av pakker.
  • RAW: Denne kontakten brukes som et raw-kontakten. Raw sockets fungere på nettverket nivå i OSI-Modellen og ikke referanse TCP-og UDP-overskrifter fra transport nivå.
  • RDM: Denne kontakten er plassert på den ene enden av en pålitelig levert meldinger-tilkobling.,
  • SEQPACKET: Denne kontakten fungerer som en sekvensiell packet kontakten, som er en annen måte å gi pålitelig, sekvensert, og som savner sidestykke pakken levering.
  • PAKKEDATA: Raw-grensesnitt tilgang sokkelen. Packet stikkontakter brukes til å motta eller sende raw-pakker på enheten driver (dvs., data link layer) nivå i OSI-modellen.

Unix domene socket staten kan være en av følgende:

  • GRATIS: Denne kontakten er ledig.
  • LYTTING: Denne kontakten er å lytte etter innkommende forespørsler.,
  • TILKOBLING: Denne kontakten er i ferd med å koble seg til.
  • er KOBLET til: EN tilkobling er opprettet, og kontakten er i stand til å overføre eller motta data.
  • KOBLE fra: forbindelsen er i ferd med å bli avsluttet.
Annonsering

Wow, det er mye informasjon! Mange av netstat valg avgrense resultatene på en eller annen måte, men de trenger ikke å endre innholdet for mye. La oss ta en titt.,

Liste Sockets av Typen

netstat -a – kommandoen kan gi mer informasjon enn du trenger å se. Hvis du kun ønsker eller har behov for å se TCP sockets, kan du bruke -t (TCP) muligheten til å begrense visningen til å bare vise TCP sockets.

netstat -at | less

displayet ut er sterkt redusert. De få stikkontakter som er oppført nedenfor, er alle TCP sockets.,

-u (UDP) og -x (UNIX) valg oppføre seg på en lignende måte, begrense resultatene til den type stikkontakt som er angitt på kommandolinjen. Her er den -u (UDP) – alternativet i bruk:

netstat -au | less

Bare UDP sockets er oppført.

Liste Sockets av Statlige

for Å se kontaktene som er i lytting eller venter, kan du bruke -l (lytte) alternativ.

netstat -l | less
Annonsering

kontaktene som er oppført nedenfor, er de som er i lytting staten.,

Dette kan kombineres med -t (TCP, -u (UDP) og x (UNIX) valg til videre hjem på fotstykkene av interesse. La oss se for å lytte TCP sockets:

netstat -lt | less

Nå, vi ser bare å lytte TCP sockets.

Nettverk Statistikk ved Protokollen

netstat -st | less
Annonsering

En samling av statistikk for TCP-tilkoblinger er vist i less.

som Viser Prosessen Navn og Pid –

Det kan være nyttig å se prosess-ID (PID) av prosessen ved hjelp av en stikkontakt, sammen med navnet på den prosessen., -p (program) alternativet gjør nettopp det. La oss se hva Pid-og prosess navn er for prosesser ved å bruke en TCP socket som er i lytting staten. Vi bruker sudo for å være sikker på at vi får all den informasjonen som er tilgjengelig, inkludert all informasjon som normalt krever root-rettigheter.

sudo netstat -p -at

Her er det utgang i en formatert tabell:

– Vi har fått en ekstra kolonne som heter «PID/program navn.»Denne kolonnen viser PID og navnet på prosessen med hver av kontaktene.,

Liste Numeriske Adresser

et steg kan vi ta for å fjerne noen tvetydighet er å vise de lokale og eksterne adresser som IP-adresser i stedet for at de er løst domene og vertsnavn. Hvis vi bruker -n (numerisk) – alternativet, IPv4-adresser er vist i prikkete desimal-format:

sudo netstat -an | less
Annonsering

IP-adresser blir vist som numeriske verdier. Portnumrene er også vist, skilt med et kolon » : » fra IP-Adressen.

En IP-adresse av 127.0.0.,1 viser at kontakten er bundet til å loopback-adressen til den lokale datamaskinen. Du kan tenke på en IP-adresse 0.0.0.0 som betyr «standard rute» for lokale adresser, og «alle IP-adresse» for utenlandske adresser. IPv6-adressene som «::» er også null-postadresser.

portene som er oppført lett kan kontrolleres for å se hva deres vanlige formål er:

  • 22: Dette er SSH (Secure Shell) lytte port.
  • 25: Dette Simple Mail Transfer Protocol (SMTP) port lytte.
  • 53: Dette er Domain Name System (DNS) – lytte-port.,
  • 68: Dette er Dynamic Host Configuration Protocol (DHCP) for å lytte port.
  • 631: Dette er Common UNIX Printing System (CUPS) lytte port.

i SLEKT: Hva er Forskjellen Mellom 127.0.0.1 og 0.0.0.0?

Vise Ruting-Tabellen

-r (rute) alternativet viser kjernen ruting-tabellen.,

sudo netstat -r

Her er det utgang i en pen bord:

Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default Vigor.router 0.0.0.0 UG 0 0 0 enp0s3 link-local 0.0.0.0 255.255.0.0 U 0 0 0 enp0s3 192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3

Og, her er hva kolonnene betyr:

  • Mål: målet nettverk eller reisemål vert enhet (hvis målet er ikke et nettverk).
  • Gateway: gateway-adressen. En stjerne «*» vises her hvis en gateway-adressen er ikke satt.
  • Genmask: nettverksmasken for ruten.
  • Flagg: Se flaggene tabellen nedenfor.,
  • MSS: Standard Maximum Segment Size for TCP-tilkoblinger over denne ruten—dette er den største mengden av data som kan bli mottatt i en TCP-segment.
  • Vindu: standard vindu størrelse for TCP-tilkoblinger over denne ruten, som viser antall pakker som kan overføres og mottas før mottak av bufferen er full. I praksis, pakkene er fortært ved mottak av søknad.
  • irtt: Den Første Runden reisetid. Denne verdien er referert til av kernel for å lage dynamiske tilpasninger til TCP parametere for eksterne tilkoblinger som er treg til å svare.,
  • Eåsyn: nettverksgrensesnittet som pakker som sendes over denne ruten er overført.

flags-verdien kan være en av:

  • U: ruten er opp.
  • H: Målet er en vert og den eneste destinasjonen mulig på denne ruten.
  • G: Bruk gateway.
  • R: Gjeninnsette rute for dynamisk ruting.
  • D: Dynamisk installert ved ruting-daemonen.
  • M: Endret ved ruting-daemonen når den fikk en Internet Control Message Protocol (ICMP) – pakke.,
  • A: Installert av addrconf, automatiserte DNS og DHCP-config-filen generator.
  • C: Cache-oppføring.
  • !: Avvis rute.

Finn den Porten som Brukes av en Prosess

Hvis vi pipe utgangen av netstat ved grep, vi kan søke for en prosess med navn og identifisere port det er å bruke. Vi bruker -a (alle), -n (numerisk) og -p (program) valg brukt tidligere, og søk etter «sshd.,»

sudo netstat -anp | grep "sshd"
Annonsering

grep finner målet streng, og vi ser at sshd daemon bruker port 22.

selvfølgelig, kan vi også gjøre dette i motsatt rekkefølge. Hvis vi søk etter «:22», kan vi finne ut hvilken prosess som bruker denne porten, hvis det er noen.

sudo netstat -anp | grep ":22"

Denne gangen grep finner «:22» target streng, og vi ser at prosessen som bruker denne porten er sshd daemon, prosess-ID 751.,

Liste Nettverket Grensesnitt

-i (grensesnitt) alternativet, vises en tabell over nettverk grensesnitt som netstat kan oppdage.

sudo netstat -i

Her er produksjonen i en mer forståelig måte:

Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg enp0s3 1500 4520671 0 0 0 4779773 0 0 0 BMRU lo 65536 30175 0 0 0 30175 0 0 0 LRU

Dette er hva kolonnene betyr:

  • Eåsyn: navnet på grensesnittet. enp0s3 grensesnitt er nettverk grensesnitt til omverdenen, og lo grensesnittet er loopback-grensesnitt., Loopback-grensesnittet gjør det mulig prosesser for å intercommunicate i datamaskinen ved hjelp av nettverk protokoller, selv om datamaskinen ikke er koblet til et nettverk.
  • MTU: Maksimal overføringsenhet (MTU). Dette er den største «pakke» som kan sendes. Det består av en header som inneholder ruting protokoll flagg, og andre metadata, pluss de data som faktisk blir transportert.
  • RX-OK: antall pakker mottatt, med ingen feil.
  • RX-ERR: antall pakker mottatt, med feil. Vi ønsker at dette skal være så lav som mulig.,
  • RX-U: antall pakker droppet (dvs., tapt). Vi ønsker også at dette skal være så lavt som mulig.
  • RX-OVR: Antall pakker går tapt på grunn av overløp når du mottar. Dette betyr vanligvis at du mottar bufferen var full, og kunne ikke akseptere noe mer data, men mer data ble mottatt og måtte kastes. Jo lavere dette tallet er, desto bedre, og null er perfekt.
  • TX-OK: antall pakker som er sendt, med ingen feil.
  • RX-ERR: antall pakker som er sendt, med feil. Vi ønsker at dette skal være null.,
  • RX-U: antall pakker droppet når du overfører. Ideelt sett bør dette være null.
  • RX-OVR: antall pakker går tapt på grunn av overløp når du overfører. Dette betyr vanligvis send bufferen var full, og kunne ikke akseptere noe mer data, men mer data var klar til å bli overført og måtte kastes.
  • Flg: Flagg. Se flaggene tabellen nedenfor.

flagg representerer følgende:

Liste Multicast-Gruppe Medlemskap

Enkelt sagt, en multicast-sending gjør det mulig for en pakke som skal sendes bare én gang, uavhengig av antallet mottakere., For tjenester, for eksempel direkteavspilling av video, for eksempel, øker effektivitet fra avsenderens synspunkt av en enorm mengde.

Annonsering

-g (grupper) alternativet gjør netstat liste multicast-gruppe medlemskap i stikkontakter på hvert grensesnitt.

sudo netstat -g

kolonnene er ganske enkel:

  • Grensesnitt: navnet på grensesnittet som du kontakten sender.
  • RefCnt: referanse telle, som er nummer av prosesser knyttet til kontakten.,
  • Gruppe: navnet eller identifikator for multicast-gruppen.

New Kids on the Block

ruten, ip, ifconfig, og ss-kommandoer kan gi mye av det netstat er i stand til å vise deg. De er alle store, kommandoer og verdt å sjekke ut.

Vi har fokusert på netstat fordi den er allment tilgjengelig, uavhengig av hvilken Unix-lignende operativsystem du arbeider på, selv skjule seg.,

Dave McKay
Dave McKay først brukt datamaskiner når hullet papir tape som var på moten, og han har vært programmering siden den gang. Etter over 30 år i IT-bransjen, han er nå en full-time-teknologi journalist. I løpet av sin karriere har han jobbet som freelance programmerer, leder av et internasjonalt software utvikling team, en IT-tjenester project manager, og, senest, som en Data Protection Officer. Dave er en Linux-evangelist og åpen kildekode-talsmann.Les Hele Bio «

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

Hopp til verktøylinje