it-swarm.com.de

Wie überprüfe ich, ob ein Port auf einem Windows-Computer blockiert ist?

Welche nativen Optionen müssen auf der Windows-Plattform überprüft werden, ob ein Port (z. B. 3306) auf meinem lokalen Computer (wie in localhost) blockiert wird?

109
Boris Pavlović

Da Sie sich auf dem Windows-Computer befinden, können diese Dinge ausgeführt werden:

  • Führen Sie den folgenden Befehl aus und suchen Sie nach einem Listener ": 3306" (Sie haben UDP/TCP nicht erwähnt). Dadurch wird bestätigt, dass am Port etwas ausgeführt wird.

    netstat -a -n

  • Wenn Sie danach eingehende Verbindungen an diesem Port erwarten und das Gefühl haben, dass die Firewall diese blockiert, können Sie dies tun starten Sie die Windows-Firewall-Protokollierung und überprüfen Sie die Protokolle auf unterbrochene Verbindungen

    • Wechseln Sie zu Windows-Firewall, Erweiterte Einstellungen
    • Klicken Sie auf die Schaltfläche Einstellungen neben "LAN-Verbindung".
    • Wählen Sie "Verworfene Pakete protokollieren".
    • Überprüfen Sie den Speicherort der Protokolldatei (falls nicht vorhanden, definieren Sie einen)
    • OK klicken
    • Wenn nun der Verbindungsversuch unternommen wird (vorausgesetzt, Sie wissen, wann dies geschehen ist), suchen Sie in der Protokolldatei nach einem Drop auf Port 3306.
    • Wenn dies angezeigt wird, möchten Sie eine Ausnahme für diesen Port hinzufügen.
  • Es gibt noch einen Befehl zum Überprüfen des Firewall-Status
    (Update für Windows 7-Benutzer - wie von Nick unten angegeben - verwenden Sie netsh advfirewall firewall )

    netsh firewall show state

    • dadurch werden die blockierten Ports sowie die aktiven Überwachungsports mit Anwendungszuordnungen aufgelistet
  • Dieser Befehl gibt die Konfigurationsdetails der Windows-Firewall aus

    netsh firewall show config


Wenn Sie nach dem Start der Protokollierung einen aktiven Block haben (eingehende Verbindungen werden von der Firewall getrennt), sollten Sie dies im Protokoll sehen.

Wenn Sie eine Anwendung/einen Dienst ausführen, die bzw. der 3306 überwacht, wird die firewall-Konfiguration sollte zeigen, dass es aktiviert ist. Wenn dies nicht angezeigt wird, haben Sie wahrscheinlich das Hinzufügen einer Ausnahme mit der Firewall verpasst, um diese App/diesen Dienst zuzulassen.

Schließlich wird Port 3306 normalerweise für MySQL verwendet. Ich gehe davon aus, dass Sie MySQL Server auf diesem Windows-Computer ausführen. Sie sollten daher einen Listener für 3306 sehen, der eingehende Verbindungen akzeptiert. Wenn Sie das nicht sehen, müssen Sie zuerst mit Ihrer Anwendung (MySQL) arbeiten, um dies zu starten.

113
nik

NETSTAT sagt Ihnen, ob der Port lauscht, aber es sagt Ihnen nicht, ob der Port offen zur Außenwelt ist. Damit meine ich, dass NETSTAT möglicherweise anzeigt, dass 0.0.0.0 auf Port 3306 HÖRT, aber eine Firewall diesen Port möglicherweise weiterhin blockiert, wodurch externe Verbindungen verhindert werden. Es reicht also nicht aus, sich nur auf NETSTAT zu verlassen.

Der beste Weg, um zu überprüfen, ob ein Port blockiert ist, besteht darin, einen Port-Scan vom Client-Computer aus durchzuführen.

Es gibt viele Möglichkeiten, einen Port-Scan durchzuführen. Da Sie jedoch erwähnt haben, dass Sie unter Windows arbeiten, empfehle ich das Microsoft-Befehlszeilenprogramm PortQry und die grafische Version PortQryUI

So testen Sie alle offenen Ports:

portqry.exe -n #.#.#.#   

So testen Sie einen bestimmten Port:

portqry.exe -n #.#.#.# -e #

Zum Beispiel, um die Webschnittstelle eines Routers unter 192.168.1.1 zu testen:

portqry.exe -n 192.168.1.1 -e 80

Welches kehrt zurück:

TCP port 80 (http service): LISTENING

Wobei als Test auf einem lokalen Computer ohne HTTPD Folgendes ausgeführt wird:

TCP port 80 (http service): NOT LISTENING

Mit einem PortScan-Dienstprogramm erhalten Sie eines von drei Ergebnissen.

  • Listening bedeutet, dass der Server den angegebenen Port überwacht
  • Filtered bedeutet, dass ein TCP Bestätigungspaket mit gesetztem Reset-Flag empfangen wurde, das wahrscheinlich auf ein Firewall- oder Softwareproblem hinweist
  • Not Listening bedeutet, dass es überhaupt keine Antwort erhalten hat

telnet ist eine weitere Befehlszeilenoption, die normalerweise standardmäßig auf dem Betriebssystem installiert ist. Mit diesem Befehlszeilenprogramm können Sie schnell feststellen, ob ein Port auf eine Netzwerkanforderung reagiert.

Um telnet zu verwenden, geben Sie einfach den folgenden Befehl über eine Eingabeaufforderung ein:

telnet localhost 3306

Der obige Befehl sollte Ihnen einen schnellen Hinweis geben, ob der Port 3306 auf dem localhost antwortet.

25
Tim Penner

Seit PowerShell 4.0 können Sie den Befehl Test-NetConnection Verwenden.

Wenn Sie Port 3306 wie in Ihrem Beispiel testen möchten, lautet der Befehl

Test-NetConnection -ComputerName localhost -Port 3306

TechNet Test-NetConnection-Dokumentation

21
Marcel Janus

Wenn Sie vom lokalen Computer (unter Verwendung der externen IP-Adresse), aber nicht von einem anderen Computer aus, eine Verbindung zum Port herstellen können, wird dieser irgendwo dazwischen blockiert.

Beachten Sie, dass eine Firewall auf Ihrem lokalen Computer könnte sogar die erste Aktion verhindert.

5
Brent