Kuidas kasutada netstat Linuxis

Linux netstat käsk annab teile rikkaliku teabe oma võrguühenduste, kasutatavate portide ja neid kasutavate protsesside kohta. Vaadake, kuidas seda kasutada.

Pordid, protsessid ja protokollid

Võrgupesasid saab kas ühendada või ühendust oodata. Ühendused kasutavad võrguprotokolle nagu transpordi juhtimisprotokoll (TCP) või User Datagram Protocol UDP. Nad kasutavad ühenduse loomiseks Interneti-protokolli aadresse ja võrguporte.

Sõna pistikupesad võib tekitada juhtme või kaabli jaoks füüsilise ühenduspunkti kujutisi, kuid selles kontekstis on pesa tarkvarakonstruktsioon, mida kasutatakse võrgu andmeühenduse ühe otsa käitlemiseks.

Pistikupesadel on kaks peamist olekut: nad on mõlemad ühendatud ja hõlbustavad pidevat võrgusidet või on nii ootab sissetuleva ühenduse loomiseks. On ka teisi olekuid, näiteks olek, kui pistikupesa on kaugseadmes ühenduse loomise keskel, kuid kui mööduvad olekud kõrvale jätta, võite mõelda, et pesa on kas ühendatud või ootav (mida sageli nimetatakse kuulamine).

Kuulamispesa nimetatakse serverja pesa, mis nõuab ühendust kuulamispesaga, nimetatakse a klient. Nendel nimedel pole riistvara ega arvutirollidega mingit pistmist. Nad lihtsalt määratlevad iga pistikupesa rolli ühenduse mõlemas otsas.

The netstat käsu abil saate teada, millised pistikupesad on ühendatud ja millised pesad kuulavad. See tähendab, et see ütleb teile, milliseid porte kasutatakse ja millised protsessid neid kasutavad. See võib näidata teile marsruutimistabeleid ja statistikat teie võrguliideste ja multisaadete ühenduste kohta.

Funktsionaalsus netstat on aja jooksul korratud erinevates Linuxi utiliitides, näiteks ip ja ss. Ikka tasub teada seda võrguanalüüsi käskude vanaisa, sest see on saadaval kõikides Linuxi ja Unixi-laadsetes operatsioonisüsteemides ning isegi Windowsis ja Macis.

Kasutage seda koos näidekäskudega.

Kõigi pistikupesade loetelu

The -a (kõik) variant teeb netstat kuva kõik ühendatud ja ootel olevad pistikupesad. See käsk võib tekitada pika nimekirja, nii et me sisestame selle vähem.

netstat -a | vähem

See loend sisaldab TCP (IP), TCP6 (IPv6) ja UDP pesasid.

Terminali aknasse mähkimine muudab toimuva nägemise veidi keeruliseks. Siin on paar jaotist sellest loendist:

Aktiivsed Interneti-ühendused (serverid ja loodud) : ipp 0.0.0.0:* LISTEN tcp 0 0 localhost: smtp 0.0.0.0:* LISTEN tcp6 0 0 [::]: ssh [::]: * LISTEN tcp6 0 0 ip6-localhost: ipp [::]: * KUULA. . . Aktiivsed UNIX-i domeenipesad (serverid ja loodud) Proto RefCnt lipud Tüüp Osariik I-sõlme Tee unix 24 [] DGRAM 12831 / run / systemd / journal / dev-log unix 2 [ACC] STREAMI KUULAMINE 24747 @ / tmp / dbus-zH6clYmvw8 unix 2 [] DGRAM 26372 / run / user / 1000 / systemd / teavita unix 2 [] DGRAM 23382 / run / user / 121 / systemd / teavita unix 2 [ACC] SEQPACKET LISTENING 12839 / run / udev / control

Jaotises „Aktiivne Internet“ on loetletud ühendatud välised ühendused ja kohalikud pistikupesad, mis kuulavad kaugühendusetaotlusi. See tähendab, et selles loetletakse võrguühendused, mis on loodud (või luuakse) väliste seadmetega.

Jaotises „UNIX domeen“ on loetletud ühendatud ja kuulatavad sisemised ühendused. Teisisõnu loetleb see teie arvutis loodud ühendused erinevate rakenduste, protsesside ja operatsioonisüsteemi elementide vahel.

