Lista alla öppna Internetanslutningar på en Mac från terminaler för att spåra bandbreddsproblem

Nyligen hade LAN på mitt kontor gått långsammare än vanligt, och jag kunde inte bestämma vad som använde alla extra bandbredd. Jag hade misstankar om att P2P-trafik skulle skylla men jag kunde bara inte se någonting självklart på den förevändande maskinen. Så frågan är självklart hur ser du vilka processer som ansluter till internet eller omvärlden från Mac OS X?

Med hjälp av kommandoradsverktyget lsof kan vi passera -i-argumentet för att bara lista de aktiva och öppna internetanslutningarna på våra Macar, och vi kan ta reda på om det finns något speciellt (eller i mitt fall något dolt) som händer och ansluts till en extern adress, och det här kommandot kommer också att visa dig vilket process-ID som är av den förekommande applikationen eller uppgiften, så att vi kan döda det och stoppa aktiviteten om så önskas.

Visa en lista över alla öppna Internetanslutningar i OS X från kommandoraden

Detta måste anges från Terminal OS X, men det kan användas på distans med SSH eller lokalt på en Mac.

Jag loggade in på den förolämpande Mac och skrev följande kommando:

lsof -i

Du behöver inte använda sudo, men du kan om det behövs eller krävs för ditt specifika användningsfall.

Output av lsof är lite upptagen men om du är bekant med kommandoraden borde det inte vara alltför galet.

Här är ett exempel på produktionen som visas av den här kommandoraden 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)

I ovanstående lsof-utmatningsskärm finns det inget ovanligt, men i mitt ovannämnda nätverksfelsökning upptäckte jag en BitTorrent-klient som kördes gömd i bakgrunden av en av mina nätverks-Mac, och det sådde flera stora filer! Naturligtvis dödade jag BitTorrent-klienten, tog bort ansökan, tog bort filerna och Mac LAN körs med full hastighet igen.

Listning Endast etablerade Internetanslutningar

Om du bara vill visa de etablerade anslutningarna (vilket betyder att de kommunicerar aktivt och att en länk har upprättats mellan den lokala maskinen och en extern IP), kan du använda den här kommandovarianten av den tidigare nämnda lsof-strängen:

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

Du kan kombinera detta med "klocka" för att få en automatiskt uppdaterad lista över etablerade anslutningar också.

Och om du råkar känna till processnamnet kan du alltid använda grep för det specifika eller vaga namnet också.

Detta är lite avancerat, men det fungerar ganska bra för Mac-användare som är bekväma med terminal- och kommandoraden i allmänhet. Mer nybörjare Mac-användare kan använda Private Eye för att övervaka internet- och nätverksanslutningar i OS X, vilket är ett gratis men utmärkt tredjepartsprogram som körs i det grafiska användargränssnittet och är lite lättare att analysera, särskilt om du inte är erfaren med terminalen.