Vous avez ouvert une règle de pare-feu, redémarré le service, et l'application n'arrive toujours pas à joindre la base de données. Le port est-il vraiment ouvert ? Une commande vous répond en deux secondes : telnet hôte port. Ce guide vous montre comment utiliser telnet, de l'activation du client Telnet sous Windows 11 à la lecture de ce que le serveur vous renvoie quand vous lui parlez à la main.
Si vous préférez essayer sur une vraie cible plutôt que lire, notre Learning Lab 102 gratuit vous fait trouver un service Telnet avec Nmap puis vous y connecter depuis un terminal dans le navigateur, sans rien installer.
Réponse rapide :
- Windows : le client Telnet est désactivé par défaut. Activez-le une fois depuis une invite de commandes administrateur avec
dism /online /Enable-Feature /FeatureName:TelnetClient, puis ouvrez une nouvelle fenêtre. - Lancez-le :
telnet <hôte> <port>, par exempletelnet 192.0.2.10 443. Un écran noir vide ou « Connected to » : le port est ouvert. « Échec lors de la connexion » ou « Connection refused » : il est fermé. Une longue attente : un pare-feu jette probablement le trafic. - Pour sortir :
Ctrl + ], tapezquit, puis Entrée.
Qu'est-ce que Telnet et à quoi sert-il encore ?
Telnet est un protocole réseau et un client en ligne de commande qui ouvre une simple connexion TCP vers n'importe quel hôte et port, puis transmet tel quel tout ce que vous tapez.
Il date de 1969 et a été normalisé dans la RFC 854 en 1983 pour se connecter à des machines distantes sur le port 23. SSH l'a remplacé depuis longtemps pour cet usage, car telnet envoie tout en clair, mots de passe compris.
Ce qui le garde en vie, c'est justement cette simplicité. Pointez-le vers n'importe quel port TCP et il vous dit immédiatement si quelque chose écoute. Pointez-le vers un protocole texte comme HTTP, SMTP ou Redis et vous pouvez taper le protocole vous-même et lire les réponses brutes. Si les numéros de port restent flous pour vous, notre guide sur les ports réseau reprend les bases.
Usages courants aujourd'hui :
- Vérifier qu'un port est ouvert et joignable à travers le pare-feu
- Déboguer l'envoi d'e-mails en parlant SMTP à la main
- Envoyer une requête HTTP brute pour voir exactement ce que renvoie le serveur
- Lire les bannières de service (SSH, SMTP, FTP) lors d'un audit de sécurité autorisé
- Administrer de vieux switchs, routeurs et équipements embarqués qui ne parlent que Telnet
Comment activer Telnet sur Windows 11 et Windows 10
Depuis Windows Vista, le client Telnet est livré désactivé. Tant que vous ne l'activez pas, taper telnet vous renvoie « 'telnet' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes. » L'activer prend une commande ou quelques clics, et il faut dans les deux cas des droits administrateur.
Option 1 : une seule commande (le plus rapide)
Faites un clic droit sur Invite de commandes ou Terminal, choisissez Exécuter en tant qu'administrateur, puis lancez :
dism /online /Enable-Feature /FeatureName:TelnetClient
Vous préférez PowerShell ? Cette commande fait la même chose, elle aussi depuis une fenêtre administrateur :
Enable-WindowsOptionalFeature -Online -FeatureName TelnetClient
Les deux se terminent en quelques secondes, sans redémarrage. Sur Windows Server, Install-WindowsFeature Telnet-Client fonctionne aussi.
Option 2 : la fenêtre Fonctionnalités de Windows
- Appuyez sur
Win + R, tapezoptionalfeatures, puis Entrée - Descendez jusqu'à Client Telnet et cochez la case
- Cliquez sur OK et attendez « Windows a terminé les modifications demandées »
Sous Windows 11, la même fenêtre est accessible depuis les Paramètres : Système > Fonctionnalités facultatives > Plus de fonctionnalités Windows (sur certaines versions, c'est sous Applications > Fonctionnalités facultatives). Le client Telnet n'apparaît pas dans la recherche « Afficher les fonctionnalités », ce qui en piège beaucoup.
Vérifier que ça marche
Ouvrez une nouvelle invite de commandes (les fenêtres ouvertes avant l'installation ne voient pas la commande) et tapez telnet :
Bienvenue dans le client Telnet Microsoft
Le caractère d'échappement est 'CTRL+]'
Microsoft Telnet>
Tapez quit pour sortir. Vous êtes prêt à tester des ports.
Installer Telnet sur Linux et macOS
La plupart des distributions Linux et tous les Mac récents sont livrés sans client telnet. Un paquet suffit :
| Système | Commande d'installation |
|---|---|
| Debian, Ubuntu, Kali | sudo apt install telnet |
| Fedora, RHEL, Rocky, AlmaLinux | sudo dnf install telnet |
| Arch Linux | sudo pacman -S inetutils |
| Alpine (conteneurs) | apk add inetutils-telnet |
| macOS | brew install telnet (nécessite Homebrew) |
Apple a retiré telnet de macOS avec High Sierra (10.13) : « telnet: command not found » sur un Mac est donc normal. Si vous voulez seulement vérifier un port sans rien installer, macOS inclut déjà nc : voir la section des alternatives plus bas.
Pour vérifier l'installation, lancez which telnet. La commande doit afficher un chemin comme /usr/bin/telnet ou /opt/homebrew/bin/telnet.
Comment utiliser la commande telnet
Pour utiliser telnet, lancez telnet hôte port depuis l'invite de commandes, PowerShell ou n'importe quel terminal, par exemple telnet example.com 80. L'hôte peut être un nom ou une adresse IP, et le port vient après, séparé par une espace (pas par deux-points). Sans port, telnet utilise le 23.
À quoi ressemble une connexion réussie
Sous Linux et macOS :
$ telnet 192.0.2.10 80
Trying 192.0.2.10...
Connected to 192.0.2.10.
Escape character is '^]'.
Sous Windows, le succès est facile à mal interpréter : la fenêtre s'efface, il ne reste qu'un écran vide avec un curseur qui clignote, et la barre de titre devient « Telnet 192.0.2.10 ». Aucun message « Connecté ». Cet écran vide est le message de succès.
À quoi ressemble un échec
telnet: Unable to connect to remote host: Connection refused
Sous Windows (ici en anglais ; sur un Windows en français, le message se termine par « Échec lors de la connexion ») :
Connecting To 192.0.2.10...Could not open connection to the host, on port 80: Connect failed
Interpréter le résultat
| Ce que vous voyez | Ce que ça signifie |
|---|---|
| Connected / écran vide | Un service écoute et votre trafic l'atteint |
| Connection refused / Échec lors de la connexion (immédiat) | L'hôte a répondu, mais rien n'écoute sur ce port (ou un pare-feu rejette activement) |
| Attente, puis expiration du délai | Les paquets sont jetés : pare-feu, groupe de sécurité, ou hôte éteint |
| Hôte inconnu / name or service not known | Le DNS n'a pas pu résoudre le nom : essayez l'adresse IP |
Comment quitter telnet
Appuyez sur Ctrl + ] pour obtenir l'invite telnet>, puis tapez quit. Ctrl + C ne ferme pas une session telnet, et presque tout le monde s'y fait prendre la première fois. Si le service distant a sa propre commande de déconnexion (QUIT en SMTP, exit dans un shell), elle fonctionne aussi.
Les commandes telnet dans une session
Après Ctrl + ] (ou en lançant telnet sans argument), vous êtes à l'invite de commandes telnet. Ces commandes fonctionnent avec le client Windows comme avec celui de Linux et macOS :
| Commande | Effet |
|---|---|
open hôte port |
Se connecter à un hôte (Windows accepte o) |
close |
Fermer la connexion en cours sans quitter telnet |
status |
Indiquer si vous êtes connecté, et à quoi |
display |
Afficher les réglages en cours |
set / unset |
Modifier les options. Sous Windows, set localecho affiche ce que vous tapez |
quit |
Quitter telnet |
? |
Lister toutes les commandes de votre client |
Sous Windows, vous pouvez aussi enregistrer toute la session dans un fichier dès le lancement : telnet /f session.txt mail.target.example 25. La liste complète des options se trouve dans la référence telnet de Microsoft.
Exemples telnet : tester des ports et parler aux services
Tester si un port est ouvert
Remplacez par le port du service qui vous intéresse :
| Commande | Service |
|---|---|
telnet hôte 22 |
SSH |
telnet hôte 25 / 587 |
SMTP / soumission de courrier |
telnet hôte 80 / 443 |
HTTP / HTTPS |
telnet hôte 3389 |
Bureau à distance (RDP) |
telnet hôte 3306 / 5432 |
MySQL / PostgreSQL |
telnet hôte 6379 |
Redis |
Envoyer une requête HTTP à la main
Connectez-vous au port 80, tapez la requête et terminez par une ligne vide (Entrée deux fois) :
telnet example.com 80
GET / HTTP/1.1
Host: example.com
Connection: close
Le serveur répond par une ligne de statut comme HTTP/1.1 200 OK, ses en-têtes, puis la page. Sous Windows, activez d'abord l'écho local (Ctrl + ], set localecho, Entrée, Entrée) sinon vous tapez à l'aveugle, et évitez la touche Retour arrière : elle est envoyée au serveur comme un caractère au lieu d'effacer.
Ça ne marche pas sur le port 443. HTTPS commence par une négociation TLS dont telnet est incapable : il vous dira seulement que le port est ouvert. Pour un vrai échange en TLS, utilisez openssl s_client -connect example.com:443.
Parler à un serveur de messagerie (SMTP)
telnet mail.target.example 25
220 mail.target.example ESMTP Postfix
EHLO client.target.example
250-mail.target.example
250-STARTTLS
250 8BITMIME
MAIL FROM:<[email protected]>
250 2.1.0 Ok
RCPT TO:<[email protected]>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: test telnet
Bonjour depuis telnet.
.
250 2.0.0 Ok: queued
QUIT
221 2.0.0 Bye
Les codes à trois chiffres vous disent où la livraison casse :
- 220 : serveur prêt
- 250 : commande acceptée
- 354 : allez-y, envoyez le corps du message (terminez par une ligne contenant seulement un point)
- 530 : authentification requise d'abord
- 550 / 554 : refusé : boîte inconnue, relais interdit, ou votre IP est sur une liste de blocage
Deux pièges. Beaucoup de fournisseurs d'accès et d'hébergeurs cloud bloquent le port 25 sortant : un délai dépassé peut venir de votre réseau, pas du serveur. Et le port 587 exige STARTTLS avant l'authentification, ce que telnet ne sait pas faire : pour cette partie, utilisez openssl s_client -starttls smtp -connect mail.target.example:587.
Vérifications rapides pour d'autres services
- Redis (6379) : tapez
PING. Un serveur en forme répond+PONG, ou-NOAUTH Authentication required.si un mot de passe est configuré. - SSH (22) : le serveur vous accueille avec sa version, par exemple
SSH-2.0-OpenSSH_9.6p1 Ubuntu-3ubuntu13. - MySQL (3306) : vous recevez une rafale de binaire contenant une version lisible. C'est la poignée de main : le port fonctionne.
En pratique, ces messages d'accueil expliquent pourquoi les pentesters utilisent encore telnet lors d'audits autorisés. Une bannière révèle souvent la version exacte du logiciel, à confronter ensuite aux vulnérabilités connues. L'équipement du Learning Lab 102 annonce son fabricant et son firmware dès la connexion, ce que le scan de versions de Nmap n'arrive pas à obtenir sur cet hôte.
Alternatives à telnet quand vous ne pouvez pas l'installer
Poste verrouillé, pas de droits admin, conteneur minimal ? Ces outils déjà présents répondent à la même question : « le port est-il ouvert ? »
Windows : Test-NetConnection
Test-NetConnection example.com -Port 443
Regardez la dernière ligne : TcpTestSucceeded : True signifie que le port est ouvert. La commande est fournie avec Windows PowerShell et ne demande aucun droit administrateur ; tnc est l'alias court. Voir la documentation Microsoft pour les autres options.
macOS et Linux : Netcat
$ nc -vz example.com 443
Connection to example.com port 443 [tcp/https] succeeded!
-z se contente de tester le port ; retirez-le pour obtenir une session interactive comme avec telnet. Notre guide sur comment utiliser Netcat va beaucoup plus loin.
Partout où curl est installé
curl parle le protocole telnet, et Windows 10 et 11 embarquent curl.exe : curl -v telnet://192.0.2.10:3306 affiche « Connected to » en cas de succès.
Telnet et nc testent un port à la fois. Pour en tester des centaines, il vous faut un scanner de ports : notre aide-mémoire Nmap rassemble les commandes.
Telnet vs SSH : ne vous connectez jamais en Telnet
Telnet n'a aucun chiffrement. Votre identifiant, votre mot de passe, chaque commande et chaque ligne de sortie traversent le réseau en clair. Quiconque peut capturer le trafic sur le chemin (un routeur compromis, un Wi-Fi partagé, un port de switch en miroir) peut lire toute la session dans Wireshark avec « Suivre le flux TCP ».
SSH fait le même travail avec du chiffrement, l'authentification du serveur (vous savez que vous parlez à la bonne machine), le contrôle d'intégrité et la connexion par clé. Pour l'administration à distance, SSH gagne à tous les coups.
Cette faiblesse n'a rien de théorique. En 2016, le botnet Mirai a infecté des centaines de milliers de caméras et de routeurs simplement en se connectant en Telnet avec les mots de passe d'usine. Si vous trouvez sur votre propre réseau un appareil avec le port 23 ouvert, désactivez Telnet ou isolez l'appareil.
La règle : telnet pour tester une connexion, jamais pour vous connecter avec des identifiants qui comptent.
Considérations légales et éthiques
Rappel essentiel : ne vous connectez qu'aux systèmes qui vous appartiennent ou pour lesquels vous avez une autorisation écrite explicite. Même un simple test de port peut déclencher une détection d'intrusion et enfreindre une charte d'utilisation, et les tentatives d'accès non autorisées sont illégales dans la plupart des pays (en France, article 323-1 du Code pénal).
- Testez vos propres serveurs et les services que vous administrez
- En mission, restez dans le périmètre écrit de l'engagement
- En bug bounty, respectez les règles du programme sur le scan et les tests de services
- N'essayez jamais d'identifiants sur un appareil que vous ne contrôlez pas, même ceux « par défaut »
Les labs d'entraînement existent pour pratiquer tout cela légalement : chaque cible des labs HackerDNA est à vous pour vous y connecter, la scanner et la compromettre.
Questions fréquentes
Comment activer telnet sur Windows 11 ?
Ouvrez l'invite de commandes en administrateur et lancez dism /online /Enable-Feature /FeatureName:TelnetClient. Ou passez par Paramètres > Système > Fonctionnalités facultatives > Plus de fonctionnalités Windows, cochez Client Telnet et cliquez sur OK. Ouvrez ensuite une nouvelle invite de commandes et utilisez telnet hôte port.
Pourquoi « 'telnet' n'est pas reconnu en tant que commande interne ou externe » ?
Le client Telnet n'est pas activé, ou vous utilisez une fenêtre ouverte avant son activation. Activez-le (voir ci-dessus) et ouvrez une nouvelle invite de commandes.
Comment faire un telnet sur un port précis dans cmd ?
Mettez le port après l'hôte, séparé par une espace : telnet 192.0.2.10 8080. N'utilisez pas les deux-points (hôte:8080), que telnet prend pour une partie du nom d'hôte.
Comment tester si un port est ouvert avec telnet ?
Lancez telnet hôte port. Un écran vide (Windows) ou « Connected to » (Linux/macOS) : ouvert. « Échec lors de la connexion » ou « Connection refused » : fermé. Une longue attente suivie d'une expiration : un pare-feu jette le trafic.
Comment quitter telnet ?
Appuyez sur Ctrl + ], tapez quit puis Entrée. Ctrl + C ne fonctionne pas.
Quel est le port telnet par défaut ?
Le port 23. Si vous tapez telnet hôte sans port, le client se connecte au 23.
Peut-on tester HTTPS avec telnet ?
Seulement pour vérifier que le port 443 est ouvert. Telnet ne sait pas négocier TLS : pour un vrai échange HTTPS, utilisez openssl s_client -connect hôte:443 ou curl -v https://hôte.
Comment installer telnet sur Mac ?
Installez Homebrew, puis lancez brew install telnet. Pour un test de port rapide sans rien installer, utilisez la commande intégrée nc -vz hôte port.
Telnet est-il encore utilisé en 2026 ?
Oui, surtout comme outil de diagnostic pour tester des ports et des protocoles texte, et sur du vieux matériel réseau. Pour se connecter aux systèmes, SSH l'a remplacé, car telnet envoie les mots de passe en clair.
Et maintenant ?
Vous avez tout le processus telnet en main : activer le client, lancer telnet hôte port, lire le résultat et sortir avec Ctrl + ] puis quit. Gardez-le pour tester, et passez à SSH dès qu'un mot de passe entre en jeu.
Le meilleur moyen de retenir tout ça, c'est de l'utiliser sur une vraie cible. Dans le Learning Lab 102 gratuit, vous scannez un équipement, vous vous connectez à son service Telnet et vous passez root, le tout depuis votre navigateur. Pour voir comment les pentesters énumèrent les services, le cours Tests d'intrusion réseau prend le relais, et Hacking 101 couvre les fondamentaux si vous débutez.
Commencez avec l'offre gratuite de HackerDNA : sans carte bancaire.