Android

So prüfen Sie, ob Linux-Ports empfangsbereit sind (verwendete Ports)

?Wie öffnet oder schließt man Ports.?Wie findet man heraus welche Ports auf einem PC geöffnet sind?

?Wie öffnet oder schließt man Ports.?Wie findet man heraus welche Ports auf einem PC geöffnet sind?

Inhaltsverzeichnis:

Anonim

Bei der Behebung von Netzwerkkonnektivitäts- oder anwendungsspezifischen Problemen sollte zunächst überprüft werden, welche Ports auf Ihrem System tatsächlich verwendet werden und welche Anwendung einen bestimmten Port überwacht.

In diesem Artikel wird erläutert, wie Sie mit den Befehlen netstat , ss und lsof herausfinden, welche Dienste auf welchen Ports netstat sind. Die Anweisungen gelten für alle Linux- und Unix-basierten Betriebssysteme wie macOS.

Was ist Listening Port?

Der Netzwerkport wird durch seine Nummer, die zugehörige IP-Adresse und den Typ des Kommunikationsprotokolls wie TCP oder UDP identifiziert.

Der Überwachungsport ist ein Netzwerkport, auf dem eine Anwendung oder ein Prozess als Kommunikationsendpunkt empfangsbereit ist.

Jeder Überwachungsport kann mithilfe einer Firewall geöffnet oder geschlossen (gefiltert) werden. Im Allgemeinen ist ein offener Port ein Netzwerkport, der eingehende Pakete von entfernten Standorten akzeptiert.

Es ist nicht möglich, dass zwei Dienste denselben Port an derselben IP-Adresse abhören.

Wenn Sie beispielsweise einen Apache-Webserver ausführen, der die Ports 80 und 443 und versuchen, Nginx zu installieren, kann der spätere nicht gestartet werden, da die HTTP- und HTTPS-Ports bereits verwendet werden.

Überprüfen Sie die Listening Ports mit netstat

netstat ist ein Befehlszeilentool, das Informationen zu Netzwerkverbindungen bereitstellen kann.

Verwenden Sie den folgenden Befehl, um alle TCP- oder UDP-Ports aufzulisten, die abgehört werden, einschließlich der Dienste, die die Ports verwenden, und des Socket-Status:

sudo netstat -tunlp

Die in diesem Befehl verwendeten Optionen haben folgende Bedeutung:

  • -t - TCP-Ports anzeigen. -u - UDP-Ports anzeigen. -n - Zeigt numerische Adressen an, anstatt Hosts aufzulösen. -l - Nur empfangsbereite Ports anzeigen. -p - Zeigt die PID und den Namen des Hörerprozesses an. Diese Informationen werden nur angezeigt, wenn Sie den Befehl als root- oder sudo-Benutzer ausführen.

Die Ausgabe sieht ungefähr so ​​aus:

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 929/master tcp6 0 0:::3306:::* LISTEN 534/mysqld tcp6 0 0:::80:::* LISTEN 515/apache2 tcp6 0 0:::22:::* LISTEN 445/sshd tcp6 0 0:::25:::* LISTEN 929/master tcp6 0 0:::33060:::* LISTEN 534/mysqld udp 0 0 0.0.0.0:68 0.0.0.0:* 966/dhclient

Die wichtigen Spalten in unserem Fall sind:

  • Proto - Das vom Socket verwendete Protokoll. Local Address - Die IP-Adresse und die Portnummer, die der Prozess überwacht. PID/Program name - Die PID und der Name des Prozesses.

sudo netstat -tnlp | grep:22

Die Ausgabe zeigt, dass auf diesem Computer Port 22 vom SSH-Server verwendet wird:

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp6 0 0:::22:::* LISTEN 445/sshd

Wenn die Ausgabe leer ist, bedeutet dies, dass der Port nicht abgehört wird.

Sie können die Liste auch nach Kriterien filtern, z. B. PID, Protokoll, Status usw.

netstat ist veraltet und wird durch ss und ip , aber es ist immer noch eines der am häufigsten verwendeten Befehle zum Überprüfen von Netzwerkverbindungen.

Überprüfen Sie die Listening Ports mit ss

ss ist neu netstat . Es fehlen einige der netstat Funktionen, es werden jedoch mehr TCP- netstat , und es ist etwas schneller. Die Befehlsoptionen sind größtenteils gleich, sodass der Übergang von netstat zu ss nicht schwierig ist.

Um eine Liste aller Listening-Ports mit ss Sie Folgendes ein:

sudo ss -tunlp

Die Ausgabe ist fast die gleiche wie die von netstat gemeldete:

State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd", pid=445, fd=3)) LISTEN 0 100 0.0.0.0:25 0.0.0.0:* users:(("master", pid=929, fd=13)) LISTEN 0 128 *:3306 *:* users:(("mysqld", pid=534, fd=30)) LISTEN 0 128 *:80 *:* users:(("apache2", pid=765, fd=4), ("apache2", pid=764, fd=4), ("apache2", pid=515, fd=4)) LISTEN 0 128:22:* users:(("sshd", pid=445, fd=4)) LISTEN 0 100:25:* users:(("master", pid=929, fd=14)) LISTEN 0 70 *:33060 *:* users:(("mysqld", pid=534, fd=33))

Überprüfen Sie die Listening Ports mit lsof

lsof ist ein leistungsstarkes Befehlszeilenprogramm, das Informationen zu Dateien bereitstellt, die von Prozessen geöffnet werden.

In Linux ist alles eine Datei. Sie können sich einen Socket als eine Datei vorstellen, die in das Netzwerk schreibt.

So rufen Sie eine Liste aller empfangsbereiten TCP-Ports mit dem Typ lsof :

sudo lsof -nP -iTCP -sTCP:LISTEN

Folgende Optionen werden verwendet:

  • -n - Konvertiert keine Portnummern in Portnamen. -p - Hostnamen nicht auflösen, numerische Adressen anzeigen. -iTCP -sTCP:LISTEN - Zeigt nur Netzwerkdateien mit dem TCP-Status LISTEN an.

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 445 root 3u IPv4 16434 0t0 TCP *:22 (LISTEN) sshd 445 root 4u IPv6 16445 0t0 TCP *:22 (LISTEN) apache2 515 root 4u IPv6 16590 0t0 TCP *:80 (LISTEN) mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN) mysqld 534 mysql 33u IPv6 19973 0t0 TCP *:33060 (LISTEN) apache2 764 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) apache2 765 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) master 929 root 13u IPv4 19637 0t0 TCP *:25 (LISTEN) master 929 root 14u IPv6 19638 0t0 TCP *:25 (LISTEN)

Die meisten Namen der Ausgabespalten sind selbsterklärend:

  • COMMAND , PID , USER - Der Name, die PID und der Benutzer, der das mit dem Port verknüpfte Programm COMMAND . NAME - Die Portnummer.

Um herauszufinden, welcher Prozess auf einem bestimmten Port 3306 , z. B. Port 3306 , würden Sie 3306 verwenden:

sudo lsof -nP -iTCP:3306 -sTCP:LISTEN

Die Ausgabe zeigt, dass Port 3306 vom MySQL-Server verwendet wird:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN)

Weitere Informationen finden Sie auf der Manpage lsof. Dort finden Sie Informationen zu allen anderen leistungsstarken Optionen dieses Tools.

Fazit

Wir haben Ihnen verschiedene Befehle gezeigt, mit denen Sie überprüfen können, welche Ports auf Ihrem System verwendet werden und wie Sie herausfinden, welcher Prozess auf einem bestimmten Port empfangsbereit ist.

Terminal