Wie können Sie unter Windows mithilfe der Befehlszeile überprüfen, ob ein Remote-Port geöffnet ist?


Antworten:


62

Ich habe neulich ein verstecktes Juwel von Microsoft gefunden, das zum Testen von Ports entwickelt wurde:

Portqry.exe

"Portqry.exe ist ein Befehlszeilenprogramm, mit dem Sie bei der Behebung von TCP / IP-Verbindungsproblemen helfen können. Portqry.exe wird auf Windows 2000-Computern, Windows XP-Computern und Windows Server 2003-Computern ausgeführt. Das Dienstprogramm meldet den Portstatus der TCP- und UDP-Ports auf einem von Ihnen ausgewählten Computer. "


Hinweis: Beim Versuch, diese von Microsoft herunterzuladen, wurde eine Seite zurückgegeben, auf der angegeben wird, dass der Download "nicht mehr verfügbar" ist.
dgw

@dgw Danke dafür .. google zeigt eine neue Version, wenn Sie nach "portray" suchen, die ich morgen überprüfen werde
Peter M


52

Welche Windows-Version? Für Windows 8 / Server 2012 und höher funktioniert in PowerShell Folgendes:

Test-NetConnection 128.159.1.1 -Port 80

Einige Googler finden auch Alternativen, die .NET Framework direkt verwenden (da PowerShell dies zulässt), für Systeme, auf denen niedrigere Windows-Versionen ausgeführt werden, die nicht Test-NetConnectionverfügbar sind.

Wenn Sie nicht abgeneigt sind, Dienstprogramme von Drittanbietern zu verwenden, ist Nmap auch ein sehr guter Freund und funktioniert über die Befehlszeile.


1
.Net-Methode:$connection = (New-Object Net.Sockets.TcpClient).Connect($target,$port); If ($connection.Connected) { $connection.Close() }
xXhRQ8sD2L7Z

Auf Win7 funktioniert das nicht :-(
samsmith

@samsmith Sprechen Sie über den Befehl in meiner Antwort oder den Kommentar des einen ST8Z ...? Die in meiner Antwort funktioniert nur für Win8 / 2k12 und höher, und die Antwort sagt so viel.
Iszi

1
Scheint Windows 8.1 zu sein - Scheint unter Windows 8 nicht zu finden
Andy Krouwel

1
Funktioniert hervorragend unter Windows 10 und ich muss keine Programme installieren oder Funktionen hinzufügen. Vielen Dank! :)
Steve Bauman

24

Verwenden Sie den Befehl telnet, um über den angegebenen Port eine Verbindung zum Server herzustellen und zu prüfen, ob eine Verbindung hergestellt werden kann.

Erfolg:

$ telnet my_server 25
220 my_server ESMTP Postfix

Scheitern:

$ telnet my_server 23632
Connecting To my_server...Could not open connection to the host, on port 23632:
Connect failed

14
funktioniert nicht für UDP.
Adriano Varoli Piazza

8
UDP ist verbindungslos ..
Amalgovinus

7

Telnet funktioniert für TCP.

Netcat ist ein besseres Tool für diese Art von Dingen, einschließlich UDP. Einige AV-Softwares halten es jedoch für ein "böses Hacker-Tool".


1

Mit dem folgenden Befehl werden alle auf dem Computer verwendeten Ports aufgelistet ...

netstat -a

Die Ausgabe enthält das Protokoll, die lokale Adresse, die Fremdadresse und den aktuellen Status

Netstat-Dokumentation auf microsoft.com


8
Frage fragt nach offenen Ports auf einem Remotecomputer , nicht lokal.
Chris S

0

Verwenden Sie den Netcat-Windows-Port :

>nc -zvv www.google.com 80
www.google.com [108.177.96.103] 80 (http) open
sent 0, rcvd 0
>

>nc -zvv www.google.com 888
www.google.com [108.177.96.147] 888 (?): TIMEDOUT
sent 0, rcvd 0: NOTSOCK
>

-4

'netstat' ist dein Freund.


3
Lokale Maschine ja, entfernte Maschine nein.

3
Diese Antwort wurde vor der Bearbeitung veröffentlicht, in der angegeben wurde, dass es sich um einen Port auf einem Remotecomputer handelt.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.