Überprüfen Sie, welcher Prozess einen Port unter Linux verwendet

Was ist ein Hafen?

In Computernetzwerken stellt ein Port einen logischen Ein- und Ausstiegspunkt für eine Verbindung dar. Ports basieren auf Software und sind vollständig virtuell. Diese Ports auf einem Computer werden vom Betriebssystem verwaltet.

Worüber werden wir reden?

Dieses kurze Tutorial demonstriert die verschiedenen Methoden, um festzustellen, welcher Linux-Prozess oder -Dienst gerade einen bestimmten Port überwacht. Lassen Sie uns über Häfen und ihren Zweck sprechen.

Wie sind Ports mit physischen Ports vergleichbar?

So wie physische Ports die Interaktion mit verschiedenen an einen Computer angeschlossenen Peripheriegeräten unterstützen, helfen Ports den verschiedenen Diensten, miteinander zu kommunizieren. Diese Dienste können auf demselben Computer oder auf verschiedenen Computern ausgeführt werden.

Ein bisschen über den Port eines Dienstes

Um auf eingehende Verbindungsanfragen zu warten, ordnet sich ein Prozess einer Portnummer zu. Die meisten Prozesse sind mit einem Standardport eingerichtet und müssen diesen Port gemäß ihrer Spezifikation verwenden. Sie wechseln nicht automatisch zum anderen Port, es sei denn, ihre Konfiguration wird explizit geändert.

Einige Beispiele für Protokolle und die zugehörigen Standardports sind das Secure Shell (SSH)-Protokoll (Port22), Apache HTTP (Port80), der MySQL-Datenbankserver (Port3306) und so weiter. Mithilfe dieser Informationen können Sie herausfinden, welchen Standardport ein Dienst verwendet.

Die Konfigurationsdatei dieser Dienste kann bearbeitet werden, um auch einen anderen Port zu verwenden.

Überprüfen der Ports unter Linux

Sehen wir uns nun an, wie Sie überprüfen können, welche Ports ein Prozess unter Linux verwendet. Hier zeigen wir Ihnen die verschiedenen Befehle hierfür.

1. Lsof-Befehl

Das Dienstprogramm lsof ist hilfreich, um eine Liste der von Ihrem System verwendeten Ports zu erhalten. Betrachten wir das folgende Beispiel, um Informationen über einen Prozess (Prozesse) über den TCP-Port 22 zu erhalten:

$ sudo lsof -i TCP:22

Der Befehl lsof liefert weitere Informationen wie den Namen des Benutzers und welche Prozess-IDs mit jedem Prozess verknüpft sind. Es funktioniert sowohl mit TCP- als auch mit UDP-Ports.

2. SS-Kommando

Der ss Der Befehl ist eine weitere Möglichkeit, herauszufinden, welche Prozesse mit einem bestimmten Port verknüpft sind. Obwohl lsof die gebräuchlichere Abkürzung ist, finden einige Leute ss möglicherweise praktischer.

Suchen wir nach den Prozessen oder Diensten, die Port 3306 überwachen:

$ sudo ss -tunap | grep :3306

Lassen Sie uns diesen Befehl aufschlüsseln:

1. T: Es weist den Befehl ss an, die TCP-Pakete anzuzeigen.

2. u: Es weist den Befehl ss an, die UDP-Pakete anzuzeigen.

3. N: Wird verwendet, um die Portnummern anstelle ihrer Übersetzungen anzuzeigen.

4. A: Es wird verwendet, um die hörenden und nicht hörenden Sockets aller Typen anzuzeigen.

5. P: Es wird verwendet, um die Prozesse anzuzeigen, die einen Socket verwenden.

Das Ergebnis des vorherigen Befehls zeigt, welcher Prozess welchen Port nutzt. Sie können auch den folgenden Befehl ausgeben:

$ sudo ss -tup -a sport = :80

Sport bedeutet hier den Quellhafen.

Diese beiden Ansätze können Ihnen dabei helfen, die IDs der Prozesse zu finden, die mit unterschiedlichen Ports verbunden sind.

3. Netstat-Befehl

Der Befehl netstat zeigt Informationen zu Ihrem Netzwerk an und kann zur Behebung von Problemen oder zur Änderung der Netzwerkkonfiguration verwendet werden. Es kann auch Ihre Netzwerkverbindungen genau überwachen.

Dieser Befehl wird häufig verwendet, um Informationen zu ein- und ausgehenden Verbindungen, Routing-Tabellen, Port-Listening und Nutzungsstatistiken anzuzeigen. Obwohl es in den letzten Jahren veraltet ist, ist Netstat immer noch ein nützliches Werkzeug zur Analyse von Netzwerken.

Mit dem grep-Befehl kann netstat ermitteln, welcher Prozess oder Dienst einen bestimmten Port verwendet (durch Angabe des Ports):

$ sudo netstat -ltnp | grep -w ‚:80‘

Die hier verwendeten Optionen lassen sich wie folgt klassifizieren:

1. T: Es wird nur die TCP-Verbindung angezeigt.

2. l: Wird verwendet, um die Ergebnisse in einer Liste anzuzeigen.

3. N: Es zeigt Adressen und Portnummern im numerischen Format an.

4. P: Zeigt die PID und den Programmnamen an, die jedem Socket zugeordnet sind.

4. Fixiererbefehl

Der Befehl „fuser“ bestimmt die Prozesse, die die Dateien oder Sockets verwenden. Sie können damit die Dienste auflisten, die auf einem bestimmten Port ausgeführt werden. Nehmen wir das Beispiel von Port 3306 und sehen, welche Dienste hier ausgeführt werden:

$ sudo Fuser 3306/tcp

Dadurch erhalten wir die Prozessnummern, die diesen Port verwenden. Anhand dieser Prozessnummer können Sie die entsprechenden Prozessnamen finden. Wenn die Prozessnummer beispielsweise 15809 ist, lautet der hier zu verwendende Befehl wie folgt:

$ ps -p 15809 -o komm=

Allerdings sind bestimmte Tools erforderlich, um die Prozesse zu identifizieren, die einen nicht standardmäßigen Port nutzen. „LSOF“ ist ein Tool zum Ermitteln, welche Dienste in einem Netzwerk verfügbar sind und welche Ports sie verwenden. Betrachten Sie das folgende Beispiel. Dies zeigt, wie die UDP- und TCP-Überwachungsports aufgelistet werden:

$ sudo lsof -Pni | egrep „(UDP|LISTEN)“

Im Folgenden finden Sie eine Beschreibung der hier verwendeten Optionen:

1. P: Die Suche nach Port-Service-Namen wird unterdrückt.

2. N: Zeigt die numerischen Netzwerkadressen an.

3. ich: Es listet die IP-Sockets auf.

Sowohl die Ports als auch die zugehörigen Prozesse werden im zuvor genannten Ergebnis angezeigt. Diese Methode ist besonders nützlich für Prozesse mit nicht standardmäßigen Ports.

Abschluss

In diesem Artikel haben wir über vier mögliche Linux-Befehlszeilentools gesprochen und Beispiele für deren Verwendung bereitgestellt, um herauszufinden, welcher Prozess einen bestimmten Port überwacht.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen