Wie kann ich überprüfen, ob auf dem Server ein Port geöffnet ist oder nicht?

Wie kann ich überprüfen, ob auf dem Server ein Port geöffnet ist oder nicht?

Ich habe Shared Hosting zum Hosten meiner Website verwendet. Ich möchte eine PHP-WebSocket-Anwendung bereitstellen, die mit Ratchet PHP erstellt wurde. Ich möchte also, dass sie auf Port 9000 lauscht.

Wenn ich den Befehl in meinem SSH-Zugriff ausführe, php server.phpwird angezeigt, dass der Server gestartet ist und auf domain.com:9000 lauscht. Aber in meiner Chat-Anwendung dauert es einige Zeit und dann heißt es:

Firefox kann keine Verbindung zum Server unter ws://domain.com:9000/ herstellen

Außerdem habe ich überprüft, telnet domain.com 9000welche Ergebnisse

Verbindung zum Host konnte auf Port 9000 nicht geöffnet werden: Verbindung fehlgeschlagen.

Ich habe den Support kontaktiert, sie sagen

Ihr Port 9000 ist für ausgehende Verbindungen geöffnet.

Wie kann ich prüfen, ob mein Port geöffnet ist? Und wenn er geöffnet ist, warum hört er dann nicht auf die Verbindungen, die ein Webbrowser vom Client zum Server herstellt?

Antwort1

Ihr Port 9000 ist für ausgehende Verbindungen geöffnet.

Aber das ist nicht das, was Sie versuchen. Sie versuchen, eineeingehendeVerbindung zum Server, nicht eine ausgehende Verbindung vom Server.

Wie kann ich überprüfen, ob mein Port geöffnet ist?

Kontaktieren Sie den Hosting-Anbieter und teilen Sie ihm mit, dass Sie eineHörerauf Port 9000 Ihres Shared-Hosting-Kontos, anstatt ausgehende Verbindungen herzustellen.

Auf einem gemeinsam genutzten Server lässt der Hosting-Anbieter möglicherweise überhaupt keine eingehenden Verbindungen zu oder verlangt von Ihnen die Verwendung eines bestimmten Portbereichs.

(Auf einem privaten/dedizierten Server sind die einzigen Einschränkungen hingegen diejenigen, die Sie selbst in der Firewall des Servers festgelegt haben. Überprüfen Sie dies daher, indem Sie sich die Firewall-Regeln ansehen – iptables, ufw, firewalld usw.)

Antwort2

Wenn Sie in einem Linux-System über SSH-Zugriff verfügen, können Sie Ihre Firewall-Regeln mithilfe von iptables abfragen:

sudo iptables -S | grep ACCEPT

Wenn die Firewall-Regeln mithilfe von geändert wurden firewall-cmd, können Sie die Regeln mit dem folgenden Befehl abfragen:

sudo firewall-cmd --list-all

Für eine vollständige „Karte“ der Firewall (nützlich, wenn Sie verstehen müssen, wie die verschiedenen Ketten konfiguriert sind) können Sie den folgenden Befehl ausführen:

sudo iptables -L

Antwort3

Hier ist mein Bash-Skript zum Überprüfen der offenen Ports!

log_file=log_file    
ip_list=("192.168.111.1" "192.168.111.2" "192.168.111.3")    
#ip_list=$(cat ip_addr.txt)  #put all ip in the text file 
        for ip in "${ip_list[@]}"
             do
              nc -z -w5 "$ip" 22
                if [ $? -eq 0 ]; then
                    echo "$ip port 22 is open " >> $log_file
                else
                    echo "SSH port 22 is not open on $ip"
                fi
            done

Um zu prüfen, ob der Port geöffnet ist bzw. nicht, verwenden Sie ncdie Funktion „Port prüfen“.

verwandte Informationen