GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Überprüfen Sie die Listening-Ports mit netstat

Wenn Sie Fehler bei einem Dienst beheben, von dem Sie wissen, dass er normal ausgeführt wird, besteht der nächste Schritt darin, sicherzustellen, dass er den richtigen Netzwerkport überwacht.

Die netstat Der Befehl zeigt die Dienste an, die Ports auf einem Linux-Server abhören, sowie die Details aller Verbindungen, die derzeit zu ihnen bestehen. PID) und den Programmnamen.

Sie müssen netstat ausführen auf dem Server, auf dem der Dienst ausgeführt wird.Netstat wird von Ihrer Firewall-Konfiguration nicht beeinflusst.

Hinweis: Sie können auch das lsof verwenden und ss Befehle zum Überprüfen von Ports. Viele der in diesem Artikel enthaltenen Befehlsflags sind dieselben, wenn Sie lsof ausführen und ss Befehle. Die bei Verwendung dieser Befehle zurückgegebene Ausgabe ähnelt jedoch möglicherweise nicht der Ausgabe von netstat Werkzeug. Weitere Informationen zu beiden Befehlen finden Sie im lsof und ss Befehlshandbücher.

Ports prüfen

Führen Sie den folgenden Befehl aus, um die überwachten TCP-Ports und den Namen des Daemons jedes Listeners sowie seine PID aufzulisten:

sudo netstat -plnt

Das folgende Beispiel zeigt die Ausgabe für drei gängige Programme, die auf drei verschiedenen Sockets lauschen.

$ sudo netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      3686/mysqld
tcp        0      0 :::443                      :::*                        LISTEN      2218/httpd
tcp        0      0 :::80                       :::*                        LISTEN      2218/httpd
tcp        0      0 :::22                       :::*                        LISTEN      1051/sshd

Liste filtern

Wenn die Liste der lauschenden Daemons lang ist, können Sie grep verwenden um ihn zu filtern. Zum Beispiel, um alles außer dem Standard-Webserver-Port 80 herauszufiltern , führen Sie den folgenden Befehl aus:

$ sudo netstat -plnt | grep ':80'
tcp        0      0 :::80                       :::*                        LISTEN      8448/httpd

Analysieren Sie die Ergebnisse

Zu den üblichen Ergebnissen gehören die folgenden Ergebnisse:

  • Der Port wird nicht überwacht. Überprüfen Sie die Dienstkonfigurationsdateien und starten Sie den Dienst neu.
  • Der richtige Dienst lauscht am richtigen Port. In diesem Fall müssen Sie den Dienst gründlicher testen. Fahren Sie mit dem Artikel zum Testen des Listening-Dienstes auf Antworten mit netcat fort.
  • Etwas anderes als der erwartete Dienst scheint den Port abzuhören.

Hinweis :Ein Super-Server, wie z. B. xinetd, könnte den Port abhören. Überprüfen Sie Ihre xinetd-Konfiguration, um sicherzustellen, dass dieses Verhalten akzeptabel ist.

Wenn etwas anderes den Port abhört, können Sie das Programm deaktivieren, indem Sie sudo service httpd stop ausführen , oder ändern Sie seine Konfiguration so, dass er den Port nicht mehr abhört. Wenn netstat zeigt, dass der Port frei ist, aktivieren Sie den richtigen Dienst (zum Beispiel sudo service vsftpd start ).

Wenn Sie Änderungen vornehmen, weil der falsche Dienst lauscht, führen Sie netstat aus erneut befehlen. Wenn netstat nicht anzeigt, dass das Programm auf dem richtigen Port lauscht, müssen Sie sich mit seiner Konfiguration befassen, bevor Sie fortfahren.

Wenn Sie an dieser Stelle Änderungen vornehmen, testen Sie Ihre Einrichtung, um sicherzustellen, dass Sie Ihr Problem behoben haben.

Bei Verwendung von netstat Ihre Portprobleme nicht gelöst haben, testen Sie weiterhin Verbindungen zum Dienst mit dem Befehl netcat.


Linux
  1. Verwalten Sie mehrere Dienstinstanzen mit systemctl

  2. Überprüfen Sie, welcher Dienst auf einem bestimmten Linux-Port lauscht

  3. So überprüfen Sie das Abhören / Öffnen von Ports mit Netstat unter Linux

  4. So überprüfen Sie, ob ein bestimmter Dienst unter Ubuntu ausgeführt wird

  5. netstat — warum lauschen IPv4-Daemons auf Ports, die nur in -A inet6 aufgeführt sind?

Netstat-Befehl in Linux - 28 Befehle mit Beispielen

So führen Sie Container als Systemd-Dienst mit Podman aus

So suchen Sie unter Linux nach Listening Ports (Ports in use)

Verwalten von cgroups mit systemd

Erste Schritte mit systemctl

Wie überprüfe ich offene Ports in Linux?