Vis hvilke apper og prosesser som bruker en Internett-tilkobling via kommandolinje i OS X

I likhet med at du kan overvåke Mac OS X-filsystembruk via kommandolinjen, kan du også finne ut hvilke apper og individuelle prosesser som for øyeblikket bruker Macs internettforbindelse. Dette er et veldig praktisk triks hvis du vet at båndbredden din blir brukt av noe, eller hvis du bare prøver å spore hvilke applikasjoner eller bakgrunnsprosesser som er koblet til omverdenen.


For å avgjøre hvilke Mac-apper, -demoner, -prosesser eller hva som helst annet bruker Internett, skal vi gå til kommandolinjen til OS X og bruke en mer avansert variasjon av den utmerkede lsof-kommandoen. Og ja, dette vil fungere for alle typer Internett-tilkobling via hvilken som helst tjeneste, enten det er wi-fi og trådløst nettverk eller ethernet. Dette vil også fungere på en linux-maskin siden lsof er et standardnettverksverktøy binært.

Vi vil dekke to måter å gjøre dette, den første gir enkel å lese utdata og vil skrive ut navn på applikasjoner og prosesser som kobler til omverdenen, og den andre strengen gir ekstremt detaljert informasjon om hva PID kobler til hvilken vert og ved hjelp av hvilken protokoll. Du kan bruke enten, eller begge, avhengig av dine spesifikke behov.

Vis navn på søknad og prosess ved hjelp av Internett i Mac OS X

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

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

Du vil kanskje kopiere / lime inn denne strengen hvis du ikke er kjent med kommandolinjen, bare vær sikker på at hele strengen blir utført på en enkelt syntakslinje.

Kjører den lange kommandoen vil gi deg produksjonen ser noe ut som dette:

SystemUIS
Dropbox
iChatAgen
Finder
iTunes
Google
ssh

Dette er bare søknad og prosess navn på hva som aktivt bruker internett. Nå er det åpenbart ikke mye mer data her, men hvis du bare prøver å spore opp en skurk bandwidth hogging app, er det noen ganger tilstrekkelig for det formålet.

Selvfølgelig er det mange situasjoner hvor utvidet informasjon om hvilken prosess og / eller apper bruker en nettverkstilkobling, hvordan og til hvilken ekstern adresse, og det er hva vi vil dekke neste.

Vis detaljert informasjon for prosess-ID Koble til Internett fra Mac OS X

Hvis du vil ha mer detaljert informasjon enn hva som er vist i kommandoen ovenfor, kan vi revidere kommandoen ovenfor slik at vi får mer rå data ut av lsof ved å fjerne rørene til andre kommandolinjeverktøy, og gir oss uraffinerte detaljer direkte fra lsof . Du vil også legge merke til at jeg kutter ut et -flagg fordi jeg vil se vertsnavnene denne gangen:

lsof -Pi

Dette vil gi mye mer detaljerte data, inkludert appnavn, PID, protokoll, IP-adresse, vertsnavn og nåværende status for tilkoblingen. Alle veldig nyttige data.

Hvis det er informasjon overbelastning, kan du prøve å røre kommandoen gjennom "mer", så det er lettere å lese i biter, eller bruk grep for å sortere data for en bestemt app eller prosess, slik som:

$ 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 kraftig verktøy med en myriade av bruksområder. Jeg dekket med lsof for å spore båndbreddeproblemer for en tid siden, men det brukte bare -i-flagget som er betydelig mer forenklet. Du kan bruke noen av variasjonene dekket, og hver har sine egne brukstilfeller som kan være nyttige.

Kommandolinjeverktøy er rettet mot avanserte brukere, men de som er nyere til Mac OS X eller som ikke liker Terminal, kan bruke programmer som Private Eye for å se hva som bruker en Mac-internettforbindelse på samme måte, om enn mye mer brukervennlig og helt i en tradisjonell Mac-applikasjon.