Veergud „Aktiivne Internet” on järgmised:

  • Proto: Selle sokli poolt kasutatav protokoll (näiteks TCP või UDP).
  • Recv-Q: Vastuvõtmise järjekord. Need on vastuvõetud ja puhverdatud baidid, mis ootavad kohalikku protsessi, mis seda ühendust kasutab nende lugemiseks ja tarbimiseks.
  • Saada-Q: Saatmisjärjekord. See näitab baiti, mis on saatmisjärjekorrast saatmiseks valmis.
  • Kohalik aadress: Ühenduse kohaliku otsa aadressi üksikasjad. Vaikimisi on netstat kuvada aadressi jaoks kohalik hosti nimi ja porditeenuse nimi.
  • Välismaa aadress: Ühenduse kaugotsaku aadress ja pordi number.
  • Riik: Kohaliku pistikupesa olek. UDP-pistikupesade puhul on see tavaliselt tühi. Vaadake riik tabel.

TCP-ühenduste korral riik väärtus võib olla üks järgmistest:

  • KUULA: Ainult serveripoolne. Pistikupesa ootab ühenduse taotlust.
  • SÜNDITUD: Ainult kliendipoolne. See pistikupesa on teinud ühenduse taotluse ja ootab, kas see võetakse vastu.
  • SÜNNITUD: Ainult serveripoolne. See pistikupesa ootab ühenduse kinnitamist pärast ühendustaotluse vastuvõtmist.
  • ASUTATUD: Server ja kliendid. Serveri ja kliendi vahel on loodud toimiv ühendus, mis võimaldab andmeid nende kahe vahel edastada.
  • FIN-OOT-1: Server ja kliendid. See pesa ootab kaugühenduspistikust ühenduse lõpetamise taotlust või selle pistikupesast varem saadetud ühenduse lõpetamise taotluse kinnitust.
  • FIN-OOT-2: Server ja kliendid. See pesa ootab ühenduse lõpetamise taotlust kaugpesast.
  • SULGE OOTA: Server ja klient. See pesa ootab kohaliku kasutaja ühenduse katkestamise taotlust.
  • SULETUD: Server ja kliendid. See pesa ootab ühenduse lõpetamise päringu kinnitamist kaugpesast.
  • LAST-ACK: Server ja klient. See pesa ootab kinnitust kaugühenduspessa saadetud ühenduse lõpetamise taotlusest.
  • AEG-OOT: Server ja kliendid. See pesa saatis kaugpesale kinnituse, et ta teavitas, et sai kaugpesa lõpetamise taotluse. Nüüd ootab kinnituse kättesaamise veendumust.
  • SULETUD: Ühendust pole, seega on pistikupesa lõpetatud.

Veerud „Unixi domeen” on järgmised:

  • Proto: Selle sokli kasutatav protokoll. See saab olema "unix".
  • RefCnt: Võrdlusarv. Selle pistikupesaga ühendatud manustatud protsesside arv.
  • Lipud: Tavaliselt on selleks seatud ACC , mis tähistab SO_ACCEPTON, mis tähendab, et pesa ootab ühenduse taotlust. SO_WAITDATA, näidatud kui Wtähendab, et andmeid ootab lugemine. SO_NOSPACE, näidatud kui Ntähendab, et pesasse andmete kirjutamiseks pole ruumi (st saatmispuhver on täis).
  • Tüüp: Pistikupesa tüüp. Vaadake tüüp allolev tabel.
  • Riik: Pistiku olek. Vaadake riik allolev tabel.
  • I-sõlm: Selle sokliga seotud failisüsteemi inood.
  • Tee: Failisüsteemi tee soklisse.

