Sur la plate-forme Windows, quelles sont les options natives permettant de vérifier si un port (3306, par exemple) de ma machine locale (en tant que tel localhost
) est bloqué?
Sur la plate-forme Windows, quelles sont les options natives permettant de vérifier si un port (3306, par exemple) de ma machine locale (en tant que tel localhost
) est bloqué?
Réponses:
Depuis que vous êtes sur la machine Windows, ces choses peuvent être faites,
Exécutez la commande suivante et recherchez un écouteur ": 3306" (vous n'avez pas mentionné UDP / TCP). Cela confirmera que quelque chose tourne sur le port.
netstat -a -n
Après cela, si vous attendez des connexions entrantes sur ce port et pensez que le pare-feu les bloque peut-être, vous pouvez démarrer la journalisation du pare-feu Windows et rechercher dans les journaux des connexions interrompues.
Il existe une commande supplémentaire pour vérifier l'état du pare-feu
(Mise à jour pour les utilisateurs de Windows 7 - comme indiqué Nick
ci-dessous - utilisez le pare-feu netsh advfirewall ).
Etat du show de pare-feu netsh
Cette commande videra les détails de configuration du pare-feu Windows
netsh firewall show config
Si vous avez un bloc actif (les connexions entrantes sont abandonnées par le pare-feu) après le début de la journalisation, vous devriez le voir dans le journal.
Si vous exécutez une application / service qui écoute sur 3306, la configuration du pare - feu doit indiquer qu’il est activé. Si cela ne se voit pas, vous avez probablement oublié d'ajouter une exception avec le pare-feu pour autoriser cette application / service.
Enfin, le port 3306 est généralement utilisé pour MySQL. Donc, je suppose que vous utilisez le serveur MySQL sur cette machine Windows. Vous devriez donc voir un écouteur pour 3306 accepter les connexions entrantes. Si vous ne le voyez pas, vous devez d'abord utiliser votre application (MySQL).
|find "3306"
à la commande, par exempleC:\Windows\System32>netstat -an |find "3306"
NETSTAT
vous dira si le port est à l’ écoute mais pas si le port est ouvert au monde extérieur. Ce que je veux dire par là est que cela NETSTAT
peut indiquer que la version 0.0.0.0 est à l’écoute sur le port 3306 mais qu’un pare-feu peut toujours bloquer ce port qui empêche les connexions extérieures; il ne suffit donc pas de compter NETSTAT
seul.
Le meilleur moyen de vérifier si un port est bloqué consiste à effectuer une analyse du port à partir de la machine cliente.
Il existe de nombreuses façons d'effectuer une analyse de port, mais comme vous avez mentionné le fait d'être sous Windows, je vous suggère d'utiliser l'utilitaire de ligne de commande Microsoft PortQry
et la version graphique PortQryUI.
Pour tester tous les ports ouverts:
portqry.exe -n #.#.#.#
Pour tester un port spécifique:
portqry.exe -n #.#.#.# -e #
Par exemple, pour tester l'interface Web d'un routeur à l'adresse 192.168.1.1:
portqry.exe -n 192.168.1.1 -e 80
Qui retourne:
TCP port 80 (http service): LISTENING
Where en tant que test sur une machine locale sans HTTPD en cours d'exécution renvoie:
TCP port 80 (http service): NOT LISTENING
En utilisant un utilitaire PortScan, vous obtiendrez l'un des 3 résultats.
Listening
signifie que le serveur écoute sur le port spécifiéFiltered
signifie qu'il a reçu un paquet d'accusé de réception TCP avec l'indicateur de réinitialisation défini qui indique probablement un problème de pare-feu ou de logicielNot Listening
signifie qu'il n'a pas reçu de réponse du touttelnet
est une autre option de ligne de commande généralement installée par défaut sur le système d'exploitation. Cet utilitaire de ligne de commande peut être utilisé pour déterminer rapidement si un port répond à une requête réseau.
Pour l'utiliser, telnet
vous devez simplement lancer la commande suivante à partir d'une invite de commande:
telnet localhost 3306
La commande ci - dessus devrait vous donner une indication rapide si le port 3306
du localhost
répond.
Depuis PowerShell 4.0, vous pouvez utiliser la commande Test-NetConnection
Si vous voulez tester le port 3306 comme dans votre exemple, la commande est
Test-NetConnection -ComputerName localhost -Port 3306
Si vous pouvez établir une connexion telnet sur le port à partir de la machine locale (à l'aide de l'adresse IP externe), mais pas à partir d'une autre machine, le blocage est alors effectué quelque part.
Notez qu'un pare-feu sur votre ordinateur local pourrait empêcher même la première action.