Skip to main content

Come usare il comando Netstat su Mac

How to use the command line on Mac (Potrebbe 2024)

How to use the command line on Mac (Potrebbe 2024)
Anonim

Il comando netstat su macOS è un comando Terminale utilizzato per visualizzare informazioni dettagliate sulle comunicazioni di rete del tuo Mac. Le comunicazioni di rete includono tutti i modi in cui il tuo Mac sta parlando al mondo esterno, attraverso tutte le porte e tutte le applicazioni. Dopo aver imparato a usare netstat, gli utenti Mac possono capire rapidamente quali connessioni stanno facendo il loro computer e perché.

Esecuzione di Netstat

Il comando netstat è disponibile su Mac per impostazione predefinita. Non ha bisogno di essere scaricato o installato.

Per eseguire netstat, apri una finestra di Terminale. Se non hai familiarità con Terminal, è disponibile in /Applications/Utilities/Terminal.app. genere netstat e premere Invio per eseguire il comando.

Noterai che un'enorme quantità di testo criptico inizierà a scorrere sullo schermo. Questo è normale e atteso. Senza alcuna opzione aggiuntiva, netstat riporterà tutte le connessioni di rete attive sul tuo Mac. Considerando il numero di funzioni svolte da un dispositivo di rete moderno, è possibile aspettarsi che l'elenco sia lungo. Un report netstat standard può essere eseguito su oltre 1000 righe.

Filtrare l'output di netstat è essenziale per capire cosa succede sulle porte attive del Mac. Puoi filtrare l'output di netstat con i flag integrati. Questi flag consentono di impostare le opzioni, limitando l'ambito e l'output di netstat.

Netstat Flags and Options

Per vedere tutte le opzioni disponibili di netstat, digita man netstat al prompt dei comandi. Questo rivelerà la pagina man di netstat. È inoltre possibile visualizzare una versione online della pagina man di netstat.

netstat -AabdgiLlmnqrRsSvWx -c coda -f address_family -IO interfaccia -p protocollo -w aspettare

Netstat su macOS non funziona allo stesso modo di netstat su Windows o netstat su Linux. L'utilizzo di flag o sintassi da tali implementazioni di netstat potrebbe non determinare il comportamento previsto.

Mancia: Se la suddetta stenografia sembra completamente incomprensibile, scopri come leggere la sintassi del comando.

-r visualizza la tabella di routing, che mostra come i pacchetti vengono instradati sulla rete.

-p protocollo elenca il traffico associato a uno specifico protocollo di rete. Mentre l'elenco completo dei protocolli può essere trovato in / etc / protocolli, quelli più importanti sono udp e tcp.

-v aumenta la verbosità, in particolare aggiungendo una colonna che mostra l'ID del processo (PID) associato a ciascuna porta aperta.

-IO interfaccia fornisce i dati del pacchetto per l'interfaccia specificata. Tutte le interfacce disponibili possono essere visualizzate con il flag -i, ma en0 è in genere l'interfaccia di rete in uscita predefinita. Nota la lettera minuscola.

-g visualizza le informazioni associate alle connessioni multicast.

-S mostra le statistiche di rete per tutti i protocolli, indipendentemente dal fatto che siano attivi o meno.

-n sopprime l'etichetta di indirizzi remoti con nomi. Ciò accelera notevolmente l'output di netstat mentre sacrifica solo informazioni limitate.

-un include le porte del server nell'output di netstat, che non sono incluse nell'output predefinito.

Esempi di Netstat

Per mettere in pratica la nostra comprensione, diamo un'occhiata ad alcuni esempi di netstat.

netstat -apv TCP

Questo comando restituirà solo le connessioni TCP sul tuo Mac, comprese le porte aperte e le porte attive. Verrà utilizzato anche un output dettagliato, che elenca i PID associati a ciascuna connessione.

netstat -a | grep -i "ascolta"

Questa combinazione di netstat e grep rivelerà porte aperte sul tuo Mac. Le porte aperte sono le porte che stanno ascoltando un messaggio. Se non si ha familiarità con la sintassi, il carattere pipe | è usato per inviare l'output di un comando a un altro comando. Conduciamo l'output di netstat a grep, permettendoci di cercare la parola chiave "ascolta" e trovare i nostri risultati.

Accesso a netstat tramite l'utilità di rete

Oltre all'utilizzo completo tramite l'interfaccia della riga di comando di Terminal, alcune delle funzionalità di netstat sono accessibili anche tramite l'app Network Utility. Questa app macOS integrata può essere trovata in / Applicazioni / Utility / Network Utility.app. Apri l'app e fai clic su netstat scheda per accedere all'interfaccia grafica per netstat.

Le opzioni all'interno di Network Utility sono chiaramente molto più limitate di quelle disponibili tramite la riga di comando. Le quattro selezioni dei pulsanti di opzione eseguono semplicemente un comando netstat predefinito e visualizzano l'output nella schermata seguente.

