Cum să Utilizați netstat pe Linux

  • Dave McKay

    @TheGurkha

  • 17 februarie, în 2020, 8:00 EDT
Fatmawati Achmad Zaenuri/

Linux netstat comandă vă oferă o comoară de informații despre conexiunile la rețea, porturile care sunt în uz, și procesele pe care le folosesc. Aflați cum să-l utilizați.

porturi, procese și protocoale

prizele de rețea pot fi conectate sau așteaptă o conexiune., Conexiunile utilizează protocoale de rețea precum Transport Control Protocol (TCP) sau User Datagram Protocol UDP. Ei folosesc adrese de Protocol Internet și porturi de rețea pentru a stabili conexiuni.

cuvântul socket-uri ar putea evoca imagini ale unui punct de conexiune fizică pentru un cablu sau un cablu, dar în acest context, un socket este un construct software folosit pentru a gestiona un capăt al unei conexiuni de date de rețea.,prizele au două stări principale: fie sunt conectate și facilitează o comunicare în rețea continuă, fie așteaptă o conexiune de intrare pentru a se conecta la ele. Există și alte stări, cum ar fi starea când o priză este la jumătatea distanței prin stabilirea unei conexiuni pe un dispozitiv la distanță, dar punând deoparte stările tranzitorii, vă puteți gândi la o priză ca fiind conectată sau în așteptare (care este adesea numită ascultare).

priza de ascultare se numește server, iar priza care solicită o conexiune cu priza de ascultare se numește client., Aceste nume nu au nicio legătură cu rolurile hardware sau computer. Ele definesc pur și simplu rolul fiecărui soclu la fiecare capăt al conexiunii.

comanda netstat vă permite să descoperiți ce prize sunt conectate și ce prize ascultă. Adică, vă spune ce porturi sunt utilizate și ce procese le folosesc. Acesta vă poate arăta tabele de rutare și statistici despre interfețele de rețea și conexiunile multicast.

funcționalitatea netstat a fost reprodusă de-a lungul timpului în diferite utilități Linux, cum ar fi ip și ss., Încă merită să știți acest bunic al tuturor comenzilor de analiză a rețelei, deoarece este disponibil pe toate sistemele de operare Linux și Unix și chiar pe Windows și Mac.

Iată cum să-l folosească, complet cu exemplu de comenzi.

Lista Toate Prize

-a (toate) opțiune face netstat afișare toate conectate și de așteptare prize. Această comandă este de natură să producă o listă lungă, așa că am țeavă în less.,

netstat -a | less
Publicitate

lista include TCP (IP), TCP6 (IPv6), și UDP prize.

înfășurarea în fereastra terminalului face puțin dificil să vezi ce se întâmplă. Iată câteva secțiuni din această listă:

secțiunea „Internet activ” listează conexiunile externe conectate și prizele locale care ascultă cererile de conectare la distanță. Adică listează conexiunile de rețea care sunt (sau vor fi) stabilite pentru dispozitive externe.,

publicitate

secțiunea „domeniu UNIX” listează conexiunile interne conectate și ascultătoare. Cu alte cuvinte, listează conexiunile care au fost stabilite în computerul dvs. între diferite aplicații, procese și elemente ale sistemului de operare.

coloanele „Internet activ” sunt:

  • Proto: protocolul utilizat de acest soclu (de exemplu, TCP sau UDP).
  • Recv-Q: coada de primire. Acestea sunt octeți de intrare care au fost primiți și sunt tamponați, așteptând ca procesul local care utilizează această conexiune să le citească și să le consume.,
  • trimite-Q: coada de trimitere. Aceasta arată octeții care sunt gata să fie trimiși din coada de trimitere.
  • adresa locală: detaliile adresei de la sfârșitul local al conexiunii. Valoarea implicită este pentru netstat pentru a afișa numele de gazdă local pentru adresă și numele serviciului pentru port.
  • adresa străină: adresa și numărul portului de la sfârșitul conexiunii.
  • Stare: Starea soclului local. Pentru prizele UDP, aceasta este de obicei goală. A se vedea tabelul de stat, de mai jos.,

