Hvordan man Bruger netstat på Linux

  • Dave McKay

    @TheGurkha

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

Linux netstat kommando giver dig en skat-guldgrube af oplysninger om netværksforbindelser, de porte der er i brug, og de processer, der bruger dem. Lær hvordan du bruger det.

Porte, processer og protokoller

netværksstik kan enten tilsluttes eller vente på en forbindelse., Forbindelserne bruger netværksprotokoller som Transport Control Protocol (TCP) eller User Datagram Protocol UDP. De bruger internetprotokoladresser og netværksporte til at etablere forbindelser.

ordet sockets kan fremkalde billeder af et fysisk forbindelsespunkt for en ledning eller et kabel, men i denne sammenhæng er en socket en soft .arekonstruktion, der bruges til at håndtere den ene ende af en netværksdataforbindelse.,

annonce

stikkontakter har to hovedtilstande: de er enten tilsluttet og letter en løbende netværkskommunikation, eller de venter på, at en indgående forbindelse skal oprette forbindelse til dem. Staten, når en stikkontakt er midtvejs ved at etablere en forbindelse på en fjernenhed, men ved at lægge forbigående tilstande til side, kan du tænke på en stikkontakt som enten tilsluttet eller venter (som ofte kaldes lytning).

lyttestikket kaldes serveren, og stikket, der anmoder om en forbindelse med lyttestikket, kaldes en klient., Disse navne har intet at gøre med hard .are eller computerroller. De definerer simpelthen rollen for hver stikkontakt i hver ende af forbindelsen.

netstat kommandoen giver dig mulighed for at finde ud af, hvilke stikkontakter der er tilsluttet, og hvilke stikkontakter der lytter. Det betyder, at det fortæller dig, hvilke porte der er i brug, og hvilke processer der bruger dem. Det kan vise dig routing tabeller og statistikker om dine netværksgrænseflader og multicast-forbindelser.

funktionaliteten afnetstat er blevet gentaget over tid i forskellige Linu. – værktøjer, såsom ip og ss., Det er stadig værd at vide dette granddaddy af alle netværk analyse kommandoer, fordi den er tilgængelig på alle Linux-og Unix-lignende operativsystemer, og selv på Windows-og Mac.

Sådan bruger du det, komplet med eksempelkommandoer.

liste over alle stikkontakter

-a(all) gørnetstat Vis alle de tilsluttede og ventende stikkontakter. Denne kommando kan producere en lang liste, så vi rør den ind i less.,

netstat -a | less
annonce

listen inkluderer TCP (IP), TCP6 (IPv6) og UDP-stik.

omviklingen i terminalvinduet gør det lidt vanskeligt at se, hvad der foregår. Her er et par sektioner fra denne liste:

afsnittet “aktivt Internet” viser de tilsluttede eksterne forbindelser og lokale stikkontakter, der lytter til anmodninger om fjernforbindelse. Det vil sige, det viser de netværksforbindelser, der er (eller vil blive) etableret til eksterne enheder.,

annonce

afsnittet “UNI. – domæne” viser de tilsluttede og lyttende interne forbindelser. Med andre ord viser det de forbindelser, der er etableret i din computer mellem forskellige applikationer, processer og elementer i operativsystemet.

kolonnerne “aktiv Internet” er:

  • Proto: protokollen, der bruges af denne socket (for eksempel TCP eller UDP).
  • Recv-Rec: modtagekøen. Disse er indgående bytes, der er modtaget og buffered, venter på den lokale proces, der bruger denne forbindelse til at læse og forbruge dem.,
  • Send-Send: send køen. Dette viser de bytes, der er klar til at blive sendt fra sendekøen.
  • Lokal adresse: adresseoplysningerne for den lokale ende af forbindelsen. Standarden er for netstat for at vise det lokale værtsnavn for adressen og navnet på Tjenesten for porten.
  • udenlandsk adresse: adressen og portnummeret på den eksterne ende af forbindelsen.
  • stat: tilstanden af den lokale socket. For UDP-stik er dette normalt tomt. Se tilstandstabellen nedenfor.,

