Toon alle Open Internet-verbindingen op een Mac van Terminal naar Bandbreedte-problemen opsporen
Onlangs liep het LAN op mijn kantoor langzamer dan normaal, en ik kon niet vaststellen wat de extra bandbreedte gebruikte. Ik had het vermoeden dat P2P-verkeer de schuld kreeg, maar ik kon gewoon niets duidelijks zien op de overtredende machine. Dus de vraag is natuurlijk hoe zie je welke processen verbinding maken met internet of de buitenwereld vanuit Mac OS X?
Met het lsof-opdrachtregelhulpprogramma kunnen we het -i-argument doorgeven om alleen de actieve en open internetverbindingen op onze Mac's weer te geven, en we kunnen uitvinden of er iets eigenaardigs (of in mijn geval iets verborgens) aan de hand is en verbinding maken met een extern adres, en met deze opdracht kunt u ook zien wat de proces-id van de gewraakte toepassing of taak is, zodat we deze kunnen doden en de activiteit desgewenst kunnen stoppen.
Toon een lijst met alle open internetverbindingen in OS X vanaf de opdrachtregel
Dit moet worden ingevoerd via de Terminal van OS X, maar het kan op afstand worden gebruikt met SSH of lokaal op een Mac.
Ik logde in op de aanstootgevende Mac en typte de volgende opdracht:
lsof -i
U hoeft sudo niet te gebruiken, maar u kunt dit desgewenst of vereist voor uw specifieke use-case.
De uitvoer van lsof is een beetje druk, maar als je bekend bent met de opdrachtregel, zou het niet iets te gek moeten zijn.
Hier is een voorbeeld van de uitvoer weergegeven door deze lsof -i-opdrachtreeks:
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)
In het bovenstaande lsof-uitvoerscherm is er niets bijzonders, maar bij mijn eerdergenoemde probleemoplossing voor netwerken, ontdekte ik een BitTorrent-client die verborgen was op de achtergrond van een van mijn Macs in netwerken, en het zaaide verschillende grote bestanden! Natuurlijk heb ik de BitTorrent-client gedood, de applicatie verwijderd, de bestanden verwijderd en de Mac LAN draait weer op volle snelheid.
Lijst met alleen gevestigde internetverbindingen
Als je toevallig alleen de gevestigde verbindingen wilt weergeven (wat betekent dat ze actief communiceren en er een koppeling tot stand is gebracht tussen de lokale machine en een extern IP-adres), dan kun je deze opdrachtvariatie van de bovengenoemde lsof-reeks gebruiken:
lsof -i | grep -E "(LISTEN|ESTABLISHED)"
Je kunt dit combineren met 'watch' om een automatisch bijgewerkte lijst met gevestigde verbindingen te krijgen.
En als u de procesnaam toevallig kent, kunt u grep ook voor die specifieke of vage naam gebruiken.
Dit is een beetje geavanceerd, maar het werkt best goed voor Mac-gebruikers die vertrouwd zijn met de terminal en de commandoregel in het algemeen. Meer beginnende Mac-gebruikers kunnen Private Eye gebruiken om internet- en netwerkverbindingen te controleren in OS X, een gratis maar uitstekende applicatie van een derde partij die wordt uitgevoerd in de grafische gebruikersinterface en is een beetje eenvoudiger te analyseren, vooral als u niet ervaren bent met de terminal.