pentru conexiunile TCP, valoarea de stare poate fi una dintre următoarele :

  • LISTEN: Server-side only. Soclul așteaptă o solicitare de conectare.
  • SYN-SENT: numai din partea clientului. Acest soclu a făcut o solicitare de conectare și așteaptă să vadă dacă va fi acceptat.
  • SYN-primit: numai pe partea serverului. Acest soclu așteaptă o confirmare a conexiunii după acceptarea unei solicitări de conectare.
  • stabilit: Server și clienți. A fost stabilită o conexiune de lucru între server și client, permițând transferul datelor între cele două.,
  • FIN-WAIT-1: Server și clienți. Această priză așteaptă o solicitare de terminare a conexiunii de la priza de la distanță sau o confirmare a unei solicitări de terminare a conexiunii care a fost trimisă anterior de la această priză.
  • FIN-WAIT-2: Server și clienți. Această priză așteaptă o solicitare de terminare a conexiunii de la priza de la distanță.
  • Închide-așteptați: Server și client. Acest soclu așteaptă o solicitare de terminare a conexiunii de la utilizatorul local.
  • închidere: Server și clienți., Acest soclu așteaptă o confirmare a cererii de terminare a conexiunii de la priza de la distanță.
  • LAST-ACK: Server și client. Acest soclu așteaptă o confirmare a cererii de terminare a conexiunii pe care a trimis-o la priza de la distanță.
  • timp de așteptare: Server și clienți. Acest soclu a trimis o confirmare către soclul de la distanță pentru a-l anunța că a primit cererea de terminare a soclului de la distanță. Acum așteaptă să se asigure că a fost primită confirmarea.
  • închis: nu există nicio conexiune, deci priza a fost terminată.,

coloanele „Unix domain” sunt:

  • Proto: protocolul folosit de acest soclu. Acesta va fi ” unix.”
  • RefCnt: număr de referință. Numărul de procese atașate conectate la acest soclu.
  • Steaguri: Acest lucru este de obicei setat la ACC , care reprezintă SO_ACCEPTON, în sensul priza este de așteptare pentru o cerere de conexiune. SO_WAITDATA, prezentat ca W, înseamnă că există date care așteaptă să fie citite., SO_NOSPACE, prezentat ca N, înseamnă că nu există spațiu pentru a scrie date în soclu (adică, buffer-ul de trimitere este plin).
  • Tip: Tip soclu. A se vedea tabelul de tip de mai jos.
  • Stare: Starea soclului. A se vedea tabelul de stat de mai jos.
  • i-Node: inodul sistemului de fișiere asociat cu acest soclu.
  • cale: calea sistemului de fișiere către soclu.

tipul de soclu de domeniu Unix poate fi unul dintre următoarele:

  • DGRAM: soclul este utilizat în modul datagram, folosind mesaje de lungime fixă., Datagramele nu sunt garantate a fi fiabile, secvențiate sau neduplicate.
  • flux: această priză este o priză de flux. Acesta este tipul obișnuit „normal” de conexiune la soclu. Aceste prize sunt concepute pentru a asigura livrarea fiabilă secvențiată (în ordine) a pachetelor.
  • RAW: această priză este utilizată ca priză brută. Prizele brute funcționează la nivelul rețelei modelului OSI și nu fac referire la anteturile TCP și UDP de la nivelul de transport.
  • RDM: acest soclu este situat la un capăt al unei conexiuni de mesaje livrate în mod fiabil.,
  • SEQPACKET: acest soclu funcționează ca un soclu de pachete secvențiale, care este un alt mijloc de a oferi livrare de pachete fiabile, secvențiate și neduplicate.
  • pachet: Priză de acces interfață Raw. Soclurile de pachete sunt utilizate pentru a primi sau a trimite pachete brute la nivelul driverului de dispozitiv (adică, stratul de legături de date) al Modelului OSI.

starea soclului de domeniu Unix poate fi una dintre următoarele:

  • gratuit: acest soclu este nealocat.
  • ascultare: acest soclu este de ascultare pentru cererile de conectare primite.,
  • conectarea: această priză este în proces de conectare.
  • conectat: a fost stabilită o conexiune, iar soclul este capabil să primească și să transmită date.
  • deconectare: conexiunea este în curs de terminare.
publicitate

Wow, asta e o mulțime de informații! Multe dintre opțiunile netstat rafinează rezultatele într-un fel sau altul, dar nu schimbă prea mult conținutul. Să aruncăm o privire.,

listarea soclurilor după tip

comandanetstat -a poate oferi mai multe informații decât trebuie să vedeți. Dacă doriți sau trebuie să vedeți doar soclurile TCP, puteți utiliza opțiunea -t (TCP) pentru a restricționa afișarea numai a soclurilor TCP.

netstat -at | less

afișajul este redus foarte mult. Puținele prize care sunt listate sunt toate prizele TCP.,

-u (UDP) și -x (UNIX) opțiuni se comporte într-un mod similar, limitarea rezultatelor la tipul de socket specificate în linia de comandă. Aici este-u (UDP) opțiune în uz:

netstat -au | less

numai UDP prize sunt listate.pentru a vedea prizele care sunt în starea de ascultare sau așteptare, utilizați opțiunea -l (ascultare).

