Aflați care sunt comenzile netstat și câteva exemple în timp real.


netstat (statistici de rețea) este un instrument de linie de comandă care afișează conexiuni de rețea (atât de intrare cât și de ieșire), tabele de rutare și o serie de statistici de interfață de rețea.

Este disponibil pe sistemele de operare Linux, asemănătoare Unix și Windows. netstat este puternic și poate fi un instrument util pentru depanarea problemelor legate de rețea și verificarea statisticilor conexiunii.

Dacă tastați netstat -help, veți primi următoarele instrucțiuni de utilizare.

[[Email protected] ~] # netstat -help
utilizare: netstat [-vWeenNcCF] [] -r netstat {-V | –version | -h | –help}
netstat [-vWnNcaeol] […]
netstat {[-vWeenNac] -I [] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw]} [întârziere]

-r, –grup tabel de rutare afișare
-I, – interfețe = afișează tabelul interfeței pentru
-i, –interfețe afișează tabelul interfeței
-g, – grupurile afișează abonamentele grupului multicast
-s, – statisticile afișează statistici de rețea (cum ar fi SNMP)
-M, –mascaradă afișează conexiuni mascarate

-v, –verbose fi verbose
-W, – în întregime, nu trunchiați adresele IP
-n, –numeric nu rezolvă numele
–numere-gazdele nu rezolvă numele gazdelor
–numeric-ports nu rezolvă numele porturilor
–utilizatorii numerici nu rezolvă numele de utilizator
-N, –simbolice rezolvă numele hardware
-e, – extindere afișează alte informații / mai multe
-p, –programele afișează numele PID / Program pentru prize
-o, – cronometrele afișează cronometre
-c, – listare continuă continuă

-l, – listarea soclurilor serverului de ascultare a afișajului
-a, – toate afișează toate soclurile (implicit: conectat)
-Afișare F, –fibră, bază de informații de redirecționare
-C, –cache afișare cache de rutare în loc de FIB
-Z, –context afișează contextul de securitate SELinux pentru prize

= {- t | –tcp} {-u | –udp} {-U | –udplite} {-S | –sctp} {-w | –raw}
{-x | –unix} –ax25 –ipx –netrom
= Folosiți ‘-6 | -4’ sau ‘-A’ sau ‘-‘; implicit: inet
Lista familiilor de adrese posibile (care acceptă rutarea):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET / ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)
[[Email protected] ~] #

Permiteți-mi să vă arăt câteva exemple din comandă. Următoarele sunt testate pe RHEL / CentOS, dar nu văd niciun motiv să nu funcționeze pe o altă distro cum ar fi Ubuntu.

Conexiune stabilită

Dacă sunteți în căutarea tuturor conexiunilor stabilite de la server.

[[Email protected] ~] # netstat -natu | grep „STABILIT”
tcp 0 21 68.183.37.102:22 222.186.31.135:21714 STABILIT
tcp 0 36 68.183.37.102:22 52.148.155.182:49859 STABILIT
tcp 0 0 68.183.37.102:22 61.177.142.158:55481 STABILIT
[[Email protected] ~] #

Dacă ați stabilit conexiuni multe și sunteți interesat să căutați unul dintre IP-uri, atunci puteți utiliza un alt grep.

[[Email protected] ~] # netstat -natu | grep „STABILIT” | grep 61.177.142.158
tcp 0 1280 68.183.37.102:22 61.177.142.158:33932 STABILIT
[[Email protected] ~] #

Ascultarea conexiunii

Să presupunem că ați început un serviciu și că ar trebui să ascultați pe un anumit IP: Port, acest lucru ar fi util să verificați.

[[Email protected] ~] # netstat -an | grep ‘Ascultă’
tcp 0 0 127.0.0.1:25 0.0.0.0:* Ascultă
tcp 0 0 0.0.0.0:111 0.0.0.0:* Ascultă
tcp 0 0 0.0.0.0:22 0.0.0.0:* Ascultă
tcp6 0 0 ::: 111 ::: * Ascultă
tcp6 0 0 ::: 80 ::: * Ascultă
tcp6 0 0 ::: 22 ::: * Ascultă
[[Email protected] ~] #

Sau puteți utiliza -l argument pentru a afișa toate soclurile de ascultare.

