Cum se folosește comanda Netstat pe Mac

Comanda netstat din macOS este o comandă Terminal care afișează informații detaliate despre comunicațiile de rețea ale computerului dumneavoastră. Comunicațiile de rețea includ toate modurile în care Mac vorbește cu lumea exterioară, în toate porturile și toate aplicațiile. Cucerirea netstat vă poate ajuta să înțelegeți conexiunile pe care computerul dvs. le face și de ce.


Rularea Netstat

Comanda netstat este disponibilă în mod implicit pe Mac-uri. Nu este nevoie să îl descărcați sau să îl instalați.

Pentru a rula netstat, deschideți o fereastră Terminal la aplicatii > Utilități > Terminal. Tip netstat și apăsați Introduce pentru a executa comanda.

 wakila / Getty Images 

O cantitate imensă de text va începe să deruleze pe ecran. Dacă nu utilizați niciunul dintre steagurile disponibile (a se vedea mai jos), netstat va raporta toate conexiunile de rețea active pe Mac. Având în vedere numărul de funcții pe care le îndeplinește un dispozitiv de rețea modern, vă puteți aștepta ca lista să fie lungă. Un raport standard poate rula peste 1000 de linii.

Filtrarea rezultatelor netstat este esențială pentru a înțelege ce se întâmplă pe porturile active ale computerului Mac. Steagurile sale încorporate vă permit să setați opțiuni, limitând sfera comenzii.


Steaguri și opțiuni Netstat

Pentru a vedea toate opțiunile disponibile ale netstat, tastați man netstat la promptul de comandă pentru a dezvălui pagina man a netstat. De asemenea, puteți vizualiza o versiune online a paginii man a netstat.

„Om” este prescurtarea de la „manual”.

Sintaxă

Pentru a adăuga steaguri și opțiuni la netstat, utilizați următoarea sintaxă:

netstat [-AabdgiLlmnqrRsSvWx] [-c coadă] [-f adresa_familie] [-I interfață] [-p protocol] [-w așteptați]

netstat pe macOS nu funcționează la fel ca netstat pe Windows și Linux. Utilizarea semnalizatorilor sau a sintaxei din acele implementări ale netstat nu poate duce la comportamentul așteptat.

Dacă stenograma de mai sus pare complet de neînțeles, aflați cum să citiți sintaxa comenzii.

Steaguri utile

Iată câteva dintre cele mai utilizate steaguri:

  • -a include porturile serverului în ieșirea netstat, care nu sunt incluse în ieșirea implicită.
  • -g afișează informații asociate conexiunilor multicast.
  • -I interfață oferă date pachet pentru interfața specificată. Toate interfețele disponibile pot fi vizualizate cu -i steag, dar en0 este de obicei interfața de rețea de ieșire implicită. (Rețineți litera mică.)
  • -n suprimă etichetarea adreselor la distanță cu nume. Acest lucru accelerează dramatic producția netstat sacrificând în același timp doar informații limitate.
  • -p protocol listează traficul asociat cu un protocol de rețea specific. Lista completă a protocoalelor este disponibilă la adresa / etc / protocols, dar cele mai importante sunt udp tcp.
  • -r afișează tabelul de rutare, arătând modul în care pachetele sunt direcționate în jurul rețelei.
  • -s afișează statisticile de rețea pentru toate protocoalele, indiferent dacă sunt sau nu active.
  • -v crește verbozitatea, în special prin adăugarea unei coloane care arată ID-ul procesului (PID) asociat cu fiecare port deschis.

Exemple Netstat

Luați în considerare aceste exemple:

netstat -apv TCP

Această comandă returnează numai conexiunile TCP pe Mac, inclusiv porturile deschise și porturile active. De asemenea, folosește o ieșire detaliată, listând PID-urile asociate cu fiecare conexiune.

netstat -a | grep -i „ascultă”

Această combinație de netstat grep dezvăluie porturi deschise - porturi care ascultă un mesaj. Personajul pipă | trimite ieșirea unei comenzi către o altă comandă. Aici, rezultatul netstat conducte la grep, permițându-vă să căutați cuvântul cheie „ascultați” și să găsiți rezultatele.


Accesarea Netstat prin intermediul utilitarului de rețea

De asemenea, puteți accesa unele dintre netstat funcționalitate prin intermediul aplicației Network Utility la Sistem > Bibliotecă > Servicii de baza > aplicatii.

Apasă pe netstat pentru a accesa interfața grafică.

Opțiunile din cadrul Network Utility sunt mult mai limitate decât cele disponibile prin linia de comandă. Fiecare dintre cele patru selecții de butoane radio rulează un netstat prestabilit comandă și afișează ieșirea.

