O introducere la comanda ss

Învățați cum să obțineți informații despre rețea folosind comanda ss în acest tutorial din arhive.

Linux include o gamă destul de masivă de instrumente disponibile pentru a satisface aproape orice nevoie. De la dezvoltare la securitate, de la productivitate la administrare… dacă trebuie să faceți ceva, Linux este acolo pentru a servi. Unul dintre multele instrumente la care administratorii apelau frecvent era netstat. Cu toate acestea, comanda netstat a fost depreciată în favoarea comenzii ss, mai rapidă și mai ușor de citit de către om.

Comanda ss este un instrument folosit pentru a descărca statisticile socket-urilor și afișează informații într-un mod similar (deși mai simplu și mai rapid) cu netstat. De asemenea, comanda ss poate afișa chiar mai multe informații TCP și de stare decât majoritatea celorlalte instrumente. Deoarece ss este noul netstat, vom vedea cum să folosim acest instrument astfel încât să puteți obține mai ușor informații despre mașina dumneavoastră Linux și ce se întâmplă cu conexiunile de rețea.

Utilitarul de linie de comandă ss poate afișa statistici pentru socket-uri precum PACKET, TCP, UDP, DCCP, RAW și de domeniu Unix. Înlocuitorul lui netstat este mai ușor de utilizat (comparați paginile de manual pentru a vă face o idee imediată despre cât de ușor este ss). Cu ss, obțineți informații foarte detaliate despre modul în care mașina dvs. Linux comunică cu alte mașini, rețele și servicii; detalii despre conexiunile de rețea, statistici privind protocoalele de rețea și conexiunile socket-urilor Linux. Cu aceste informații în mână, puteți depana mult mai ușor diverse probleme de rețea.

Să ne punem la punct cu ss, astfel încât să o puteți considera un nou instrument în trusa dumneavoastră de administrator.

Utilizare de bază

Comanda ss funcționează ca orice comandă de pe platforma Linux: Emiteți comanda executabilă și urmați-o cu orice combinație de opțiuni disponibile. Dacă aruncați o privire la pagina de manual ss (emiteți comanda man ss), veți observa că nu există nici pe departe opțiunile găsite pentru comanda netstat; cu toate acestea, acest lucru nu echivalează cu o lipsă de funcționalitate. De fapt, ss este destul de puternic.

Dacă emiteți comanda ss fără argumente sau opțiuni, aceasta va returna o listă completă de socket-uri TCP cu conexiuni stabilite (Figura 1).

Figura 1: O listă completă a tuturor conexiunilor TCP stabilite.

Pentru că comanda ss (fără opțiuni) va afișa o cantitate semnificativă de informații (toate detaliile conexiunilor tcp, udp și a socket-urilor unix), ați putea, de asemenea, să trimiteți ieșirea acestei comenzi într-un fișier pentru vizualizare ulterioară, astfel:

ss > ss_output

Desigur, o comandă foarte simplă nu este atât de utilă pentru orice situație. Ce se întâmplă dacă vrem să vizualizăm doar socket-urile curente de ascultare? Simplu, adăugăm opțiunea -l, astfel:

ss -l

Comanda de mai sus va afișa doar o listă de socket-uri curente care ascultă.

Pentru a fi un pic mai specifici, gândiți-vă în felul următor: ss poate fi folosit pentru a vizualiza conexiunile TCP folosind opțiunea -t, conexiunile UDP folosind opțiunea -u sau conexiunile UNIX folosind opțiunea -x; deci ss -t, ss -u sau ss -x. Rularea oricăreia dintre aceste comenzi vă va lista o mulțime de informații pe care să le parcurgeți (Figura 2).

Figura 2: Rularea ss -u pe Elementary OS oferă o afișare rapidă a conexiunilor UDP.

În mod implicit, utilizarea exclusivă a opțiunilor -t, -u sau -x va lista doar acele conexiuni care sunt stabilite (sau conectate). Dacă dorim să preluăm conexiunile care sunt în ascultare, trebuie să adăugăm opțiunea -a, cum ar fi:

ss -t -a 

Legătura de ieșire a comenzii de mai sus va include toate socket-urile TCP (Figura 3).

Figura 3: Observați că ultimul socket este ssh care ascultă pe dispozitiv.

În exemplul de mai sus, puteți vedea că se fac conexiuni UDP (în diferite stări) de la adresa IP a mașinii mele, din diferite porturi, către diferite adrese IP, prin diferite porturi. Spre deosebire de versiunea netstat a acestei comenzi, ss nu afișează PID-ul și numele comenzii responsabile de aceste conexiuni. Chiar și așa, aveți totuși o mulțime de informații pentru a începe depanarea. În cazul în care vreunul dintre aceste porturi sau URL-uri este suspect, știți acum ce adresă IP/port realizează conexiunea. Cu aceasta, aveți acum informațiile care vă pot ajuta în primele etape de depanare a unei probleme.

Filtrarea ss cu stări TCP

O opțiune foarte utilă disponibilă pentru comanda ss este posibilitatea de a filtra folosind stările TCP (etapele de „viață” ale unei conexiuni). Cu ajutorul stărilor, puteți filtra mai ușor rezultatele comenzii ss. Instrumentul ss poate fi utilizat împreună cu toate stările TCP standard:

  • established

  • syn-sent

  • syn-recv

  • fin-wait-1

  • fin-wait-2

  • time-wait

  • closed

  • close-wait

  • last-ack

  • listening

  • listening

  • closing

Alți identificatori de stare disponibili pe care ss îi recunoaște sunt:

  • all (toate stările de mai sus)

  • connected (toate stările cu excepția listen și closed)

  • synchronized (toate stările conectate cu excepția syn-sent)

  • bucket (stările care sunt menținute ca minisocket-uri, de exemplu time-wait și

  • syn-recv)

  • big (opusă stării bucket)

Sintaxa pentru lucrul cu stările este simplă.

For tcp ipv4:ss -4 state FILTERFor tcp ipv6:ss -6 state FILTER

Unde FILTRUL este numele stării pe care doriți să o utilizați.

Să spunem că doriți să vizualizați toate socket-urile IPv4 care ascultă pe mașina dumneavoastră. Pentru aceasta, comanda ar fi:

ss -4 state listening

Rezultatele acestei comenzi ar arăta similar cu Figura 4.

Figura 4: Utilizarea ss cu un filtru de stare de ascultare.

Afișează socket-urile conectate de la o anumită adresă

O sarcină la îndemână pe care i-o puteți atribui lui ss este ca acesta să raporteze conexiunile realizate de o altă adresă IP. Să zicem că doriți să aflați dacă/cum s-a conectat la serverul dvs. o mașină de la adresa IP 192.168.1.139. Pentru aceasta, ați putea emite comanda:

ss dst 192.168.1.139

Informația rezultată (Figura 5) vă va informa despre Netid, starea, IP:port local și IP:port la distanță a socket-ului.

Figura 5: O mașină de la distanță a stabilit o conexiune ssh cu mașina noastră locală.

Faceți-o să lucreze pentru dumneavoastră

Comanda ss poate face destul de multe pentru a vă ajuta să depanați probleme cu serverul Linux sau cu rețeaua dumneavoastră. Ar fi bine să vă faceți timp să citiți pagina de manual ss (emiteți comanda man ss). Dar, în acest moment, ar trebui să aveți cel puțin o înțelegere fundamentală a modului în care să folosiți această comandă pe care trebuie să o cunoașteți.

Învățați mai multe despre Linux prin intermediul cursului gratuit „Introducere în Linux” de la The Linux Foundation și edX.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.