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.