netstat -l | less
publicitate

prizele care sunt listate sunt cele care sunt în starea de ascultare.,acest lucru poate fi combinat cu-t (TCP, -u (UDP) și-x (Unix) opțiuni pentru a mai departe acasă pe prize de interes. Să căutăm ascultarea soclurilor TCP:

netstat -lt | less

acum, vedem doar prizele de ascultare TCP.

Statistici de Rețea de Protocol

netstat -st | less
Publicitate

O colecție de statistici pentru conexiuni TCP este afișat în less.

se afișează numele proceselor și PID-urile

poate fi util să vedeți ID-ul procesului (PID) al procesului folosind un socket, împreună cu numele procesului respectiv., Opțiunea -p (program) face exact asta. Să vedem care sunt numele PID-urilor și proceselor pentru procesele care utilizează un soclu TCP care se află în starea de ascultare. Folosim sudo pentru a ne asigura că primim toate informațiile disponibile, inclusiv orice informații care ar necesita în mod normal permisiuni root.

sudo netstat -p -at

Iată ieșirea într-un tabel formatat:

avem o coloană suplimentară numită ” PID/Nume program.”Această coloană listează PID-ul și numele procesului folosind fiecare dintre prize.,

listarea adreselor numerice

Un alt pas pe care îl putem face pentru a elimina o anumită ambiguitate este afișarea adreselor locale și de la distanță ca adrese IP în loc de domeniul rezolvat și numele de gazdă. Dacă vom folosi -n (numeric) opțiune, adresele IPv4 sunt prezentate în punctata-zecimala format:

sudo netstat -an | less
Publicitate

adresele IP sunt afișate ca valori numerice. Numerele de port sunt de asemenea afișate, separate printr-un punct ” : ” de la adresa IP.

o adresă IP de 127.0.0.,1 arată că soclul este legat de adresa loopback a computerului local. Vă puteți gândi la o adresă IP de 0.0.0.0 ca însemnând ” ruta implicită „pentru adresele locale și” orice adresă IP ” pentru adresele străine. Adresele IPv6 afișate ca „:: ” sunt, de asemenea, toate adresele zero.

Porturile listate pot fi verificate cu ușurință pentru a vedea care este scopul lor obișnuit:

  • 22: acesta este portul de ascultare Secure Shell (SSH).
  • 25: Acest simplu Protocolul de transfer de e-mail (SMTP) portul de ascultare.
  • 53: acesta este portul de ascultare Domain Name System (DNS).,
  • 68: acesta este portul de ascultare Dynamic Host Configuration Protocol (DHCP).
  • 631: acesta este portul comun de ascultare a sistemului de imprimare UNIX (CUPS).

înrudit: care este diferența dintre 127.0.0.1 și 0.0.0.0?

afișarea tabelului de rutare

opțiunea -r (route) afișează tabela de rutare a kernelului.,

sudo netstat -r

Aici este că de ieșire într-un elegant 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

Si, aici e ceea ce coloane să spui:

  • Destinație: destinație de rețea sau de destinație dispozitiv gazdă (în cazul în care destinația nu este o rețea).
  • Gateway: adresa gateway-ului. Un asterisc „* ” apare aici dacă nu este setată o adresă de gateway.
  • Genmask: masca de subrețea pentru traseu.
  • Steaguri: a se vedea tabelul steaguri, de mai jos.,
  • MSS: dimensiunea maximă implicită a segmentului pentru conexiunile TCP pe această rută—aceasta este cea mai mare cantitate de date care poate fi primită într-un segment TCP.
  • fereastră: dimensiunea implicită a ferestrei pentru conexiunile TCP pe această rută, indicând numărul de pachete care pot fi transferate și primite înainte ca tamponul de recepție să fie plin. În practică, pachetele sunt consumate de aplicația care primește.
  • irtt: timpul inițial dus-întors. Această valoare este referită de kernel pentru a face ajustări dinamice ale parametrilor TCP pentru conexiunile la distanță care răspund lent.,
  • Iface: interfața de rețea din care sunt transmise pachetele trimise pe această rută.

valoarea steagurilor poate fi una dintre:

  • U: ruta este în sus.
  • H: Target este o gazdă și singura destinație posibilă pe acest traseu.
  • G: utilizați poarta de acces.
  • R: reinstalați ruta pentru rutare dinamică.
  • D: instalat dinamic de către demonul de rutare.
  • M: modificat de daemonul de rutare atunci când a primit un pachet ICMP (Internet Control Message Protocol).,
  • A: instalat de addrconf, generatorul automat de fișiere de Configurare DNS și DHCP.
  • C: intrare în Cache.
  • !: Respinge ruta.

pentru a Găsi Portul Folosit de un Proces

Dacă ne-conducta de ieșire a netstat prin grep, putem căuta un proces de numele și de a identifica portul este folosind. Vom folosi -a (toate), -n (numeric) și -p (program) opțiuni utilizate anterior, și de căutare pentru „sshd.,”

sudo netstat -anp | grep "sshd"
Publicitate

grep găsește șirul țintă, și vom vedea că sshd daemon este folosind portul 22.desigur, putem face acest lucru și în sens invers. Dacă căutăm”: 22″, putem afla ce proces utilizează acel port, dacă există.

sudo netstat -anp | grep ":22"

de Această dată grep găsește „:22” target șir, și vom vedea că procesul folosind acest port este sshd daemon, ID-ul de proces 751.,

Lista de Interfețe de Rețea

-i (interfețe) opțiune va afișa un tabel de interfețe de rețea, care netstat poate descoperi.

sudo netstat -i

Iată de ieșire într-un mod mai lizibil moda:

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

Aceasta este ceea ce coloane să spui:

  • Iface: numele de interfață. enp0s3 interfața este interfața de rețea cu lumea exterioară, iar lo interfața este interfața loopback., Interfața loopback permite proceselor să intercomunice în computer folosind protocoale de rețea, chiar dacă computerul nu este conectat la o rețea.
  • MTU: unitatea de transmisie maximă (MTU). Acesta este cel mai mare” pachet ” care poate fi trimis. Acesta constă dintr-un antet care conține steaguri de rutare și protocol și alte metadate, plus datele care sunt efectiv transportate.
  • RX-OK: numărul de pachete primite, fără erori.
  • RX-ERR: numărul de pachete primite, cu erori. Vrem ca acest lucru să fie cât mai scăzut posibil.,
  • RX-DRP: numărul de pachete scăzut (adică pierdut). De asemenea, dorim ca acest lucru să fie cât mai scăzut posibil.
  • RX-OVR: Numărul de pachete pierdute din cauza revărsărilor la primire. Acest lucru înseamnă, de obicei, că buffer-ul de primire a fost plin și nu a putut accepta mai multe date, dar au fost primite mai multe date și a trebuit să fie aruncate. Cu cât această cifră este mai mică, cu atât mai bine și zero este perfectă.
  • TX-OK: numărul de pachete transmise, fără erori.
  • RX-ERR: numărul de pachete transmise, cu erori. Vrem să fie zero.,
  • RX-DRP: numărul de pachete a scăzut la transmitere. În mod ideal, acest lucru ar trebui să fie zero.
  • RX-OVR: numărul de pachete pierdute din cauza revărsărilor la transmitere. Acest lucru înseamnă, de obicei, buffer-ul de trimitere a fost plin și nu a putut accepta mai multe date, dar mai multe date au fost gata să fie transmise și au trebuit să fie aruncate.
  • Flg: steaguri. A se vedea tabelul steaguri de mai jos.steagurile reprezintă următoarele:

    listează membrii grupului Multicast

    pur și simplu, o transmisie multicast permite trimiterea unui pachet o singură dată, indiferent de numărul de destinatari., Pentru servicii precum streaming video, de exemplu, acest lucru crește eficiența din punctul de vedere al expeditorului cu o sumă extraordinară.

    Publicitate

    -g (grupuri) opțiune face netstat lista multicast membru al grupului de prize pe fiecare interfață.

    sudo netstat -g

    coloanele sunt destul de simple:

    • interfață: numele interfeței peste care transmite soclul.
    • RefCnt: numărul de referință, care este numărul de procese atașate la soclu.,
    • grup: numele sau identificatorul grupului multicast.

    copiii noi din bloc

    comenzile route, ip, ifconfig și ss pot oferi o mulțime de ceea cenetstat este capabil să vă arate. Toate sunt comenzi grozave și merită verificate.

    ne-am concentrat pe netstat pentru că este universal disponibil, indiferent de sistemul de operare Unix-like pe care lucrați, chiar și cele obscure.,Dave McKay Dave McKay a folosit pentru prima dată calculatoarele când banda de hârtie perforată era în vogă și de atunci programează. După peste 30 de ani în industria IT, acum este jurnalist tehnologic cu normă întreagă. În timpul carierei sale, a lucrat ca programator independent, manager al unei echipe internaționale de dezvoltare de software, manager de proiect pentru servicii IT și, cel mai recent, ca responsabil cu protecția datelor. Dave este un evanghelist Linux și avocat open source.Citeste tot Bio ”

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Sari la bara de unelte