Wie kann ich die offenen IP-Verbindungen auflisten?

Terminal Icon

Wenn alles mal wieder länger dauert, kann es sein, dass der ISP nicht unbedingt (allein) Schuld hat. OS X benutzt, wie jedes andere *NIX-System, Netzwerkverbindungen um Programmen die Kommunikation untereinander zu ermöglichen. Ausserdem bauen Programme auch manchmal selbständig Verbindungen auf, sei es um nach Updates zu fragen, oder weil ein Programm schlicht und ergreifend einfach eine Netzwerkverbindung benötigt um seine Aufgabe zu erfüllen. Hinzu kommen die “üblichen Verdächtigen”, die “nach Hause telefonieren”. Wer sich dafür interessiert welche Programme gerade die Netzwerkkarte benutzen und mit wem sie kommunizieren, findet, aufgrund des *NIX-Unterbaus von OS X, einige Möglichkeiten nachzusehen, wer da mit wem Daten austauscht.

Wer jetzt instinktiv an netstat gedacht hat, sollte die nachfolgend beschriebene Vorgehensweise in die Werkzeugkiste aufnehmen. Nichts gegen netstat, das Programm ist sehr nützlich, aber hier soll es um lsof gehen. Ah, ich höre schon die Frage: “List open files? Wie soll das denn weiterhelfen?” In *NIX ist eigentlich alles ein File, auch die Netzwerkverbindungen; was liegt also näher als sich diese Files anzusehen? Normalerweise wird lsof, unter anderem, dafür benutzt herauszubekommen, welches Benutzerkonto gerade eine Datei geöffnet hat. Da das Programm aber fast so viele Optionen wie ls kennt, ist dem/der einen oder anderen vermutlich die Option -i entgangen. Wenn dem Befehl nicht gleichzeitig ein Hostname oder eine IP-Adresse übergeben wird, dann sieht es sich alle offenen Verbindungen an.

Lange Rede, kurzer Befehl:

lsof -i4

Die Ausgabe dieses Befehls beschränkt sich auf alle IPv4-Verbindungen (-i4) die gerade aktiv sind. Vermutlich wurde die Auflistung nicht in einem Rutsch erzeugt, sondern schien ein wenig zu stottern, richtig? Das lag vermutlich daran, dass das Programm bei jeder Portnummer kurz nachgesehen hat, ob für diese nicht eine namentliche Entsprechung existiert. Wer auf diese Umsetzung verzichten kann, oder möchte, kann dies dem Programm mit der Option -P mitteilen.

lsof -Pi4

Nun werden zwar die IP-Adressen noch aufgelöst, aber die benutzten Ports werden mit ihrer Nummer dargestellt, also beispielsweise 443 und nicht https. Wer auch auf die DNS-Auflösung verzichten möchte, benutzt die Option -n.

lsof -Pni4

Jetzt bekommen wir die reinen IP-Adressen und Portnummern zu sehen.

Wer etwas länger zusehen möchte, kann dem Programm die Option -r mit auf den Weg geben. Sie steht für “repeat mode”, der gegebene Befehl wird also wiederholt. Standardmässig alle 15 Sekunden, wer einen kürzeren oder längeren Intervall wünscht, übergibt einfach die Dauer in Sekunden.

lsof -Pni4 -r 5

Jetzt wird der Befehl alle 5 Sekunden wiederholt, bis er mit CTRL-C abgebrochen wird. Die Option -r muss für sich allein stehen, da sie auch so +r angegeben werden kann. Letztere Variante wiederholt den Befehl so lange, bis keine offenen Dateien mehr gelistet werden. Sehr praktisch wenn man darauf wartet, dass eine oder mehrere Dateien wieder freigegeben werden, aber beim Beobachten der Netzwerkverbindungen nicht sinnvoll, da ein *NIX-Betriebssystem immer offene Netzwerkverbindungen hat.

Viel Spass beim ausprobieren. 😉

Comments

  1. Super Tipp, vielen Dank!

Speak Your Mind

*