Startseite
» WINDOWS
»
So überprüfen Sie offene Ports auf einem Windows Server
So überprüfen Sie offene Ports auf einem Windows Server
Um offene Ports auf einem Windows Server zu überprüfen, listen Sie die lokalen Listener auf und testen Sie anschließend von einem anderen Computer aus, ob Clients diese erreichen können. Ein offener Port ist nicht automatisch über das Netzwerk erreichbar: Dienstbindung, Windows-Firewall, Netzwerk-Firewalls, Routing und NAT können den Zugriff beeinträchtigen. Scannen Sie nur Systeme, die Ihnen gehören oder für die Sie eine Zugriffsberechtigung haben.
Lokale TCP-Listener mit PowerShell auflisten
Öffnen Sie auf dem Server PowerShell und führen Sie den Befehl Get-NetTCPConnectionmit dem ListenStatus aus. Durch Sortieren nach Port wird die Liste übersichtlicher, während die ausgewählten Spalten Adresse, Port und Prozess-ID anzeigen.
Verwenden Sie die zurückgegebene Prozess-ID, um den Besitzer zu identifizieren, beispielsweise mit Get-Process -Id 1234(ersetzen Sie 1234<PID> durch die PID in Ihrer Ausgabe). Microsoft dokumentiert die Felder „Verbindungsstatus“, „Lokaler Port“ und „Besitzerprozess“ des Cmdlets in seiner Referenz zu Get-NetTCPConnection .
Verwenden Sie netstat, um die Listener und Prozess-IDs anzuzeigen.
netstatist eine integrierte Alternative, die über die Eingabeaufforderung oder PowerShell funktioniert. Dieser Befehl filtert die Ausgabe nach den lauschenden TCP-Ports:
netstat -ano -p tcp | findstr LISTENING
Die Ausgabe von netstat ordnet jedem lauschenden TCP-Endpunkt eine Prozess-ID zu.
Die Schalter bedeuten: -aListener einschließen, -nAdressen numerisch beibehalten, -odie Prozess-ID (PID) hinzufügen und -p tcpdie Ansicht auf TCP beschränken. Eine PID finden Sie im Task-Manager oder verwenden Sie ` netstat` Get-Process -Id 1234. Für UDP-Endpunkte führen Sie `netstat` aus netstat -ano -p udp; UDP kennt keinen TCP-ähnlichen Status. Weitere Informationen finden Sie in der Referenz zu netstatLISTENING von Microsoft .
Ports mit Microsoft PortQry prüfen
PortQry Version 2 ist ein separates Microsoft-Dienstprogramm zum Überprüfen von TCP- und UDP-Ports. Laden Sie es herunter und extrahieren Sie es in einen Ordner wie z. B. „/usr/local/ports“. C:\Tools\PortQryV2Öffnen Sie anschließend PowerShell in diesem Ordner. Um die aktiven Portzuordnungen auf diesem Computer aufzulisten, führen Sie folgenden Befehl aus:
.\PortQry.exe -local
Der lokale Modus listet aktive TCP- und UDP-Zuordnungen auf und kann Prozess-IDs enthalten; verwenden Sie ihn für die Bestandsaufnahme, nicht für die Fernerreichbarkeit. Um einen anderen Server abzufragen, geben Sie dessen Namen oder IP-Adresse, Protokoll und Port an.
Dieses Beispiel prüft den TCP-Port 443 auf einem anderen Host; ersetzen Sie den Hostnamen durch einen Server, zu dessen Test Sie berechtigt sind.
Bei einer Remote-Anfrage LISTENINGbedeutet „true“, dass PortQry eine Antwort erhalten hat; „ NOT LISTENINGfalse“ bedeutet, dass keine Antwort eingegangen ist, was darauf hindeutet, dass kein Listener aktiv ist. „false“ bedeutet, dass keine Antwort erfolgt ist. In diesem Fall blockiert möglicherweise eine Firewall den Datenverkehr, und es kann sein, dass kein Prozess aktiv ist. UDP-Anfragen sind unter Umständen weniger aussagekräftig, da Dienste unformatierte Anfragen ignorieren können. Weitere Informationen finden Sie im PortQry-LeitfadenFILTERED von Microsoft .
Erreichbarkeit von einem anderen Computer aus testen
Eine Überprüfung auf dem Server kann nicht beweisen, dass ein Client in einem anderen Netzwerk eine Verbindung herstellen kann. Führen Sie auf einem Windows-Client im zu überprüfenden Pfad folgenden Befehl aus:
Ersetzen Sie Hostname und Port durch Ihre Werte. TcpTestSucceeded : TrueBestätigt eine TCP-Verbindung von diesem Client zu diesem Zeitpunkt. Meldet einen Fehler, gibt aber nicht an, ob die Ursache ein fehlender Listener, eine Firewall, ein Routing-Problem, ein DNS-Server oder ein Upstream-Filter ist. Siehe die Referenz zu Test-NetConnectionFalse von Microsoft .
Für einen visuellen Scan installieren Sie Nmap von der offiziellen Downloadseite ; der Windows-Installer enthält Zenmap. Um ausgewählte Ports zu überprüfen, führen Sie folgenden Befehl aus:
nmap -p 80,443 server01.example.com
Geben Sie in Zenmap ein autorisiertes Ziel ein, wählen Sie ein Profil, starten Sie den Scan und überprüfen Sie die Ergebnisse Ports / Hosts. Der Standard-Zielscan von Nmap prüft die 1.000 häufigsten TCP-Ports; verwenden Sie -pdie Option zur Eingrenzung. Die Statusangaben beschreiben den Status des Clients: „ openAnnehmende Verbindungen“ bedeutet, dass eine Anwendung Verbindungen akzeptiert, „ closedKeine Anwendung lauscht“ bedeutet, dass keine Anwendung aktiv ist, und filtered„Ein Hindernis“ verhindert, dass Nmap den Status ermittelt. Weitere Informationen finden Sie im Zenmap-Leitfaden .
Zenmap zeigt das Ziel, das Scanprofil und die Beispielport-Ergebnisse in einem Fenster an.
Was tun mit den Ergebnissen?
Wenn PowerShell einen Listener anzeigt, der Clienttest aber fehlschlägt, überprüfen Sie die gebundene Adresse des Dienstes, die zugehörige eingehende Regel und sein Netzwerkprofil sowie alle vorgelagerten Firewalls, Sicherheitsgruppen, Router oder NAT-Systeme. Eine Zulassungsregel erstellt keinen Listener; ein Dienst muss an den Port gebunden sein.
Bei einem unbekannten Listener verwenden Sie dessen Prozess-ID (PID), um die Anwendung zu identifizieren und vor Änderungen zu prüfen, ob sie benötigt wird. Beschränken oder entfernen Sie nicht benötigte Dienste oder eingehende Regeln gemäß Ihrem üblichen Änderungsprozess und testen Sie anschließend erneut vom relevanten Clientpfad aus. Ein einzelner Scan zeigt die Erreichbarkeit nur von diesem Standpunkt aus an.