I comandi netstat per ciascun pulsante di opzione sono i seguenti:

  • Visualizza le informazioni della tabella di routing esegue netstat -r
  • Mostra statistiche di rete complete per ogni protocollo esegue netstat -s
  • Visualizza informazioni multicast esegue netstat -g
  • Mostra lo stato di tutte le connessioni socket correnti esegue netstat

Supplementare netstat con lsof

Il fatto è che l'implementazione macOS di netstat non include gran parte delle funzionalità che gli utenti si aspettano e di cui hanno bisogno. Mentre ha i suoi usi, netstat non è così utile su macOS come su Windows. Un comando diverso, lsof, può sostituire molte delle funzionalità mancanti.

lsof mostra tutti i file attualmente aperti da qualsiasi app. Questo può anche essere usato per ispezionare le porte aperte associate alle app. Esegui lsof -i e vedrai un elenco di tutte le applicazioni che comunicano su Internet. Questo è in genere l'obiettivo quando si utilizza netstat su macchine Windows. Tuttavia, l'unico modo significativo per eseguire tale compito su macOS non è con netstat, ma con lsof.

La visualizzazione di ogni singolo file aperto o connessione Internet è spesso estremamente prolissa.Ecco perché lsof viene fornito con un numero di flag per limitare i risultati con criteri specifici. Esistono molti indicatori utili che espandono l'utilità del comando. I più importanti sono sotto. Per ulteriori letture, inclusi più flag e spiegazioni tecniche sull'implementazione di ogni flag, controlla la pagina man di lsof o esegui l'uomo di lsof al prompt di Terminale.

lsof flag e opzioni

-io visualizza tutte le connessioni di rete aperte e il nome del processo che sta utilizzando la connessione. Aggiunta di un 4, come in -i4, mostrerà solo le connessioni IPv4. Aggiungendo invece un 6 (-i6) mostrerà solo le connessioni IPv6.

Il -io la bandiera può anche essere espansa per specificare ulteriori dettagli. -iTCP o -iUDP restituirà solo le connessioni TCP e UDP. -iTCP: 25 restituirà solo le connessioni TCP sulla porta 25. È possibile specificare un intervallo di porte con un trattino, in quanto -iTCP: 25-50.

Usando [email protected] restituiremo solo le connessioni all'indirizzo IPv4 1.2.3.4. Gli indirizzi IPv6 possono essere specificati nello stesso modo. Il precursore @ può anche essere utilizzato per specificare nomi host nello stesso modo, ma non è possibile utilizzare contemporaneamente indirizzi IP e nomi host remoti.

-S in genere forza lsof per visualizzare la dimensione del file. Ma se abbinato al -io bandiera, -S funziona diversamente Invece, consente all'utente di specificare il protocollo e lo stato per il comando da restituire.

-p limita lsof a un particolare ID di processo (PID). È possibile impostare più PID utilizzando i comuni, ad esempio -p 123,456,789. Gli ID di processo possono anche essere esclusi con un ^, come in 123, ^ 456, che escluderebbe specificamente PID 456.

-P disabilita la conversione dei numeri di porta in nomi porta, velocizzando l'output.

-n disabilita la conversione dei numeri di rete in nomi host. Se usato con -P sopra, può velocizzare significativamente l'output di lsof.

-u utente restituisce solo i comandi di proprietà dell'utente nominato.

Esempi di lsof

Come netstat, vedere alcuni esempi di lsof aiuterà a mettere in pratica la nostra comprensione.

lsof -nP [email protected]: 513

Questo comando dall'aspetto complesso elencherà tutte le connessioni TCP con il nome host lsof.itap e il porto 513. Eseguirà anche lsof senza connettere i nomi agli indirizzi IP e alle porte, rendendo il comando eseguito notevolmente più veloce.

lsof -iTCP -sTCP: ASCOLTA

Ciò restituirà ogni connessione TCP con lo stato ASCOLTA. Questo rivela tutte le porte TCP aperte sul tuo Mac. Elenca anche i processi associati a quelle porte aperte. Questo è un aggiornamento significativo su netstat, che elenca al massimo PID.

sudo lsof -i -u ^ $ (whoami)

Restituisce tutte le connessioni non di proprietà dell'utente attualmente loggato. Questo comando è leggermente diverso dagli altri, quindi lo analizzeremo in dettaglio.

Il segno di omissione ^ viene utilizzato per la negazione. Qualsiasi cosa che corrisponda al testo dopo il punto di inserimento verrà rimossa dai risultati. Otteniamo il nome dell'utente attualmente connesso eseguendo chi sono all'interno del comando lsof, circondato da $() lasciare che lsof acceda al suo output come testo. L'esecuzione con sudo ti consente di visualizzare attività non di tua proprietà. L'esecuzione di questo comando senza sudo restituirà una lista vuota.

Altri comandi di rete

Altri comandi di rete Terminal che potrebbero essere di interesse nell'esaminare la rete includono arp, ping e ipconfig.