Comenzile netstat pentru fiecare buton radio sunt după cum urmează:

  • Afișați informații despre tabelul de rutare ruleaza netstat -r.
  • Afișați statistici complete de rețea pentru fiecare protocol ruleaza netstat -s.
  • Afișați informații multicast ruleaza netstat -g.
  • Afișează starea tuturor conexiunilor de soclu curente ruleaza netstat.


Suplimentarea Netstat cu Lsof

Implementarea macOS a netstat nu include o mare parte din funcționalitățile pe care utilizatorii le așteaptă și au nevoie. Deși are utilizările sale, netstat nu este la fel de util pe macOS ca și pe Windows. O comandă diferită, lsof, înlocuiește o mare parte din funcționalitatea lipsă.

Lsof afișează orice fișier deschis în prezent în orice aplicație. De asemenea, îl puteți utiliza pentru a inspecta porturile deschise asociate aplicației. Alerga lsof -iși veți vedea o listă cu toate aplicațiile care comunică prin internet. Acesta este de obicei obiectivul atunci când se utilizează netstat pe mașinile Windows; cu toate acestea, singurul mod semnificativ de a realiza acea sarcină pe macOS nu este cu netstat, ci cu lsof.

Lsof Steaguri și Opțiuni

Afișarea fiecărui fișier deschis sau conexiune la internet este de obicei detaliată. De aceea, lsof vine cu steaguri pentru restricționarea rezultatelor cu criterii specifice. Cele mai importante sunt mai jos.

Pentru informații despre mai multe steaguri și explicații tehnice ale fiecăruia, consultați pagina de manual a lsof sau rulați om lsof la promptul Terminal.

  • -i afișează toate conexiunile de rețea deschise și numele procesului care utilizează conexiunea. Adăugarea unui 4, ca în -i4, va afișa numai conexiuni IPv4. Adăugarea unui 6 in schimb (-i6) va afișa numai conexiuni IPv6.
  • Platforma -i steagul poate fi, de asemenea, extins pentru a specifica detalii suplimentare. -iTCP sau -iUDP va returna doar conexiunile TCP și UDP. -iTCP: 25 va returna numai conexiunile TCP pe portul 25. O gamă de porturi poate fi specificată cu o liniuță, așa cum -iTCP: 25-50.
  • Utilizarea [email protected] va returna doar conexiunile la adresa IPv4 1.2.3.4. Adresele IPv6 pot fi specificate în același mod. Precursorul @ poate fi, de asemenea, utilizat pentru a specifica nume de gazdă în același mod, dar atât adresele IP la distanță, cât și numele de gazdă nu pot fi utilizate simultan.
  • -s forțează de obicei lsof să afișeze dimensiunea fișierului. Dar când este asociat cu -i steag, -s funcționează diferit. În schimb, permite utilizatorului să specifice protocolul și starea pentru a reveni comanda.
  • -p restricționează lsof la un anumit ID de proces (PID). Mai multe PID-uri pot fi setate folosind commons, cum ar fi -p 123,456,789. ID-urile de proces pot fi, de asemenea, excluse cu un ^, ca în 123, ^ 456, care ar exclude în mod specific PID 456.
  • -P dezactivează conversia numerelor de port în nume de porturi, accelerând ieșirea.
  • -n dezactivează conversia numerelor de rețea în nume de gazdă. Când este utilizat cu -P mai sus, poate accelera semnificativ ieșirea lsof.
  • -u utilizatorul returnează numai comenzile deținute de utilizatorul numit.

Lsof Exemple

Iată câteva modalități de a utiliza lsof.

lsof -nP [email protected]: 513

Această comandă cu aspect complex listează toate conexiunile TCP cu numele gazdei lsof.itap și portul 513. De asemenea, rulează lsof fără a conecta nume la adrese IP și porturi, ceea ce face ca comanda să ruleze considerabil mai rapid.

lsof -iTCP -sTCP: ASCULTĂ

Această comandă returnează fiecare conexiune TCP cu starea ASCULTA, dezvăluind toate porturile TCP deschise de pe Mac. De asemenea, enumeră procesele asociate cu acele porturi deschise. Acesta este un upgrade semnificativ netstat, care listează cel mult PID-urile.

sudo lsof -i -u ^ $ (whoami)

Această comandă returnează toate conexiunile care nu sunt deținute de utilizatorul conectat în prezent.

Caretul (^) este pentru negare. Rezultatele nu vor include nimic care să corespundă textului după cursor. Puteți obține numele utilizatorului conectat în prezent executând cine sunt în interiorul lsof comandă, înconjurat de $ () a lasa lsof accesați ieșirea acestuia ca text. Rularea cu sudo vă permite să vedeți sarcini care nu aparțin dvs. Rularea acestei comenzi fără sudo returnează o listă goală.

Alte comenzi de rețea

Alte comenzi de rețea Terminal care ar putea fi de interes în examinarea rețelei dvs. includ arp, ping și ipconfig.