telnet: command not found sur Mac ? Utiliser Telnet sous macOS

Apple a retiré la commande telnet depuis macOS High Sierra, donc zsh: command not found: telnet est normal. Pour vérifier qu'un port est ouvert, utilisez nc -vz hôte port, déjà présent. Pour une vraie session Telnet avec un switch ou un routeur, installez-le avec brew install telnet.

Mis à jour le . Exécuté sur macOS 27 : telnet absent de /usr/bin, nc -vz testé contre un port local en écoute et un port fermé, brew info telnet et brew info inetutils vérifiés (telnet 308, inetutils 2.8).

Pourquoi telnet a disparu

zsh: command not found: telnet

Apple a retiré telnet, avec ftp, dans macOS High Sierra (10.13). Rien n'est cassé sur votre Mac et aucun réglage ne le remet. Vous avez deux options, et la bonne dépend de ce que vous vouliez en faire.

  • Vérifier qu'un port est ouvert, pour un serveur web, un serveur de messagerie ou SSH : utilisez nc, déjà présent sur le Mac.
  • Vous connecter à un équipement qui parle Telnet, comme un switch, un routeur ou un serveur de consoles : installez le client Telnet.

Tester un port avec nc

La plupart des gens tapent telnet hôte 443 juste pour voir si un port répond. nc le fait mieux, car il le dit clairement puis se termine :

nc -vz example.com 443
Connection to example.com port 443 [tcp/https] succeeded!

Un port fermé renvoie Connection refused, et un port bloqué par un pare-feu ne répond pas avant le délai d'attente. Ajoutez -G 5 pour abandonner après 5 secondes. Les deux cas ont leur guide : connection refused et connection timed out.

Pour taper dans un protocole texte, comme SMTP sur le port 25, retirez -z. -c envoie CR et LF en fin de ligne, ce qu'attendent beaucoup de serveurs :

nc -c mail.example.com 25

Pour un équipement qui négocie les options Telnet, ajoutez -t pour que nc y réponde. Cela suffit pour un coup d'œil, mais un vrai client gère correctement l'écho et la taille du terminal.

Installer telnet avec Homebrew

Avec Homebrew installé :

brew install telnet

C'est le client qu'Apple fournissait autrefois. Le paquet inetutils contient aussi un telnet, mais il entre en conflit avec celui-ci : choisissez-en un seul. Connectez-vous ensuite avec l'adresse et, si ce n'est pas 23, le port :

telnet 192.0.2.10 23
Trying 192.0.2.10...
Connected to 192.0.2.10.
Escape character is '^]'.

Pour quitter, appuyez sur Ctrl-], tapez quit et appuyez sur Entrée. Ctrl-C ne marche en général pas, car il est envoyé à l'équipement.

Quand Telnet reste nécessaire

Telnet envoie tout en clair, mots de passe compris. N'importe qui sur le chemin réseau peut le lire. Il garde de vrais usages :

  • Switchs, routeurs, imprimantes et PDU sans SSH, ou avec SSH désactivé en sortie d'usine.
  • Serveurs de consoles qui exposent chaque port série comme un port Telnet, par exemple 2001, 2002 et ainsi de suite.
  • Matériel de laboratoire, simulateurs réseau et anciens systèmes industriels.
  • Services texte comme les BBS et les jeux MUD.

Utilisez-le sur un réseau de confiance, comme un VLAN d'administration ou un câble direct, et jamais à travers Internet.

Passer un équipement de Telnet à SSH

Si l'équipement sait faire du SSH, activez-le et coupez Telnet. Sur Cisco IOS par exemple, après avoir créé un utilisateur local :

configure terminal
ip domain-name example.com
crypto key generate rsa modulus 2048
ip ssh version 2
line vty 0 4
 login local
 transport input ssh
end
write memory

Testez SSH depuis une deuxième fenêtre avant de fermer la session Telnet. Pour les machines Linux qui font encore tourner un serveur Telnet, voyez comment activer SSH sur Ubuntu, puis supprimez le paquet du serveur telnet.

Problèmes courants

  • Connection refused. L'équipement n'accepte pas Telnet sur ce port. Il peut être désactivé, ou autorisé seulement depuis un réseau d'administration.
  • Connecté, puis plus rien. Appuyez sur Entrée. Certains équipements n'affichent l'invite de connexion qu'après une touche.
  • Caractères bizarres ou menus cassés. L'équipement utilise un autre jeu de caractères, comme ISO-8859-1, ou attend un autre type de terminal. Voir unknown terminal type.
  • Retour arrière affiche ^?. L'équipement attend Ctrl-H pour effacer. Appuyez sur Ctrl-H à la place, ou réglez la touche d'effacement sur l'équipement.

Questions

Pourquoi telnet n'est-il pas sur mon Mac ?

Apple a retiré telnet et ftp de macOS à partir de High Sierra (10.13), en 2017, car tous deux transmettent tout en clair. La commande n'est pas cachée : elle n'existe plus.

Comment installer telnet sur Mac ?

Installez Homebrew, puis lancez brew install telnet. Le paquet inetutils contient aussi une commande telnet, mais les deux sont en conflit : n'en installez qu'un.

Que peut-on utiliser à la place de telnet pour tester un port sur Mac ?

nc, qui est intégré. nc -vz example.com 443 affiche succeeded si le port accepte les connexions et Connection refused si rien n'écoute.

Comment quitter telnet ?

Appuyez sur Ctrl-], le caractère d'échappement, puis tapez quit et appuyez sur Entrée.

Sources

Autres guides : SSH sur chaque système

Tous les guides