Unixi domeenipesa tüüp võib olla üks järgmistest:

  • DGRAM: Pistikut kasutatakse datagrammi režiimis, kasutades fikseeritud pikkusega teateid. Datagrammide usaldusväärsus, järjestamine ega dubleerimine pole garanteeritud.
  • VOOL: See pesa on voo pesa. See on tavaline pistikupesa tavaline tüüp. Need pistikupesad on ette nähtud pakettide usaldusväärse järjestikuse (järjekorras) edastamise tagamiseks.
  • RAW: Seda pesa kasutatakse toorpesana. Toored pistikupesad töötavad OSI mudeli võrgutasemel ja ei viita TCP ja UDP päistele transporditasemelt.
  • RDM: See pesa asub usaldusväärselt edastatud sõnumite ühenduse ühes otsas.
  • SEQPACKET: See pesa töötab järjestikuste pakettpesadena, mis on veel üks viis usaldusväärse, järjestatud ja dubleerimata pakettide edastamiseks.
  • PAKETT: Toores liidese juurdepääsupesa. Pakettpesasid kasutatakse toorpakettide vastuvõtmiseks või saatmiseks OSI mudeli seadmedraiveri (st andmeside kihi) tasemel.

Unixi domeenipesa riik võib olla üks järgmistest:

  • TASUTA: See pistikupesa on eraldamata.
  • KUULAMINE: See pesa kuulab sissetulevaid ühenduse taotlusi.
  • ÜHENDAMINE: See pistikupesa on ühendamisel.
  • ÜHENDATUD: Ühendus on loodud ja pesa suudab andmeid vastu võtta ja edastada.
  • LAHENDAMINE: Ühendus on pooleli.

Vot, see on palju teavet! Paljud neist netstat valikud täpsustavad tulemusi ühel või teisel viisil, kuid need ei muuda sisu liiga palju. Vaatame järele.

Pistikupesade loetelu tüübi järgi

The netstat -a käsk võib anda rohkem teavet kui vaja. Kui soovite või soovite näha ainult TCP-pistikupesasid, võite kasutada -t (TCP) võimalus piirata kuvamist ainult TCP-pistikupesade kuvamiseks.

netstat -at | vähem

Välja kuvamine on oluliselt vähenenud. Vähesed loetletud pistikupesad on kõik TCP-pistikupesad.

The -u (UDP) ja -x (UNIX) suvandid käituvad sarnaselt, piirates tulemusi käsureal määratud sokli tüübiga. Siin on kasutatav variant -u (UDP):

netstat -au | vähem

Loendis on ainult UDP-pistikupesad.

Pistikupesade loetelu riikide kaupa

Kuulamis- või ooteseisundis olevate pistikupesade nägemiseks kasutage nuppu -L (kuulamise) variant.

netstat -l | vähem

Loetletud pesad on need, mis on kuulamisolekus.