for TCP-forbindelser kan tilstandsværdien være en af følgende:

  • lyt: kun Server-side. Stikket venter på en forbindelsesanmodning.
  • SYN-sendt: kun klientsiden. Denne stikkontakt har fremsat en forbindelsesanmodning og venter på at se, om den vil blive accepteret.
  • SYN-modtaget: kun Server-side. Denne stikkontakt venter på en forbindelsesbekræftelse efter at have accepteret en forbindelsesanmodning.
  • etableret: Server og klienter. Der er etableret en fungerende forbindelse mellem serveren og klienten, så data kan overføres mellem de to.,
  • FIN-vent-1: Server og klienter. Dette stik venter på en anmodning om afslutning af forbindelsen fra fjernstikket eller på en bekræftelse af en anmodning om afslutning af forbindelsen, der tidligere blev sendt fra dette stik.
  • FIN-vent-2: Server og klienter. Denne stikkontakt venter på en anmodning om afslutning af forbindelsen fra fjernstikket.luk-vent: Server og klient. Denne stikkontakt venter på en anmodning om afslutning af forbindelsen fra den lokale bruger.
  • lukning: Server og klienter., Denne stikkontakt venter på en tilslutning opsigelse anmodning bekræftelse fra den eksterne stikkontakt.
  • sidste-Ack: Server og klient. Denne stikkontakt venter på en bekræftelse af den anmodning om afslutning af forbindelsen, den sendte til fjernstikket.
  • tid-vent: Server og klienter. Denne stikkontakt sendte en bekræftelse til fjernstikket for at fortælle det, at det modtog fjernstikkets opsigelsesanmodning. Det venter nu på at sikre, at anerkendelse blev modtaget.
  • Lukket: der er ingen forbindelse, så stikket er afsluttet.,

kolonnerne “Uni.domain” er:

  • Proto: den protokol, der bruges af denne socket. Det vil være ” uni..”
  • RefCnt: Referencetælling. Antallet af vedhæftede processer forbundet til denne stikkontakt.
  • Flag: Dette er normalt indstillet til ACC , som repræsenterer SO_ACCEPTON, hvilket betyder, at stikket venter på en forbindelsesanmodning. SO_WAITDATA, vist som W, betyder, at der er data, der venter på at blive læst., SO_NOSPACE, vist som N, betyder, at der ikke er plads til at skrive data til stikket (dvs.sendbufferen er fuld).
  • Type: socket type. Se typetabellen nedenfor.
  • tilstand: tilstanden af stikket. Se tilstandstabellen nedenfor.
  • i-Node: filsystemet inode forbundet med denne socket.
  • sti: filsystemstien til stikket.

uni. – domænestiktypen kan være en af følgende:

  • DGRAM: stikket bruges i datagram-tilstand ved hjælp af meddelelser med fast længde., Datagrammer er hverken garanteret at være pålidelige, sekventeret eller undupliceret.
  • STREAM: denne stikkontakt er en strømstik. Dette er den almindelige” normale ” type stikkontakt. Disse stikkontakter er designet til at give pålidelig sekventeret (i rækkefølge) levering af pakker.
  • RA.: denne sokkel bruges som en rå sokkel. Ra. – stikkontakter fungerer på netværksniveau for OSI-modellen og henviser ikke til TCP-og UDP-overskrifter fra transportniveauet.
  • RDM: dette stik er placeret i den ene ende af en pålideligt leveret meddelelsesforbindelse.,
  • se .packet: denne stikkontakt fungerer som en sekventiel pakkestik, hvilket er et andet middel til at levere pålidelig, sekventeret og uduplikeret pakkelevering.
  • pakke: Ra.interface adgang socket. Packet sockets bruges til at modtage eller sende ra. – pakker på enhedsdriveren (dvs. data link layer) niveau af OSI-modellen.

uni.domain socket state kan være en af følgende:

  • gratis: denne socket er ikke allokeret.lytning: denne stikkontakt lytter til anmodninger om indgående forbindelse.,
  • tilslutning: denne stikkontakt er i færd med at forbinde.
  • tilsluttet: der er oprettet en forbindelse, og stikket er i stand til at modtage og transmittere data.
  • frakobling: forbindelsen er ved at blive afsluttet.
annonce

Wowo,, det er meget information! Mange afnetstat indstillinger forfiner resultaterne på en eller anden måde, men de ændrer ikke indholdet for meget. Lad os se.,

liste over stikkontakter efter Type

kommandoennetstat -a kan give flere oplysninger, end du har brug for at se. Hvis du kun ønsker eller har brug for at se TCP-stikkene, kan du bruge -t (TCP) til at begrænse displayet til kun at vise TCP-stik.

netstat -at | less

displayet ud er stærkt reduceret. De få stikkontakter, der er angivet, er alle TCP-stik.,

-u (UDP) og -x (UNIX) valg opfører sig på samme måde, som begrænser resultaterne til den type socket, der er angivet på kommandolinjen. Her er indstillingen-u (UDP) i brug:

