Als Linux-Benutzer müssen wir manchmal wissen, auf welcher Portnummer ein bestimmter Prozess lauscht. Alle Ports sind einer Prozess-ID oder einem Dienst in einem Betriebssystem zugeordnet. Wie finden wir diesen Port? In diesem Artikel stellen wir drei verschiedene Methoden vor, mit denen Sie herausfinden können, auf welchem Port ein Prozess lauscht.
Wir haben die in diesem Artikel beschriebenen Befehle und Verfahren auf einem Ubuntu 22.04 LTS-System ausgeführt.
Methode 1:Verwenden des netstat-Befehls
Netstat, das Netzwerkstatistik-Dienstprogramm, wird verwendet, um Informationen über die Netzwerkverbindungen anzuzeigen. Dazu gehören Informationen über Schnittstellenstatistiken, Routingtabellen und vieles mehr. Dieses Dienstprogramm ist auf den meisten Linux-Systemen verfügbar, daher verwenden wir es, um herauszufinden, welche Ports bestimmte Prozesse auf dem System verwenden.
Um den Befehl netstat zu verwenden, müssen Sie das Dienstprogramm net-tools mit dem folgenden Befehl installieren, falls es noch nicht auf Ihrem System installiert ist:
$ sudo apt install net-tools
Führen Sie dann den folgenden Befehl aus:
$ sudo netstat -ltnp
Der obige Befehl gibt netstat-Informationen basierend auf den folgenden Merkmalen aus:
- l:Nur Listening Sockets anzeigen
- t:TCP-Verbindung anzeigen
- n:Adressen in numerischer Form anzeigen
- p:Prozess-ID/Programmname anzeigen
Beispielsweise wird in der obigen Ausgabe des netstat-Befehls das Apache2-Programm mit der Prozess-ID 950 auf Portnummer 80 ausgeführt.
Sie können auch Statistiken für einen bestimmten Port filtern, indem Sie die grep-Funktion in Ihren Befehl integrieren.
Beispiel:
$ sudo netstat -ltnp | grep -w ':80'
Dieser Befehl teilt Ihnen genau mit, welcher Prozess auf Portnummer 80 ausgeführt wird.
Methode 2:Verwenden des lsof-Befehls
Das Dienstprogramm lsof oder List of Open Files hilft beim Auflisten aller geöffneten Dateien auf Ihrem Linux-System. Wir können dieses Dienstprogramm verwenden, um alle Prozesse anzuzeigen, die auf einem bestimmten Port geöffnet sind.
Um den Befehl lsof zu verwenden, müssen Sie das Dienstprogramm lsof mit dem folgenden Befehl installieren, falls es noch nicht auf Ihrem System installiert ist:
$ sudo apt install lsof
Lassen Sie uns lsof verwenden, um den Dienst anzuzeigen, der einen bestimmten Port überwacht.
Beispiel:
$ sudo lsof -i :80
Dieser Befehl listet alle Prozesse auf, die die TCP-Portnummer 80 verwenden.
Methode 3:Verwenden des Fuser-Befehls
Der Befehl fuser zeigt an, welche Prozess-IDs die benannten Dateien, Sockets oder Dateisysteme verwenden. Wir können diesen Befehl verwenden, um Prozess-IDs anzuzeigen, die auf einem bestimmten TCP-Port laufen.
Um den Befehl fuser zu verwenden, müssen Sie das Dienstprogramm psmisc mit dem folgenden Befehl installieren, falls es noch nicht auf Ihrem System installiert ist:
$ sudo apt install psmisc
Lassen Sie uns mit dem folgenden Befehl alle Prozess-IDs anzeigen, die auf TCP-Port 3306 ausgeführt werden:
$ sudo fuser 3306/tcp
Sie können in diesem Befehl eine beliebige Portnummer angeben, um die lauschenden Prozesse anzuzeigen.
In der obigen Ausgabe können Sie sehen, dass die Prozess-ID 975 auf TCP 3306 lauscht.
Führen Sie den folgenden Befehl aus, um anzuzeigen, welchem Programm diese Prozess-ID entspricht:
Syntax:
$ ps -p [processID] -o comm=
In unserem Fall:
$ ps -p [975] -o comm=
Die Ausgabe zeigt, dass die Prozess-ID 975 dem Programmnamen MySDLd entspricht. Somit lauscht die Prozess-ID 975 des Programms MySQLd auf Port Nummer 3306.
Durch die drei Methoden, die Sie in diesem Artikel kennengelernt haben, können Sie leicht sehen, auf welchem TCP-Port ein bestimmter Prozess unter Linux lauscht.