Seda saab kombineerida -t (TCP, -u (UDP) ja -x (UNIX) suvanditega, et huvipakkuvatesse pistikupesadesse koju pääseda. Otsime TCP-pistikupesasid kuulata:

netstat -lt | vähem

Nüüd näeme ainult TCP kuulamispesasid.

Võrgu statistika protokolli järgi

Protokolli statistika nägemiseks kasutage -s (statistika) valik ja sisestage -t (TCP), -u (UDP) või -x (UNIX) valikud. Kui kasutate lihtsalt -s (statistika) eraldi, näete kõigi protokollide statistikat. Kontrollime TCP-protokolli statistikat.

netstat -st | vähem

TCP-ühenduste statistika kogum kuvatakse vähem.

Protsessi nimede ja PID-de kuvamine

Pistikupesa abil võib olla kasulik näha protsessi protsessi ID-d (PID) koos selle protsessi nimega. The -p (programm) variant teeb just seda. Vaatame, millised on PID-d ja protsessinimed protsessidele, kasutades TCP-soklit, mis on kuulamisolekus. Me kasutame sudo veendumaks, et me saame kogu olemasoleva teabe, sealhulgas kogu teabe, mis tavaliselt nõuab juurõigusi.

sudo netstat -p -at

Vormindatud tabelis on see väljund:

Aktiivsed Interneti-ühendused (serverid ja loodud) .0.0: * LISTEN 751 / sshd tcp 0 0 kohalik host: ipp 0.0.0.0:* LISTEN 7687 / cupsd tcp 0 0 localhost: smtp 0.0.0.0:* LISTEN 1176 / master tcp6 0 0 [::]: ssh [:: ]: * KUULA 751 / sshd tcp6 0 0 ip6-localhost: ipp [::]: * LISTEN 7687 / cupsd tcp6 0 0 ip6-localhost: smtp [::]: * LISTEN 1176 / master

Meil on lisaveerg nimega „PID / programmi nimi”. Selles veerus on loetletud iga pistikupesa abil protsessi PID ja nimi.

Numbriaadresside loendamine

Teine samm, mida võime teha ebaselguse kõrvaldamiseks, on kohalike ja kaugaadresside kuvamine IP-aadressidena nende lahendatud domeeni ja hosti nimede asemel. Kui me kasutame-n (numbriline) suvand kuvatakse IPv4-aadressid punktiir kümnendkohaga:

sudo netstat -an | vähem

IP-aadressid kuvatakse arvväärtustena. Kuvatakse ka pordi numbrid, eraldatud kooloniga ” : IP-aadressilt.

IP-aadress 127.0.0.1 näitab, et pistikupesa on seotud kohaliku arvuti loopback-aadressiga. Võite mõelda, et IP-aadress on 0.0.0.0, mis tähendab kohalike aadresside "vaikimisi marsruuti" ja "mis tahes IP-aadress" välismaiste aadresside jaoks. IPv6-aadressid kuvatakse kui::”On ka kõik null-aadressid.

Loendis olevaid porte saab hõlpsasti kontrollida, et näha, mis on nende tavaline eesmärk:

  • 22: See on Secure Shelli (SSH) kuulamisport.
  • 25: See SMTP (Simple Mail Transfer Protocol) kuulamisport.
  • 53: See on domeeninimede süsteemi (DNS) kuulamisport.
  • 68: See on DHCP (Dynamic Host Configuration Protocol) kuulamisport.
  • 631: See on ühise UNIX-i printimissüsteemi (CUPS) kuulamisport.

SEOTUD:Mis vahe on 127.0.0.1 ja 0.0.0.0 vahel?

Marsruutimistabeli kuvamine

The -r (marsruut) suvand kuvab kerneli marsruutimistabeli.

sudo netstat -r

Siin on see väljund kenas tabelis:

Kerneli IP-marsruutimistabel Sihtvärava genmaski lipud MSS-i aken irtt Iface vaikeväärtus 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

Ja veerud tähendavad järgmist:

  • Sihtkoht: Sihtvõrk või siht-hostiseade (kui sihtkoht pole võrk).
  • Värav: Lüüsi aadress. Tärn “*”Kuvatakse siin, kui lüüsi aadressi pole määratud.
  • Genmask: Marsruudi alamvõrgu mask.
  • Lipud: Vaadake lipud tabel.
  • MSS: Selle marsruudi TCP-ühenduste maksimaalne vaikimisi segmendi suurus - see on suurim andmemaht, mida ühes TCP-segmendis saab vastu võtta.
  • Aken: Selle marsruudi TCP-ühenduste vaikeakna suurus näitab pakettide arvu, mida saab enne vastuvõtupuhvri täitumist edastada ja vastu võtta. Praktikas tarbib pakette vastuvõttev rakendus.
  • irtt: Esialgne edasi-tagasi aeg. Sellele väärtusele viitab kernel, et dünaamiliselt kohandada TCP parameetreid kaugühenduste jaoks, mille reageerimine on aeglane.
  • Iface: Võrguliides, kust selle marsruudi kaudu saadetud paketid edastatakse.

The lipud väärtus võib olla üks järgmistest:

  • U: Marsruut on üleval.
  • H: Sihtmärk on host ja ainus sihtkoht, mis sellel marsruudil võimalik on.
  • G: Kasutage lüüsi.
  • R: Dünaamilise marsruudi jaoks taastage marsruut.
  • D: Dünaamiliselt installitud marsruutimisdemoniga.
  • M: Muudetud marsruutimisdemoniga, kui ta sai Interneti-kontrollsõnumi protokolli (ICMP) paketi.
  • A: Paigaldanud addrconf, automatiseeritud DNS- ja DHCP-konfiguratsioonifailide generaator.
  • C: Vahemälu sisestamine.
  • !: Keeldu marsruudist.

Protsessi poolt kasutatava pordi leidmine

Kui me torustame väljundi netstat läbi grep, saame protsessi otsida nime järgi ja tuvastada selle kasutatava pordi. Me kasutame -a (kõik), -n (numbriline) ja -p (programmi) suvandeid, mida varem kasutati, ja otsige sõna „sshd”.

sudo netstat -anp | grep "sshd"

grep leiab sihtringi ja näeme, et sshd deemon kasutab porti 22.

Muidugi saame seda teha ka vastupidi. Kui otsime märksõna „: 22”, saame teada, milline protsess seda porti kasutab, kui üldse.

sudo netstat -anp | grep ": 22"

Seekord grep leiab sihtstringi “: 22” ja näeme, et seda porti kasutav protsess on sshd deemon, protsessi ID 751.

Loetlege võrguliidesed

The -i (liidesed) suvand kuvab selle võrguliideste tabeli netstat oskab avastada.

sudo netstat -i

Siin on väljund loetavamal viisil:

Tuuma liidese tabel 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

Seda tähendavad veerud:

  • Iface: Liidese nimi. The enp0s3 liides on võrgu liides väljas maailmas ja lo liides on tagasisideliides. Tagasiliides võimaldab protsessidel omavahel suhelda jooksul arvutit võrguprotokollide abil, isegi kui arvuti pole võrguga ühendatud.
  • MTU: Maksimaalne edastusüksus (MTU). See on suurim saadetav pakett. See koosneb päisest, mis sisaldab marsruutimist ja protokollilippe ning muid metaandmeid, pluss andmeid, mida tegelikult transporditakse.
  • RX-OK: Vastuvõetud pakettide arv ilma vigadeta.
  • RX-ERR: Vastuvõetud pakettide arv koos vigadega. Soovime, et see oleks võimalikult madal.
  • RX-DRP: Langenud (st kaotatud) pakettide arv. Samuti soovime, et see oleks võimalikult madal.
  • RX-OVR: Vastuvõtmisel ülevoolu tõttu kaotatud pakettide arv. See tähendab tavaliselt, et vastuvõttev puhver oli täis ja ei suutnud enam andmeid vastu võtta, kuid rohkem andmeid saadi ja need tuli ära visata. Mida väiksem on see näitaja, seda parem ja null on täiuslik.
  • TX-OK: Edastatud pakettide arv ilma vigadeta.
  • RX-ERR: Edastatud pakettide arv koos vigadega. Me tahame, et see oleks null.
  • RX-DRP: Pakettide arv vähenes edastamisel. Ideaalis peaks see olema null.
  • RX-OVR: Ülekandmise tõttu ülevoolu tõttu kaotatud pakettide arv. Tavaliselt tähendab see, et saatmispuhver oli täis ja ei suutnud enam andmeid vastu võtta, kuid rohkem andmeid oli edastamiseks valmis ja need tuli ära visata.
  • Flg: Lipud. Vaadake lipud allolev tabel.

The lipud esindavad järgmist:

  • B: Leviaadress on kasutusel.
  • L: See liides on loopback-seade.
  • M: Kõik paketid võetakse vastu (s.t. lubamatus režiimis). Midagi ei filtreerita ega visata ära.
  • O: Aadressi eraldamise protokoll (ARP) on selle liidese jaoks välja lülitatud.
  • P: See on punkt-punkt (PPP) ühendus.
  • R: Liides töötab.
  • U: Liides on üleval.

Loetlege Multicast Groupi liikmesused

Lihtsamalt öeldes võimaldab multisaate edastada paketti ainult üks kord, olenemata adressaatide arvust. Näiteks selliste teenuste puhul nagu video voogesitus suurendab saatja seisukohast tõhusust tohutult.

The -g (rühmad) variant teeb netstat loetlege igas liideses soklite multicast-grupi liikmelisus.

sudo netstat -g

Veerud on üsna lihtsad:

  • Liides: Selle liidese nimi, mida pesa edastab.
  • RefCnt: Võrdlusarv, mis on pistikupessa ühendatud protsesside arv.
  • Grupp: Multisaadete rühma nimi või tunnus.

Uued lapsed blokis

Marsruut, ip, ifconfig ja ss käsud võivad anda palju mida netstat on võimeline sind näitama. Need kõik on suurepärased käsklused ja neid tasub vaadata.

Oleme keskendunud netstat sest see on universaalselt saadaval, hoolimata sellest, millise Unixi-laadse operatsioonisüsteemiga te töötate, isegi ebaselge.