Elenca tutte le connessioni Internet aperte su un Mac dal terminale per rintracciare i problemi relativi alla larghezza di banda

Recentemente la LAN del mio ufficio è stata più lenta del solito e non sono riuscito a individuare cosa stesse utilizzando tutta la larghezza di banda extra. Avevo il sospetto che fosse colpa del traffico P2P ma non riuscivo a vedere nulla di ovvio sulla macchina incriminata. Quindi la domanda, naturalmente, è come vedi quali processi si collegano a Internet o al mondo esterno da Mac OS X?

Usando lo strumento da riga di comando lsof, possiamo passare l'argomento -i per elencare solo le connessioni Internet attive e aperte sui nostri Mac, e possiamo scoprire se c'è qualcosa di strano (o nel mio caso, qualcosa di nascosto) in corso e che si connette a un indirizzo esterno, e, questo comando ti mostrerà anche l'ID del processo dell'applicazione o dell'attività in questione, in modo che possiamo ucciderlo e interrompere l'attività se lo desideri.

Visualizza un elenco di tutte le connessioni Internet aperte in OS X dalla riga di comando

Questo deve essere inserito dal Terminale di OS X, ma può essere usato in remoto con SSH o localmente su un Mac.

Ho effettuato l'accesso al Mac incriminato e ho digitato il seguente comando:

lsof -i

Non dovresti aver bisogno di usare sudo, ma puoi farlo se lo desideri o richiesto per il tuo caso d'uso specifico.

L'output di lsof è un po 'impegnato, ma se hai familiarità con la riga di comando non dovrebbe essere niente di pazzesco.

Ecco un esempio dell'output visualizzato da questa stringa di comando lsof -i:

MacMini:~ macuser$ lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
SystemUIS 93 macuser 6u IPv4 0x04db27bc 0t0 UDP *:*
SystemUIS 93 macuser 10u IPv4 0x04db26e0 0t0 UDP *:*
iChatAgen 111 macuser 6u IPv4 0x07084734 0t0 UDP localhost:49490->localhost:49490
iChatAgen 111 macuser 10u IPv4 0x05666f28 0t0 TCP 192.168.0.101:53762->bos-m012c-sdr6.blue.aol.com:aol (ESTABLISHED)
synergys 129 macuser 5u IPv4 0x05f2f6b0 0t0 TCP *:24800 (LISTEN)
Safari 148 macuser 10u IPv4 0x06db46e0 0t0 TCP 192.168.0.101:57557->host29.prod.google.com:http (CLOSE_WAIT)
iTunes 644 macuser 21u IPv4 0x05f2f2a4 0t0 TCP *:daap (LISTEN)

Nel precedente display di output di lsof non c'è nulla di insolito, ma nella mia sopramenzionata risoluzione dei problemi di rete, ho scoperto un client BitTorrent in esecuzione nascosto sullo sfondo di uno dei miei network Mac, e stava seminando diversi file di grandi dimensioni! Ovviamente ho ucciso il client BitTorrent, rimosso l'applicazione, cancellato i file e il Mac LAN è tornato a piena velocità.

Elenco Solo connessioni Internet stabilite

Se si desidera visualizzare solo le connessioni stabilite (ovvero che stanno comunicando attivamente e un collegamento è stato stabilito tra la macchina locale e un IP esterno), è possibile utilizzare questa variazione di comando della stringa lsof di cui sopra:

lsof -i | grep -E "(LISTEN|ESTABLISHED)"

Puoi combinarlo con 'watch' per ottenere un elenco aggiornato automaticamente delle connessioni stabilite.

E se conosci il nome del processo, puoi sempre usare grep anche per quel nome specifico o vago.

Questo è un po 'avanzato, ma funziona abbastanza bene per gli utenti Mac che sono a loro agio con il terminale e la linea di comando in generale. Gli utenti Mac meno esperti possono utilizzare Private Eye per monitorare le connessioni Internet e di rete in OS X, un'applicazione gratuita ma eccellente di terze parti che viene eseguita nell'interfaccia grafica ed è un po 'più facile da analizzare, in particolare se non si ha esperienza con il terminale.