Vis hvilke apps og processer der bruger en internetforbindelse via kommandolinje i OS X

Meget ligesom du kan overvåge Mac OS X-filsystembrug via kommandolinjen, kan du også opdage, hvilke applikationer og individuelle processer der for øjeblikket bruger din Macs internetforbindelse. Dette er et virkelig praktisk trick, hvis du ved, at din båndbredde bliver brugt af noget, eller hvis du bare forsøger at spore hvilke applikationer eller baggrundsprocesser der er forbundet med omverdenen.


For at afgøre, hvilke Mac-apps, -demoner, -processer eller hvad som helst der bruger internettet, skal vi henvende os til kommandolinjen i OS X og bruge en mere avanceret variant af den fremragende lsof-kommando. Og ja, det vil fungere for enhver internetforbindelsestype via en hvilken som helst tjeneste, hvad enten det er wi-fi og trådløst netværk eller ethernet. Og det ville også fungere på en linux-maskine, da lsof er et standard netværksværktøj binært.

Vi vil dække to måder at gøre dette, den første giver nem at læse output og vil udskrive navne på applikationer og processer, der forbinder til omverdenen, og den anden streng vil give yderst detaljerede oplysninger om, hvad PID forbinder til hvilken vært og ved hjælp af hvilken protokol. Du kan bruge enten, eller begge dele, afhængigt af dine specifikke behov.

Vis navn på applikation og proces ved hjælp af internettet i Mac OS X

Åbn Terminal-appen, hvis du ikke allerede har gjort det, og skriv følgende kommando nøjagtigt:

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

Du vil muligvis gerne kopiere / indsætte den pågældende streng, hvis du ikke er bekendt med kommandolinjen, bare vær sikker på at hele strengen udføres på en enkelt syntaks.

At køre den lange kommando vil give dig output, der ser noget ud som dette:

SystemUIS
Dropbox
iChatAgen
Finder
iTunes
Google
ssh

Disse er kun ansøgnings- og procesnavne for, hvad der aktivt bruger internettet. Nu er der naturligvis ikke meget flere data her, men hvis du bare forsøger at spore en skurk bandwidth hogging app, er det nogle gange tilstrækkeligt til det formål.

Selvfølgelig er der mange situationer, hvor udvidet information om, hvilken proces og / eller apps der bruger en netværksforbindelse, hvordan og til hvilken fjern adresse, og det er det, vi dækker næste gang.

Vis detaljeret info til proces-id Tilslutning til internettet fra Mac OS X

Hvis du vil have mere detaljerede oplysninger end det, der vises i kommandostrengen ovenfor, kan vi revidere ovenstående kommando, så vi får mere rå data ud af lsof ved at fjerne rørene til andre kommandolinjeværktøjer, og efterlader os uraffinerede detaljer direkte fra lsof . Du vil også bemærke, at jeg har skåret et flag ud, fordi jeg vil se værtsnavnet denne gang:

lsof -Pi

Dette vil give langt mere detaljerede data, herunder app navn, PID, protokol, IP-adresse, værtsnavn og den aktuelle status for forbindelsen. Alle meget nyttige data.

Hvis det er information overbelastning, prøv at pipere kommandoen gennem 'mere', så det er lettere at læse i stykker eller bruge grep til at sortere data for en bestemt app eller proces, som sådan:

$ 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 er et kraftfuldt værktøj med et utal af anvendelser. Jeg dækkede at bruge lsof til at spore båndbreddeproblemer for nogen tid siden, men det brugte bare det -i flag, som er betydeligt mere forenklet. Du kan bruge nogen af ​​de omfattede varianter, og hver har sine egne brugssager, som kan være nyttige.

Kommandolinjeværktøjer er rettet mod avancerede brugere, men de nyere til Mac OS X eller som bare ikke kan lide Terminal kan bruge apps som Private Eye for at se, hvad der bruger en Macs internetforbindelse på en lignende måde, omend meget mere brugervenlig og helt i en traditionel Mac-applikation.