Comment déterminer si un port est ouvert sur un serveur Windows?
-
07-07-2019 - |
Question
J'essaie d'installer un site sous un autre port sur un serveur, mais le port peut être fermé par un pare-feu. Existe-t-il un moyen d'effectuer une requête ping sur un port spécifique pour savoir s'il est ouvert?
La solution
En supposant que vous essayez d'utiliser un port TCP (plutôt que UDP):
-
Sur le serveur lui-même, utilisez
netstat -an
pour vérifier quels ports écoutent -
De l’extérieur, il suffit de
telnet host port
(outelnet host:port
sur les systèmes Unix) pour voir si la connexion est refusée, acceptée ou si le délai est dépassé
Sur ce dernier test, puis en général:
- connexion refusée signifie que rien ne fonctionne sur ce port
- accepté signifie que quelque chose tourne sur ce port
- timeout signifie qu'un pare-feu bloque l'accès
Sous Win7 ou Vista, l'option par défaut 'telnet' n'est pas reconnue en tant que commande, programme ou fichier de traitement interne ou externe. Pour résoudre ce problème, activez-le: Cliquez sur Démarrer, Panneau de configuration, Programmes, puis Activer ou désactiver les fonctionnalités Windows. Faites défiler la liste vers le bas, sélectionnez Client Telnet, puis cliquez sur OK
.Autres conseils
Je voulais juste ajouter que sous Windows, vous pouvez utiliser
netstat -na | find "your_port"
pour affiner les résultats. Vous pouvez également filtrer pour LISTENING
, ESTABLISHED
, TCP
et autres. Attention, il est sensible à la casse cependant.
Si vous vérifiez de l'extérieur, pas du serveur lui-même, et que vous ne voulez pas vous soucier d'installer Telnet (car il ne vient pas avec les dernières versions de Windows) ou tout autre logiciel, alors vous devez PowerShell natif:
Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed
(Malheureusement, cela ne fonctionne qu'avec PowerShell 4.0 ou plus récent. Pour vérifier la version de votre PS, tapez $PSVersionTable
.)
(Si vous avez une version PSVersion < 4.0, vous n’avez pas de chance. Consultez ce tableau:
Même si vous pouvez mettre à niveau votre version de powershell en installant le Windows Management Framework 4.0 , la cmdlet Test-NetConnection n'est toujours pas disponible).
Sur un ordinateur Windows, vous pouvez utiliser PortQry . Microsoft pour vérifier si une application écoute déjà sur un port spécifique à l’aide de la commande suivante:
portqry -n 11.22.33.44 -p tcp -e 80
J'ai fait comme ça:
netstat -an | find "8080"
de telnet
telnet 192.168.100.132 8080
Et assurez-vous simplement que le pare-feu est désactivé sur cette machine.
Si telnet n'est pas disponible, téléchargez PuTTY . C’est un client bien supérieur telnet, ssh, etc., qui sera utile dans de nombreuses situations, pas seulement dans celle-ci, surtout si vous administrez un serveur.
Voulez-vous un outil pour le faire? Il existe un site Web à l'adresse http://www.canyouseeme.org/ . Sinon, vous aurez besoin d’un autre serveur pour vous rappeler si un port est ouvert ...
Utilisez ceci si vous voulez voir tous les ports utilisés et en écoute sur le serveur Windows:
netstat -an |find /i "listening"
Voir tous les ports ouverts, en écoute, établis:
netstat -a
Sur Windows Server, vous pouvez utiliser
netstat -an | where{$_.Contains("Yourport")}
psping de Sysinternals est également très bon
Je pense que le meilleur que j'ai obtenu est celui où vous pouvez vérifier vos propres ports ainsi que ceux des autres domaines.
Voici ce qui a fonctionné pour moi,
- ouvrir l'invite de commande
- tapez telnet
- Microsoft Telnet > ouvrir
Il confirmera si le port est ouvert.
Autre utilitaire que j'ai trouvé et qui est bon et petit aussi, PortQry Ligne de commande Scanner de port version 2.0 https://www.microsoft.com/en-us/download /details.aspx?id=17148
Vous pouvez envoyer une requête ping à un serveur et à un port. Il vous indiquera l'état du port. Il existe un utilitaire de ligne de commande et une interface utilisateur.