[[Email protected] ~] # netstat -l
Conexiuni Internet active (numai servere)
Proto Recv-Q Send-Q Adresa locală Statul adresei străine
tcp 0 0 localhost: smtp 0.0.0.0:* Ascultă
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* Ascultă
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* Ascultă
tcp6 0 0 [::]: sunrpc [::]: * Ascultă
tcp6 0 0 [::]: webcache [::]: * Ascultă
tcp6 0 0 [::]: ssh [::]: * Ascultă
udp 0 0 0.0.0.0:805 0.0.0.0:*
udp 0 0 0.0.0.0:sunrpc 0.0.0.0:*
udp 0 0 localhost: 323 0.0.0.0:*
udp6 0 0 [::]: 805 [::]: *
udp6 0 0 [::]: sunrpc [::]: *
udp6 0 0 ip6-localhost: 323 [::]: *
Socluri de domeniu active UNIX (numai servere)
Proto RefCnt Steaguri Tipul stării nodului I
unix 2 [ACC] ASISTENȚĂ STREAM 15108 / run / dbus / system_bus_socket
unix 2 [ACC] ASISTENȚĂ STREAM 8202 / run / systemd / journal / stdout
unix 2 [ACC] ASISTENȚĂ SEQPACKET 12813 / run / udev / control
unix 2 [ACC] STREAM STREAM 17542 public / pickup
unix 2 [ACC] STREAM STREAM 15165 /var/run/rpcbind.sock
unix 2 [ACC] ASISTENȚĂ STREAM 17546 public / curățare
unix 2 [ACC] ASISTENȚĂ STREAM 15605 /var/lib/gssproxy/default.sock
unix 2 [ACC] STREAM STREAM 12706 / run / systemd / private
unix 2 [ACC] STREAM STREAM 17549 public / qmgr
unix 2 [ACC] STREAM STREAM 17571 public / flush
unix 2 [ACC] STREAM STREAM 17553 private / tlsmgr
unix 2 [ACC] STREAM STREAM 17586 public / showq
unix 2 [ACC] STREAM STREAM 17556 private / rescriere
unix 2 [ACC] STREAM STREAM 17559 private / bounce
unix 2 [ACC] STREAM STREAM 17562 privat / amânare
unix 2 [ACC] STREAM STREAM 17565 private / trace
unix 2 [ACC] ASISTENȚĂ STREAM 17568 privat / verifica
unix 2 [ACC] STREAM STREAM 17574 privat / proxymap
unix 2 [ACC] ASISTENȚĂ STREAM 17577 privat / proxywrite
unix 2 [ACC] ASISTENȚĂ STREAM 17580 privat / smtp
unix 2 [ACC] ASISTENȚĂ STREAM 17583 privat / releu
unix 2 [ACC] STREAM STREAM 17589 private / eroare
unix 2 [ACC] ASISTENȚĂ STREAM 17592 privat / încercați din nou
unix 2 [ACC] STREAM STREAM 17595 privat / arunca
unix 2 [ACC] ASISTENȚĂ STREAM 17598 privat / local
unix 2 [ACC] ASISTENȚĂ STREAM 17601 privat / virtual
unix 2 [ACC] ASISTENȚĂ STREAM 17604 privat / lmtp
unix 2 [ACC] STREAM STREAM 17607 privat / nicovală
unix 2 [ACC] STREAM STREAM 17610 private / scache
unix 2 [ACC] ASISTENȚĂ STREAM 15606 /run/gssproxy.sock
[[Email protected] ~] #

Profitați de grep pentru a filtra rezultatele.

Numărul de port utilizat de PID

Știți că aplicația dvs. a început și cunoaște PID (Process Identifier), dar nu sunteți sigur care este numărul de port pe care îl utilizează. Mai jos exemplu este pentru PID 3937

[[Email protected] ~] # netstat -anlp | grep 3937
tcp6 0 0 ::: 80 ::: * Ascultă 3937 / httpd
unix 3 [] STREAM CONNECTED 2442387 3937 / httpd
[[Email protected] ~] #

După cum vedeți, portul 80 este utilizat pentru PID 3937.

Toate statisticile privind protocoalele

Aveți deconectări frecvente din cauza pachetului aruncat? -s argumentul vă va arăta statistici generale în care puteți fi atenți la pachetele de mesaje aruncate.

