telnet: command not found su Mac? Come usare Telnet su macOS

Apple ha tolto il comando telnet da macOS High Sierra, quindi zsh: command not found: telnet è normale. Per controllare se una porta è aperta usa nc -vz host porta, già incluso. Per una vera sessione Telnet con uno switch o un router, installalo con brew install telnet.

Aggiornata il . Eseguito su macOS 27: telnet non è in /usr/bin, nc -vz provato contro un listener locale e una porta chiusa, brew info telnet e brew info inetutils controllati (telnet 308, inetutils 2.8).

Perché telnet manca

zsh: command not found: telnet

Apple ha tolto telnet, insieme a ftp, in macOS High Sierra (10.13). Il Mac non ha niente di rotto e non c'è un'impostazione per riattivarlo. Hai due strade, e quella giusta dipende da cosa volevi farci.

  • Controllare se una porta è aperta, per un server web, un server di posta o SSH: usa nc, già presente sul Mac.
  • Accedere a un apparato che parla Telnet, come uno switch, un router o un console server: installa il client Telnet.

Provare una porta con nc

Molti scrivono telnet host 443 solo per vedere se una porta risponde. nc lo fa meglio, perché lo dice chiaramente e poi esce:

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

Una porta chiusa dà Connection refused, e una porta bloccata da un firewall non risponde fino al timeout. Aggiungi -G 5 per rinunciare dopo 5 secondi. Entrambi i casi hanno la loro guida: connection refused e connection timed out.

Per scrivere in un protocollo testuale, come SMTP sulla porta 25, togli -z. -c invia CR e LF alla fine di ogni riga, come si aspettano molti server:

nc -c mail.example.com 25

Per un apparato che negozia le opzioni Telnet, aggiungi -t così nc risponde. Va bene per un'occhiata veloce, ma un vero client gestisce come si deve l'eco e la dimensione del terminale.

Installare telnet con Homebrew

Con Homebrew installato:

brew install telnet

È il client che Apple includeva un tempo. Anche il pacchetto inetutils contiene un telnet, ma va in conflitto con questo, quindi scegline uno solo. Poi collegati con l'indirizzo e, se non è 23, la porta:

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

Per uscire premi Ctrl-], scrivi quit e premi Invio. Ctrl-C di solito non funziona, perché viene inviato all'apparato.

Quando serve ancora Telnet

Telnet invia tutto in chiaro, password comprese. Chiunque si trovi sul percorso di rete può leggerlo. Ha comunque usi reali:

  • Switch, router, stampanti e PDU che non hanno SSH, o lo hanno spento di fabbrica.
  • Console server che espongono ogni porta seriale come una porta Telnet, per esempio 2001, 2002 e così via.
  • Apparati di laboratorio, simulatori di rete e vecchi sistemi industriali.
  • Servizi testuali come le BBS e i giochi MUD.

Usalo su una rete di cui ti fidi, come una VLAN di gestione o un cavo diretto, e mai attraverso internet.

Passare un apparato da Telnet a SSH

Se l'apparato supporta SSH, attivalo e spegni Telnet. Su Cisco IOS, per esempio, dopo aver creato un utente locale:

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

Prova SSH da una seconda finestra prima di chiudere la sessione Telnet. Per le macchine Linux che hanno ancora un server Telnet, vedi come attivare SSH su Ubuntu e poi rimuovi il pacchetto del server telnet.

Problemi comuni

  • Connection refused. L'apparato non accetta Telnet su quella porta. Può essere spento, o permesso solo da una rete di gestione.
  • Connesso, poi niente. Premi Invio. Alcuni apparati mostrano il login solo dopo un tasto.
  • Caratteri strani o menu rotti. L'apparato usa un altro set di caratteri, come ISO-8859-1, o si aspetta un altro tipo di terminale. Vedi unknown terminal type.
  • Backspace stampa ^?. L'apparato si aspetta Ctrl-H per cancellare. Premi Ctrl-H al suo posto, o imposta il tasto di cancellazione sull'apparato.

Domande

Perché telnet non c'è sul mio Mac?

Apple ha tolto telnet e ftp da macOS a partire da High Sierra (10.13), nel 2017, perché entrambi trasmettono tutto in chiaro. Il comando non è nascosto: non c'è più.

Come si installa telnet su Mac?

Installa Homebrew, poi esegui brew install telnet. Anche il pacchetto inetutils ha un comando telnet, ma i due vanno in conflitto, quindi installane solo uno.

Cosa posso usare al posto di telnet per provare una porta su Mac?

nc, che è già incluso. nc -vz example.com 443 stampa succeeded se la porta accetta connessioni e Connection refused se lì non ascolta niente.

Come si esce da telnet?

Premi Ctrl-], che è il carattere di escape, poi scrivi quit e premi Invio.

Fonti

Altro in SSH su ogni sistema

Tutte le guide