Visa vilka appar och processer som använder en Internet-anslutning via kommandorad i OS X

Såsom du kan övervaka Mac OS X-filsystemanvändning via kommandoraden kan du också upptäcka vilka appar och enskilda processer som för närvarande använder din Macs internetanslutning. Detta är ett väldigt användbart knep om du vet att din bandbredd används av något, eller om du bara försöker spåra vilka applikationer eller bakgrundsprocesser som ansluter till omvärlden.


För att avgöra vilken Mac-apparat, -demoner, -processer eller vad som helst annat använder internet kommer vi att vända sig till kommandoraden i OS X och använda en mer avancerad variant av det utmärkta lsof-kommandot. Och ja, det här kommer att fungera för alla typer av internetuppkoppling via vilken tjänst som helst, oavsett om det är wi-fi och trådlöst nätverk eller ethernet. Detta skulle också fungera på en Linux-maskin eftersom lsof är ett standardverktyg för binär nätverk.

Vi kommer att täcka två sätt att göra det här, den första ger enkel att läsa utdata och skriver ut namn på program och processer som ansluter till omvärlden och den andra strängen ger extremt detaljerad information om vad PID ansluter till vilken värd och med vilket protokoll som helst. Du kan använda antingen, eller båda, beroende på dina specifika behov.

Visa namn på program och process med Internet i Mac OS X

Öppna Terminal-appen om du inte redan har gjort det och skriv exakt följande kommando:

lsof -nPi | cut -f 1 -d " "| uniq | tail -n +2

Du kanske vill kopiera / klistra in den här strängen om du inte är bekant med kommandoraden, var noga med att hela strängen körs på en enda rad syntax.

Att köra det långa kommandot kommer att ge dig produktionen som ser något ut så här:

SystemUIS
Dropbox
iChatAgen
Finder
iTunes
Google
ssh

Det här är bara applikations- och processnamn på det som aktivt använder internet. Nu är det uppenbarligen inte mycket mer data här, men om du bara försöker spåra upp en skurk bandwidth hogging app är det ibland tillräckligt för det ändamålet.

Självklart finns det många situationer där utökad information om vilken process och / eller appar som använder en nätverksanslutning, hur och till vilken fjärransluten adress, och det är vad vi kommer att täcka nästa.

Visa detaljerad information för Process ID Anslutning till Internet från Mac OS X

Om du vill ha mer detaljerad information än vad som visas i ovanstående kommandosträng kan vi revidera ovanstående kommando så att vi får mer rådata ut av lsof genom att ta bort rören till andra kommandoradsverktyg och lämnar oss med orefinierade detaljer direkt från lsof . Du kommer också märka att jag klippte ut en-en flagga eftersom jag vill se värdnamnen den här gången:

lsof -Pi

Detta kommer att ge mycket mer detaljerad information, inklusive appnamnet, PID, protokoll, IP-adress, värdnamn och anslutningens nuvarande status. Alla väldigt hjälpsamma uppgifter.

Om det är information överbelastning, försök att leda kommandot genom "mer" så det är lättare att läsa i bitar, eller använd grep för att sortera data för en specifik app eller process, som så:

$ lsof -Pi |grep iChatAgen
iChatAgen 228 David 10u IPv4 0x0bfe44ec 0t0 UDP 127.0.0.1:5191->bos-d25v-r2d2.blue.aol.com:5191
iChatAgen 228 David 13u IPv4 0x1e148b1e 0t0 TCP 192.168.1.29:50051->206.198.4.49:5190 (ESTABLISHED)

lsof är ett kraftfullt verktyg med en mängd användningsområden. Jag täckte med lsof för att spåra upp bandbreddsproblem för en tid sedan, men det använde bara -i-flaggan som är betydligt mer förenklad. Du kan använda någon av de varianter som omfattas, och var och en har egna användarfall som kan vara till hjälp.

Kommandoradsverktygen riktar sig till avancerade användare, men de som är nyare i Mac OS X eller som bara inte gillar Terminal kan använda appar som Private Eye för att se vad som använder en Internetanslutning för Mac på ett liknande sätt, om än mycket mer användarvänligt och helt i en traditionell Mac-applikation.