[[Email protected] ~] # netstat -s
Ip:
731422 pachete totale primite
0 transmis
0 pachete primite aruncate
731399 pachete primite livrate
787732 cereri trimise
16 au căzut din cauza lipsei traseului
ICMP:
5277 mesaje ICMP primite
120 mesajul ICMP de intrare a eșuat.
InCsumErrors: 6
Histogramă de intrare ICMP:
destinație care nu poate fi atinsă: 193
interval de timp în tranzit: 16
solicitări de ecou: 5060
răspunsuri ecografice: 2
9355 mesaje ICMP trimise
0 mesaje ICMP au eșuat
Histogramă de ieșire ICMP:
destinație de neatins: 4295
răspunsuri ecografice: 5060
IcmpMsg:
InType0: 2
InType3: 193
InType8: 5060
InType11: 16
OutType0: 5060
OutType3: 4295
Tcp:
42 deschideri de conexiuni active
Deschideri de conexiune pasivă 35226
1693 încercări de conectare eșuate
645 resetări de conexiune primite
2 conexiuni stabilite
646705 segmente primite
648037 segmente trimit
99463 segmente retransmise
27377 segmente rele primite.
150893 resetări trimise
InCsumErrors: 27377
udp:
74547 pachete primite
4814 pachete la portul necunoscut primit.
56 de pachete primesc erori
74584 pachete trimise
0 primește erori tampon
0 trimite erori tampon
InCsumErrors: 56
UdpLite:
TcpExt:
177 de cookie-uri SYN nevalide primite
1693 resetări primite pentru prize SYN_RECV embrionare
316 prize TCP timpul finalizat așteaptă în cronometru rapid
3 pachete respinge în conexiunile stabilite din cauza timpului de marcă
70248 acks întârziate trimise
6 acks întârziați în continuare întârziați din cauza prizei blocate
Modul rapid de ack a fost activat de 3082 de ori
17 picturi SYNS to LISTEN au scăzut
28179 pachete direct în coadă la recvmsg prequeue.
9802 octeți primiți direct în contextul procesului de la prequeue
Se anticipează antetul pachetelor 72106
94182 confirmări care nu conțin sarcina utilă a datelor primite
40094 recunoașteri prognozate
De 332 ori recuperat din pierderea pachetelor prin confirmări selective
8 ferestre de congestie recuperate fără pornire lentă de către DSACK
1173 ferestre de congestie recuperate fără pornire lentă după ack parțial
1029 intervale de timp după recuperarea SACK
8 perioade de timp în stare de pierdere
329 retransmiterea rapidă
3 retransmiteri înainte
32 se retransmite la pornire lentă
44785 alte intervale de timp TCP
TCPLossProbes: 9763
TCPLossProbeRecovery: 1732
54 Retransmiteri SACK au eșuat
3144 DSACK-uri trimise pentru pachete vechi
4 DSACK-uri trimise pentru pachete scoase din comandă
695 DSACK-uri primite
1 DSACK pentru pachetele scoase din uz primite
44 conexiuni se resetează din cauza datelor neașteptate
76 conexiuni se resetează din cauza închiderii timpurii a utilizatorului
6079 conexiuni au fost anulate din cauza expirării timpului
TCPDSACKIgnoredNoUndo: 448
TCPSpuriousRTOs: 5
TCPSackShiftFallback: 465
IPReversePathFilter: 11
TCPRcvCoalesce: 32369
TCPOFOQueue: 4313
TCPOFOMerge: 4
TCPChallengeACK: 2
TCPSynRetrans: 43670
TCPOrigDataSent: 208010
TCPACKSkippedSeq: 12
IpExt:
InNoRoutes: 12
InOctets: 133789295
OutOctets: 151093769
InNoECTPkts: 731338
InECT1Pkts: 3
InECT0Pkts: 1568
InCEPkts: 108
[[Email protected] ~] #

Informații de rutare a nucleului

Aveți o problemă de rutare? sau conectivitatea nu funcționează așa cum este de așteptat datorită conectării se deplasează pe o rută diferită?

Verificați rapid tabelul de rutare.

[[Email protected] ~] # netstat -r
Tabelul de rutare IP al kernel-ului
Destination Gateway Genmask Flags MSS Window irtt Iface
gateway implicit 0.0.0.0 UG 0 0 0 eth0
10.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 et0
68.183.32.0 0.0.0.0 255.255.240.0 U 0 0 0 et0
link-local 0.0.0.0 255.255.0.0 U 0 0 0 eth0
[[Email protected] ~] #

PID folosit de numărul de port

Foarte la îndemână pentru a rezolva problema conflictului portuar. Să spunem că încercați să porniți serverul Apache sau Nginx, care ascultă portul 80, dar nu se poate pentru că un alt proces utilizează deja portul 80.

[[Email protected] ~] # netstat -anlp | grep 80 | grep Ascultă
tcp6 0 0 ::: 80 ::: * Ascultă 3937 / httpd
[[Email protected] ~] #

Și, puteți vedea PID 3937 utilizează acel port.

Dacă utilizați AIX, atunci

netstat -Aan | grep $ portnumber

Aceasta va afișa adresa blocului de control al protocolului în hexadecimal

După ce aveți hexadecimal, atunci puteți executa mai jos pentru a obține procesul în care se deține un număr de port.

rmsock $ adresa_of_pcb tcpcb

Lista interfețelor de rețea

Aveți mai multe interfețe Ethernet? sau nu sunt sigur și doriți să aflați?

[[Email protected] ~] # netstat -i
Tabelul interfeței Kernel
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 793026 0 0 0 849443 0 0 0 BMRU
lo 65536 6 0 0 0 6 0 0 0 LRU
[[Email protected] ~] #

Ascultare continuă

O opțiune excelentă atunci când serviciile de depanare apar probleme legate de blocarea problemelor. Să zicem că o aplicație se prăbușește la întâmplare la fiecare câteva minute. Dar, nu sunt sigur când exact. Puteți utiliza argumentul -c care va afișa continuu rezultatele.

[[Email protected] ~] # netstat -anlpc | grep 8080
tcp6 0 0 ::: 8080 ::: * Ascultă 11766 / httpd
tcp6 0 0 ::: 8080 ::: * Ascultă 11766 / httpd
tcp6 0 0 ::: 8080 ::: * Ascultă 11766 / httpd
tcp6 0 0 ::: 8080 ::: * Ascultă 11766 / httpd

Când încetează actualizarea, atunci știi că sa prăbușit.

Concluzie

netstat este una dintre comenzile utilizate pe scară largă de sysadmin și sper că exemplele de mai sus vă dau o idee despre ce puteți face cu acesta. Dacă doriți să aflați mai multe despre administrarea Linux, consultați acest lucru Curs Udemy.

ETICHETE:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me