Auflisten aller Open Internet Connections auf einem Mac vom Terminal aus, um Bandbreitenprobleme zu finden

Kürzlich lief das LAN in meinem Büro langsamer als gewöhnlich, und ich konnte nicht feststellen, was die zusätzliche Bandbreite in Anspruch nahm. Ich hatte den Verdacht, dass der P2P-Verkehr schuld ist, aber ich konnte auf der betroffenen Maschine nichts Offensichtliches erkennen. Die Frage ist also, wie sehen Sie, welche Prozesse von Mac OS X aus mit dem Internet oder der Außenwelt verbunden sind?

Mit dem lsof-Befehlszeilentool können wir das Argument -i übergeben, um nur die aktiven und offenen Internetverbindungen auf unseren Macs aufzulisten, und wir können herausfinden, ob etwas Eigenartiges (oder in meinem Fall etwas Verborgenes) passiert und sich verbindet eine externe Adresse, und dieser Befehl wird Ihnen auch zeigen, was die Prozess-ID der betreffenden Anwendung oder Aufgabe ist, so dass wir sie töten und die Aktivität stoppen können, falls gewünscht.

Zeigt eine Liste aller offenen Internetverbindungen in OS X über die Befehlszeile an

Dies muss vom Terminal von OS X eingegeben werden, aber es kann remote mit SSH oder lokal auf einem Mac verwendet werden.

Ich meldete mich beim anstößigen Mac an und tippte den folgenden Befehl ein:

lsof -i

Sie sollten sudo nicht verwenden, aber Sie können, falls gewünscht oder erforderlich, für Ihren speziellen Anwendungsfall.

Die Ausgabe von lsof ist ein wenig beschäftigt, aber wenn Sie mit der Befehlszeile vertraut sind, sollte es nicht zu verrückt aussehen.

Hier ist ein Beispiel für die Ausgabe, die von dieser Befehlszeichenfolge lsof -i angezeigt wird:

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 der obigen Ausgabe ist nichts Ungewöhnliches, aber in meiner oben erwähnten Netzwerk-Fehlerbehebung habe ich einen BitTorrent-Client gefunden, der versteckt im Hintergrund eines meiner Netzwerk-Macs läuft und mehrere große Dateien seedt! Natürlich habe ich den BitTorrent-Client gekillt, die Anwendung entfernt, die Dateien gelöscht und das Mac-LAN läuft wieder auf Hochtouren.

Auflistung nur etablierter Internetverbindungen

Wenn Sie nur die eingerichteten Verbindungen anzeigen möchten (dh sie kommunizieren aktiv und es wurde eine Verbindung zwischen der lokalen Maschine und einer externen IP hergestellt), können Sie diese Befehlsvariation der oben erwähnten lsof-Zeichenkette verwenden:

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

Sie können dies mit "Beobachten" kombinieren, um eine automatisch aktualisierte Liste der hergestellten Verbindungen zu erhalten.

Und wenn Sie den Prozessnamen kennen, können Sie grep immer auch für diesen spezifischen oder vagen Namen verwenden.

Dies ist ein bisschen fortgeschritten, aber es funktioniert ziemlich gut für Mac-Benutzer, die mit dem Terminal und der Befehlszeile im Allgemeinen vertraut sind. Neuere Mac-Benutzer können Private Eye verwenden, um Internet- und Netzwerkverbindungen in OS X zu überwachen. Dies ist eine kostenlose, aber ausgezeichnete Anwendung von Drittanbietern, die in der grafischen Benutzeroberfläche läuft und etwas einfacher zu parsen ist, besonders wenn Sie nicht damit vertraut sind Das Terminal.