Oppfør alle åpne Internett-tilkoblinger på en Mac fra Terminal for å spore ned båndbreddeproblemer

Nylig LAN på kontoret mitt hadde kjørt langsommere enn vanlig, og jeg kunne ikke finne ut hva som brukte opp all den ekstra båndbredden. Jeg hadde en mistanke om at P2P-trafikken var skylden, men jeg kunne ikke se noe som var tydelig på den fornærmende maskinen. Så spørsmålet er selvfølgelig hvordan ser du hvilke prosesser som kobles til Internett eller omverdenen fra Mac OS X?

Ved hjelp av kommandolinjeprogrammet lsof kan vi passere -i-argumentet for å bare vise de aktive og åpne Internett-tilkoblingene på Macene våre, og vi kan finne ut om det er noe merkelig (eller i mitt tilfelle noe skjult) som skjer og kobler til en ekstern adresse, og denne kommandoen vil også vise deg hva prosess-IDen er for den overordnede applikasjonen eller oppgaven, slik at vi kan drepe det og stoppe aktiviteten hvis ønskelig.

Vis en liste over alle åpne Internett-tilkoblinger i OS X fra kommandolinjen

Dette må oppgis fra Terminal OS X, men det kan brukes eksternt med SSH eller lokalt på en Mac.

Jeg logget inn på den fornærmende Macen og skrev følgende kommando:

lsof -i

Du bør ikke bruke sudo, men du kan om ønskelig eller nødvendig for ditt spesielle brukstilfelle.

Output av lsof er litt opptatt, men hvis du er kjent med kommandolinjen, bør det ikke være noe for gal.

Her er et eksempel på utgangen som vises av denne lsof -i kommandostrengen:

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 ovennevnte lsof-utgangsdisplay er det ikke noe uvanlig, men i den ovennevnte nettverksfeilsøkingen oppdaget jeg en BitTorrent-klient som kjører skjult i bakgrunnen til en av mine Mac-nettverk, og det så flere store filer! Selvfølgelig drepte jeg BitTorrent-klienten, fjernet programmet, slettet filene, og Mac LAN kjører på full fart igjen.

Oppføring Kun Etablerte Internettforbindelser

Hvis du tilfeldigvis vil bare vise de etablerte forbindelsene (som betyr at de kommuniserer aktivt og det er etablert en kobling mellom den lokale maskinen og en ekstern IP), kan du bruke denne kommandevarianten av den nevnte lsof-strengen:

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

Du kan kombinere dette med "watch" for å få en automatisk oppdatert liste over etablerte forbindelser også.

Og hvis du kommer til å kjenne prosessnavnet, kan du også bruke grep for det bestemte eller vage navnet også.

Dette er litt avansert, men det fungerer ganske bra for Mac-brukere som er komfortable med terminal- og kommandolinjen generelt. Flere nybegynnere Mac-brukere kan bruke Private Eye til å overvåke internett og nettverkstilkoblinger i OS X, som er et gratis, men utmerket tredjepartsprogram som kjører i det grafiske brukergrensesnittet, og er litt lettere å analysere, spesielt hvis du ikke har erfaring med terminalen.