Comment vérifier si un port est ouvert sur un hôte distant ou local ?
sobes.tech IA
Réponse de l'IA
Pour vérifier si un port est ouvert sur un hôte distant ou local, vous pouvez utiliser les méthodes suivantes :
-
netcat(nc) : Outil universel pour travailler avec des connexions réseau.- Hôte local :
nc -zv localhost <port> - Hôte distant :
nc -zv <hôte_distant> <port>
Les options
-z(mode zéro-I/O) et-v(verbeux) sont utilisées pour scanner sans envoyer de données et pour afficher des informations détaillées. - Hôte local :
-
telnet: Protocole pour la gestion à distance, utilisable pour vérifier la connexion sur le port spécifié.- Hôte local :
telnet localhost <port> - Hôte distant :
telnet <hôte_distant> <port>
Si la connexion s'établit (généralement une invite ou une ligne vide apparaît), le port est ouvert. Pour fermer, appuyez sur
Ctrl+], puis tapezquitet appuyez sur Entrée. - Hôte local :
-
nmap: Analyseur de ports puissant. Nécessite une installation.- Hôte local :
nmap -p <port> localhost - Hôte distant :
nmap -p <port> <hôte_distant>
La sortie indiquera l'état du port :
open,closedoufiltered. - Hôte local :
-
< /dev/tcpou< /dev/udp(dans Bash) : En Bash, on peut utiliser des descripteurs de fichiers pour créer des connexions TCP ou UDP.- Hôte local (TCP) :
timeout 1 bash -c "cat < /dev/tcp/localhost/<port>" 2>/dev/null && echo "Port <port> est ouvert" || echo "Port <port> est fermé" - Hôte distant (TCP) :
timeout 1 bash -c "cat < /dev/tcp/<hôte_distant>/<port>" 2>/dev/null && echo "Port <port> est ouvert" || echo "Port <port> est fermé"
timeoutest utilisé pour éviter le blocage si le port est fermé.2>/dev/nullmasque les erreurs. Cette méthode ne fonctionne pas pour UDP. - Hôte local (TCP) :
-
Python : Utilisation de sockets pour la vérification.
import socket def check_port(host, port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(1) # Définir le délai d'attente try: s.connect((host, port)) print(f"Le port {port} sur {host} est ouvert") except (socket.timeout, ConnectionRefusedError): print(f"Le port {port} sur {host} est fermé ou filtré") finally: s.close() # Exemple d'utilisation check_port("localhost", 80) # Vérification de l'hôte local check_port("google.com", 443) # Vérification de l'hôte distant
Le choix de la méthode dépend des outils disponibles, du système d'exploitation et de la nature de la tâche. netcat et nmap sont parmi les outils les plus flexibles et informatifs.