Laat zien welke apps en processen een internetverbinding gebruiken via de opdrachtregel in OS X
Net zoals je het Mac OS X-bestandssysteemgebruik via de opdrachtregel kunt volgen, kun je ook ontdekken welke apps en individuele processen momenteel je Macs-internetverbinding gebruiken. Dit is echt een handige truc als je weet dat je bandbreedte door iets wordt gebruikt, of als je gewoon probeert op te sporen welke applicaties of achtergrondprocessen verbinding maken met de buitenwereld.
Om te bepalen welke Mac-apps, daemons, processen of wat dan ook het internet gebruiken, gaan we naar de commandoregel van OS X en gebruiken we een meer geavanceerde variant van de uitstekende opdracht lsof. En ja, dit werkt voor elk type internetverbinding via elke service, of het nu gaat om wi-fi en draadloos netwerken of ethernet, en dit zou ook werken op een linux-machine, aangezien lsof een standaard binaire netwerktool is.
We zullen twee manieren bedenken om dit te doen, de eerste biedt eenvoudig leesbare uitvoer en zal namen van applicaties en processen afdrukken die verbinding maken met de buitenwereld, en de tweede reeks zal uiterst gedetailleerde informatie verschaffen over wat PID verbindt met welke host en met welk protocol. U kunt een of beide gebruiken, afhankelijk van uw specifieke behoeften.
Show Names of Application & Process Using Internet in Mac OS X
Open de Terminal-app als u dat nog niet hebt gedaan en voer de volgende opdracht precies in:
lsof -nPi | cut -f 1 -d " "| uniq | tail -n +2
Als u niet bekend bent met de opdrachtregel, kunt u die reeks kopiëren en plakken. Zorg er wel voor dat de hele tekenreeks wordt uitgevoerd op één regel syntaxis.
Het uitvoeren van die lange opdracht geeft je uitvoer er ongeveer zo uit:
SystemUIS
Dropbox
iChatAgen
Finder
iTunes
Google
ssh
Dit zijn slechts de applicatie- en procesnamen van wat actief internet gebruikt. Nu zijn er duidelijk niet veel meer gegevens hier, maar als je alleen maar probeert een sporadische hogesnelheidsapp voor bandbreedtes op te sporen, is het soms voldoende voor dat doel.
Natuurlijk zijn er veel situaties waarin uitgebreide informatie over welk proces en / of apps een netwerkverbinding gebruiken, hoe en met welk extern adres, en dat is wat we hierna zullen bespreken.
Gedetailleerde informatie voor proces-ID weergeven Verbinding maken met internet vanuit Mac OS X
Als u gedetailleerdere informatie wilt dan wat in de bovenstaande opdrachtstring wordt getoond, kunnen we de bovenstaande opdracht herzien, zodat we meer onbewerkte gegevens uit lsof halen door de leidingen naar andere opdrachtregelhulpprogramma's te verwijderen, zodat we onverharde details direct van lsof achterlaten . Je zult ook merken dat ik de vlag -n heb weggelaten omdat ik deze keer de hostnamen wil zien:
lsof -Pi
Dit levert veel gedetailleerdere gegevens op, waaronder de app-naam, PID, protocol, IP-adres, hostnaam en de huidige status van de verbinding. Alle zeer nuttige gegevens.
Als dat een informatie-overload is, probeer dan de opdracht door 'meer' te pipen, zodat het gemakkelijker is om in chunks te lezen of gebruik grep om gegevens te sorteren voor een specifieke app of proces, zoals:
$ 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 is een krachtig hulpprogramma met talloze toepassingen. Ik behandelde het gebruik van lsof om bandbreedteproblemen heel lang geleden op te sporen, maar het gebruikte alleen de vlag -i die aanzienlijk vereenvoudigd is. U kunt elk van de gedekte varianten gebruiken en elk heeft zijn eigen gebruikscasussen die nuttig kunnen zijn.
Commandoregelhulpmiddelen zijn bedoeld voor gevorderde gebruikers, maar degenen die nieuwer zijn voor Mac OS X of die gewoon niet van Terminal houden, kunnen apps zoals Private Eye gebruiken om te helpen zien wat op een vergelijkbare manier een Macs-internetverbinding gebruikt, zij het veel gebruiksvriendelijker en volledig in een traditionele Mac-applicatie.