Tester un port sans Telnet ou netcat

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é

 

 

 

Derniers Articles