1. Méthode Bash pure avec /dev/tcp (la plus légère)
timeout 1 bash -c '</dev/tcp/216.58.207.46/443 && echo Le port est ouvert || echo Le port est fermé' || echo Timeout
Explication :
- Bash (sur la plupart des distros) supporte nativement les pseudo-fichiers /dev/tcp/hôte/port.
- </dev/tcp/… tente d’ouvrir une connexion TCP sortante.
- Si ça réussit → « Le port est ouvert ».
- Si ça échoue → « Le port est fermé ».
- timeout 1 limite à 1 seconde pour éviter d’attendre indéfiniment.
- Le || echo Timeout gère le cas où la connexion timed out (port filtré ou très lent).
À adapter : remplace 216.58.207.46 par l’IP cible et 443 par le port voulu.
2. Avec curl en mode telnet
curl telnet://192.168.0.50:22
Explication :
- Curl supporte le protocole telnet://hôte:port.
- Si le port est ouvert → curl se connecte et attend (tu peux taper Ctrl+C pour quitter).
- Si fermé → message d’erreur immédiat « Connection refused » ou « Couldn’t connect to server ».
Avantage : très visuel, tu vois directement si la connexion passe.
3. Avec curl silencieux + test de code retour
curl -s 192.168.0.50:22 >/dev/null && echo Le port est ouvert || echo Le port est fermé
Explication :
- -s : mode silencieux (pas de barre de progression).
- >/dev/null : jette toute sortie.
- && / || teste le code retour de curl :
- 0 → connexion réussie → port ouvert.
- Autre → connexion refusée/timeout → port fermé.
Pour ajouter un timeout (recommandé) :
curl -s --connect-timeout 2 192.168.0.50:22 >/dev/null && echo Le port est ouvert || echo Le port est fermé