netstat -au | less

kun UDP-stik er angivet.

Listing Sockets by State

for at se de sockets, der er i Lytte-eller ventetilstand, skal du bruge indstillingen -l (listening).

netstat -l | less
annonce

de stikkontakter, der er angivet, er dem, der er i lyttetilstand.,

dette kan kombineres med-T (TCP, -u (UDP) og -. (UNI.) muligheder for yderligere hjem i på sockets af interesse. Lad os kigge efter lyttende TCP-stik:

netstat -lt | less

nu ser vi kun TCP-lyttestik.

netværksstatistik efter protokol

netstat -st | less
annonce

en samling statistikker for TCP-forbindelserne vises iless.

viser procesnavne og PID ‘ er

det kan være nyttigt at se proces-ID (PID) for processen ved hjælp af en socket sammen med navnet på den proces., Indstillingen -p (program) gør netop det. Lad os se, hvad PID ‘ erne og procesnavne er for processerne ved hjælp af en TCP-stik, der er i lyttetilstand. Vi bruger sudo for at sikre, at vi modtager alle de tilgængelige oplysninger, herunder alle oplysninger, der normalt kræver root-tilladelser.

sudo netstat -p -at

Her er det output i en formateret tabel:

Vi har en ekstra kolonne kaldet “pid / programnavn.”Denne kolonne viser PID og navn på processen ved hjælp af hver af stikkene.,

Oversigt Numeriske Adresser

Endnu et skridt vi kan tage for at fjerne en vis tvetydighed er at vise de lokale og eksterne adresser som IP-adresser i stedet for deres løses domæne-og hostnavne. Hvis vi bruger indstillingen -n (numerisk), vises IPv4-adresserne i prikket decimalformat:

sudo netstat -an | less
annonce

IP-adresserne vises som numeriske værdier. Portnumrene vises også, adskilt af et kolon ” : ” fra IP-adressen.

en IP-adresse på 127.0.0.,1 viser, at stikket er bundet til loopback-adressen på den lokale computer. Du kan tænke på en IP-adresse på 0.0.0.0 som betyder ” standardrute “for lokale adresser og” enhver IP-adresse ” for udenlandske adresser. IPv6-adresser vist som “::” er også alle nul-adresser.

de porte, der er angivet, kan let kontrolleres for at se, hvad deres sædvanlige formål er:

  • 22: dette er Secure Shell (SSH) lytteporten.
  • 25: dette den Simple Mail Transfer Protocol (SMTP) lytteport.53: dette er Domain Name System (DNS) lytteport.,68: dette er DHCP-lytteporten Dynamic Host Configuration Protocol (Dynamic Host Configuration Protocol).
  • 631: dette er den fælles UNI.Printing System (CUPS) lytteport.RELATERET: Hvad er forskellen mellem 127.0.0.1 og 0.0.0.0?

    visning af routingtabellen

    -r (rute) viser kernel routingtabellen.,

    sudo netstat -r

    Her er, at produktionen i en pæn tabel:

    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, hvad de kolonner, der betyder:

    • Destination: destination netværk eller destination host enhed (hvis den destination, der er ikke et netværk).
    • Gateway: gateway-adressen. En stjerne ” *” vises her, hvis en gate .ay-adresse ikke er indstillet.
    • Genmask: undernetmasken til ruten.
    • flag: se flag tabellen nedenfor.,
    • MSS: standard maksimal Segmentstørrelse for TCP—forbindelser over denne rute-dette er den største mængde data, der kan modtages i et TCP-segment.
    • vindue: standardvinduestørrelsen for TCP-forbindelser over denne rute, der angiver antallet af pakker, der kan overføres og modtages, før den modtagende buffer er fuld. I praksis forbruges pakkerne af den modtagende ansøgning.
    • irtt: den oprindelige rundtur tid. Denne værdi refereres af kernen til at foretage dynamiske justeringer af TCP-parametre for fjernforbindelser, der er langsomme til at reagere.,
    • Iface: netværksgrænsefladen, hvorfra pakkerne, der sendes over denne rute, overføres.

    flagværdien kan være en af:

    • U: ruten er op.
    • h: Target er en vært og den eneste mulige destination på denne rute.
    • G: brug Gate .ayen.
    • R: genindfør ruten til dynamisk routing.
    • D: dynamisk installeret af routing dæmonen.
    • M: ændret af routing-dæmonen, da den modtog en ICMP-pakke (Internet Control Message Protocol).,
    • A: installeret af addrconf, den automatiserede DNS – og DHCP-konfigurationsfilgenerator.
    • C: cache post.
    • !: Afvis rute.

    Find den Port, der Bruges af en Proces

    Hvis vi pipe output af netstat i grep, kan vi søge efter en proces ved navn og identificere den port, den anvender. Vi bruger -a (alle), -n (numerisk) og -p (program) valg brugt tidligere, og søg efter “sshd.,”

    sudo netstat -anp | grep "sshd"
    Reklame

    grep finder målet streng, og vi kan se, at sshd dæmon er ved hjælp af port 22.

    selvfølgelig kan vi også gøre dette omvendt. Hvis vi søger efter “:22”, kan vi finde ud af, hvilken proces der bruger denne port, hvis nogen.

    sudo netstat -anp | grep ":22"

    Denne gang grep finder “:22” target streng, og vi kan se, at processen, der bruger denne port er sshd dæmon, proces-ID 751.,

    Angiv Netværksgrænsefladerne

    -i(interfaces) – indstillingen viser en tabel over de netværksgrænseflader, somnetstat kan opdage.

    sudo netstat -i

    Her er produktionen i en mere læselig mode:

    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 hvad de kolonner, der betyder:

    • Iface: navnet på interfacet. enp0s3 interface er netværksgrænsefladen til omverdenen, og lo interface er loopback-grænsefladen., Loopback-grænsefladen gør det muligt for processer at kommunikere i computeren ved hjælp af netværksprotokoller, selvom computeren ikke er tilsluttet et netværk.
    • MTU: den maksimale transmissionsenhed (MTU). Dette er den største “pakke”, der kan sendes. Den består af en header, der indeholder routing og protokol flag, og andre metadata, plus de data, der rent faktisk bliver transporteret.
    • r. – OK: antallet af modtagne pakker uden fejl.
    • r.-ERR: antallet af modtagne pakker med fejl. Vi ønsker, at dette skal være så lavt som muligt.,
    • r. – DRP: antallet af pakker faldt (dvs. tabt). Vi ønsker også, at dette skal være så lavt som muligt.
    • r.-OVR: antal pakker tabt på grund af overløb ved modtagelse. Dette betyder normalt, at den modtagende buffer var fuld og ikke kunne acceptere flere data, men flere data blev modtaget og måtte kasseres. Jo lavere dette tal, jo bedre, og nul er perfekt.
    • t.-OK: antallet af pakker, der sendes, uden fejl.
    • r.-ERR: antallet af pakker, der sendes, med fejl. Vi ønsker, at dette skal være nul.,
    • r.-DRP: antallet af pakker faldt ved transmission. Ideelt set bør dette være nul.
    • r.-OVR: antallet af pakker tabt på grund af overløb ved transmission. Dette betyder normalt, at sendbufferen var fuld og ikke kunne acceptere flere data, men flere data var klar til at blive transmitteret og måtte kasseres.
    • Flg: flag. Se flag tabellen nedenfor.

    flagene repræsenterer følgende:

    liste Multicast-Gruppemedlemskaber

    kort sagt gør en multicast-transmission det muligt kun at sende en pakke regardlessn gang, uanset antallet af modtagere., For tjenester som videostreaming øger dette for eksempel effektiviteten fra afsenderens synspunkt med en enorm mængde.

    annonce

    indstillingen-g(grupper) gørnetstat Angiv multicast-gruppemedlemskabet af stikkontakter på hver grænseflade.

    sudo netstat -g

    kolonnerne er ganske enkle:

    • Interface: navnet på den grænseflade, som stikket sender over.RefCnt: referencetællingen, som er antallet af processer, der er fastgjort til stikket.,
    • gruppe: navnet eller identifikatoren for multicast-gruppen.

    De nye børn på blokken

    kommandoerne rute, ip, ifconfig og ss kan give meget af, hvad netstat er i stand til at vise dig. De er alle gode kommandoer og værd at tjekke ud.

    Vi har fokuseret på netstat fordi det er universelt tilgængeligt, uanset hvilket Uni.-lignende operativsystem du arbejder på, selv de uklare.,

    Dave McKay
    Dave McKay brugte først computere, da stanset papirbånd var på mode, og han har programmeret lige siden. Efter over 30 år i IT-branchen er han nu en fuldtids teknologijournalist. I løbet af sin karriere har han arbejdet som freelance-programmør, leder af et internationalt soft .areudviklingsteam, en projektleder for IT-tjenester og senest som databeskyttelsesansvarlig. Dave er en Linu.evangelist og open source fortaler.Læs hele Bio ”

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

Videre til værktøjslinje