Sous Windows, en utilisant la ligne de commande, comment vérifier si un port distant est ouvert?


Réponses:


62

L’autre jour, j’ai trouvé un bijou caché de Microsoft conçu pour tester les ports:

Portqry.exe

"Portqry.exe est un utilitaire de ligne de commande que vous pouvez utiliser pour résoudre les problèmes de connectivité TCP / IP. Portqry.exe s'exécute sur les ordinateurs Windows 2000, Windows XP et Windows Server 2003. L’utilitaire indique l’état des ports TCP et UDP sur un ordinateur sélectionné. "


Remarque: toute tentative de téléchargement à partir de Microsoft a renvoyé une page indiquant que le téléchargement n'est plus disponible.
dgw

@dgw Merci pour cela .. google montre une nouvelle version si vous recherchez "portrait" que je vérifierai demain
Peter M


52

Quelle version de Windows? Pour Windows 8 / Server 2012 et versions ultérieures, les opérations suivantes fonctionnent dans PowerShell:

Test-NetConnection 128.159.1.1 -Port 80

Certains utilisateurs de Google trouveront également des alternatives qui utilisent directement le .NET Framework (puisque PowerShell vous permet de le faire) pour les systèmes exécutant des versions plus basses de Windows qui ne seront pas Test-NetConnectiondisponibles.

Si vous n'êtes pas opposé à l'utilisation d'utilitaires tiers, Nmap est également un très bon ami à avoir et fonctionne depuis la ligne de commande.


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

Sur Win7, cela ne fonctionne pas :-(
samsmith

@samsmith Parlez-vous de la commande dans ma réponse ou du commentaire de ST8Z ...? Celui de ma réponse ne fonctionne que pour Win8 / 2k12 et supérieur, et la réponse en dit autant.
Iszi

1
Semble être Windows 8.1 - Impossible de le trouver sur Windows 8
Andy Krouwel

1
Fonctionne très bien sous Windows 10 et je n'ai besoin d'installer aucun programme ni d'ajouter de fonctionnalités. Merci! :)
Steve Bauman

24

Utilisez la commande telnet pour vous connecter au serveur sur le port spécifié et voir si une connexion peut être établie.

Succès:

$ telnet my_server 25
220 my_server ESMTP Postfix

Échouer:

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

14
ne fonctionne pas pour UDP.
Adriano Varoli Piazza

8
UDP est sans connexion ..
Amalgovinus

7

Telnet fonctionnera pour TCP.

Netcat est un meilleur outil pour ce genre de choses, y compris UDP, mais certains logiciels audiovisuels le considèrent comme un «outil de piratage malveillant».


1

la commande suivante listera tous les ports utilisés sur la machine ...

netstat -a

La sortie contient le protocole, l'adresse locale, l'adresse étrangère et l'état actuel

Documentation Netstat sur microsoft.com


8
La question concerne les ports ouverts sur une machine distante , pas locale.
Chris S

0

Utilisez le port Windows netcat :

>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" est votre ami.


3
Machine locale oui, machine distante non.

3
Cette réponse avait été postée avant la modification et spécifiait qu'il s'agissait d'un port sur une machine distante.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.