In Linux kann es Gold wert sein, herauszufinden, welcher Prozess einen bestimmten Port belegt, insbesondere wenn etwas nicht wie erwartet funktioniert – beispielsweise ein Server nicht startet oder ein Portkonflikt auftritt. Manchmal ist es etwas umständlich, den laufenden Prozess zu identifizieren und den richtigen zu beenden, aber sobald man den Dreh raus hat, ist es recht einfach. Außerdem hilft die Kenntnis der Befehle, das unbedachte Beenden von Prozessen zu vermeiden. Dieser Leitfaden beschreibt anhand praktischer Beispiele einige der besten Befehle und Schritte zum Identifizieren und Verwalten von Prozessen, die auf bestimmten Ports lauschen.
Wie man Prozesse findet und verwaltet, die in Linux auf Ports lauschen.
Einen Prozess finden, der an einem bestimmten Port lauscht
Wenn ein bestimmter Port belegt ist oder die Anwendung nicht funktioniert, sollten Sie zunächst herausfinden, welcher Prozess diesen Port belegt. Um beispielsweise Port 8000 zu überprüfen, sudo lsof -i :8000zeigt der Befehl `port 8000 –proc` an, welcher Prozess ihn nutzt. Wichtig ist hierbei der Prozessname, aber noch wichtiger die Prozess-ID (PID).Sobald Sie diese kennen, wird die Prozessverwaltung einfacher.
Das wirkt wahre Wunder bei der Fehlersuche, beispielsweise wenn ein Webserver oder ein lokaler Entwicklungsserver Probleme bereitet. In manchen Konfigurationen schlägt der Befehl fehl, wenn er nicht mit sudo ausgeführt wird. Also nicht nachlässig sein – führen Sie ihn als Root oder mit erhöhten Rechten aus.
Auflistung aller offenen TCP- und UDP-Ports
Wenn Sie einen umfassenden Überblick über alle Prozesse benötigen, die an *beliebigen* Netzwerkports lauschen, sudo netstat -lntup| grep LISTENist netstat Ihr bester Freund. Ja, netstat wirkt etwas altmodisch, ist aber immer noch zuverlässig und nützlich – insbesondere, weil es Ihnen alle TCP- und UDP-Listener gleichzeitig anzeigt, inklusive Prozess-IDs und -Namen, wenn Sie die entsprechenden Parameter hinzufügen.
Hier die Funktion der einzelnen Teile:
-l– Filter, um nur die Listening-Sockets anzuzeigen-n– Vermeidet DNS-Abfragen, zeigt nur IP- und Portnummern an, was Zeit spart.-t– Fokus auf TCP-u– UDP-p– Enthält die Prozess-ID und den Prozessnamen, äußerst nützlich, um genau festzustellen, wer zuhört.
Manchmal möchte man vielleicht nur nach etwas Bestimmtem suchen, wie zum Beispiel nach „LISTEN“ oder einer bestimmten Portnummer, damit die Ausgabe nicht in Informationen ertrinkt.
Prüfen Sie, welcher Prozess an einem bekannten Port lauscht.
Wenn Sie die Portnummer bereits kennen und die Prozessdetails anzeigen möchten, ist dies ein klassischer Ansatz. Wenn Sie beispielsweise den Prozess mit der PID 72005 finden, der auf Port 8000 lauscht, führen Sie den Befehl aus. Dieser zeigt an, wer den Prozess mit welchem Befehl gestartet hat, was Ihnen Aufschluss darüber geben kann, ob es sicher ist, den Prozess zu beenden oder neu zu starten.ps -aux | grep ps -aux | grep 72005
Ein kleiner Tipp: Manche Prozesse werden von root oder bestimmten Benutzern gestartet. Die Informationen in der psAusgabe können Ihnen viel darüber verraten, ob Sie die entsprechenden Berechtigungen haben oder ob es sich um einen Dienst handelt, der root gehört.
Den Prozess stoppen, um den Hafen freizugeben
Wenn Sie den Prozess identifiziert haben (z. B.PID 72005) und ihn beenden möchten, führen Sie den Befehl aus sudo kill -9 72005. Dieser -9Befehl stellt sicher, dass der Prozess sofort beendet wird. Gehen Sie jedoch mit Vorsicht vor – der Prozess hat keine Möglichkeit, sich zu bereinigen. Manchmal genügt ein ordnungsgemäßes Beenden mit dem Befehl `stop` (ohne `stop`).kill -9
Nach dem Beenden des Prozesses überprüfen Sie mit dem ursprünglichen Befehl, ob der Port frei ist:
$ sudo lsof -i :8000
Wenn jetzt keine Ausgabe erfolgt, ist der Port wieder frei. Das funktioniert besser, als den Server oder den Rechner einfach neu zu starten und auf das Beste zu hoffen.
Bei manchen Setups können Firewalls oder andere Netzwerkkonfigurationen dies beeinflussen, aber diese Befehle decken die Kernaspekte der direkten Verwaltung von Ports und Prozessen ab.