Cómo utilizar el comando telnet en Linux

Telnet (abreviatura de red teletipo) es una herramienta de línea de comandos que facilita la comunicación remota y la comprobación de redes. 

Se utilizaba mucho para gestionar servidores y dispositivos, pero su falta de cifrado provocó problemas de seguridad en entornos modernos, lo que provocó su declive en favor de alternativas, como el shell seguro (SSH).

Hoy en día, telnet sigue siendo una utilidad valiosa para probar servicios de red, depurar problemas de conectividad, analizar respuestas del servidor y aprender sobre protocolos de red.

En este artículo, cubriremos todo lo que necesitas saber sobre el uso de telnet en Linux, incluyendo su instalación, sintaxis y opciones básicas, casos de uso modernos e importantes consideraciones de seguridad. 

Al final de esta guía, serás capaz de utilizar esta herramienta versátil de red en entornos controlados.

Requisitos previos

Antes de utilizar telnet en Linux, prepara dos máquinas: una como cliente telnet y otra como sistema de destino.

Puedes utilizar dos ordenadores de mesa Linux, un ordenador de sobremesa y un servidor privado virtual (VPS) o, como en este tutorial, dos servidores virtuales VPS de Hostinger. Si eliges esto último, selecciona cualquier plan que se adapte a tus necesidades. 

Como sólo vamos a practicar comandos telnet, el plan más básico, KVM 1, bastará para ambos servidores.

A continuación, asegúrate de que tienes autorización para la máquina de destino y de que conoces su dirección IP. Si eres usuario de Hostinger VPS, puedes encontrar la IP de tu servidor en hPanel yendo a VPS → Administrar → Información de VPS.

Vista general del VPS en hPanel

¡Atención! Acceder a sistemas no autorizados es ilegal y poco ético. En nuestro caso, podemos ejecutar comandos libremente ya que somos propietarios de ambas máquinas Linux.

Confirma que tienes privilegios administrativos o sudo para instalar y configurar telnet en el cliente y en el sistema de destino. Para los clientes VPS de Hostinger, concedemos acceso root completo para que puedas modificar tu servidor cuando lo necesites.

Además, prepara un software de terminal para ejecutar comandos telnet en la máquina cliente. 

Puedes utilizar el terminal incorporado de Linux o software de terceros como PuTTY. Como alternativa, Hostinger ofrece un Terminal de navegador que te permite ejecutar comandos directamente en tu navegador sin instalar otras aplicaciones.

Para utilizar esta función, pulsa el botón correspondiente en la esquina superior derecha del panel de control de tu VPS. Se abrirá una nueva pestaña del navegador en la que podrás empezar a ejecutar comandos.

Terminal del navegador de Hostinger

Cómo instalar telnet en Linux

En esta sección, instalaremos telnet en la máquina cliente principal y en el sistema remoto de destino. Sigue atentamente las instrucciones y asegúrate de ejecutar los comandos en la máquina correcta.

Máquina cliente principal

Aquí tienes los pasos para instalar el cliente telnet en diferentes distribuciones de Linux:

  1. Actualiza y mejora los paquetes del sistema para mantenerlo al día:
  • Para sistemas basados en Debian como Ubuntu y Kali Linux:
sudo apt update && sudo apt upgrade
  • Para sistemas basados en RHEL como CentOS y Fedora:
sudo dnf upgrade
  1. Instala el cliente telnet con uno de los siguientes comandos:
sudo apt install telnet # Debian-based systems
sudo dnf install telnet # RHEL-based systems
  1. Comprueba si el cliente se ha instalado correctamente escribiendo:
telnet

La instalación se ha realizado correctamente si muestra la sesión telnet interactiva de la siguiente forma:

Mensaje de terminal instalando telnet

Sal de la sesión con:

quit

Sistema remoto objetivo

En el sistema de destino, tendrás que instalar el servidor telnet, abrir su puerto en el cortafuegos y crear un usuario dedicado, ya que telnet no permite el acceso root por defecto por motivos de seguridad. Sigue estos pasos:

  1. Actualiza y mejora los paquetes de tu sistema, de forma similar a la máquina cliente:
sudo apt update && sudo apt upgrade # Debian-based systems
sudo dnf upgrade # RHEL-based systems
  1. Instala el servidor telnet con:
sudo apt install telnetd # Debian-based systems
sudo dnf install telnet-server # RHEL-based systems
  1. En las distribuciones basadas en Debian, el servidor telnet se inicia automáticamente. En los sistemas basados en RHEL, inicia y activa el servicio manualmente:
sudo systemctl start telnet.socket

sudo systemctl enable telnet.socket
  1. Comprueba el estado del servicio para asegurarte de que realmente se está ejecutando:
systemctl status inetd # Debian-based systems
systemctl status telnet.socket # RHEL-based systems
La salida del comando systemctl status telnet.socket en el terminal
  1. Permite el puerto telnet (23 por defecto) a través del cortafuegos. Si no utilizas ningún cortafuegos, sáltate este paso. De lo contrario, ejecuta los comandos que se indican a continuación en función de tu distribución:
sudo ufw allow 23/tcp

sudo ufw reload
  • Para distribuciones basadas en RHEL que utilicen Firewalld:
sudo firewall-cmd --permanent --add-port=23/tcp

sudo firewall-cmd --reload
  1. Crea un nuevo usuario específico para telnet, sustituyendo nuevo_usuario por tu nombre de usuario preferido:
sudo useradd nuevo_usuario
  1. Establece una contraseña para el usuario ejecutando:
sudo passwd nuevo_usuario

Se te pedirá que introduzcas y confirmes la contraseña.

Estableciendo una nueva contraseña para usar telnet

Consejo profesional

Si ya no necesitas telnet en tu sistema, desinstálalo con:
sudo apt remove telnet telnetd # Sistemas basados en Debian /
sudo dnf remove telnet telnet-server # Sistemas basados en RHEL

Sintaxis y opciones básicas del comando telnet

La sintaxis básica de telnet es la siguiente:

telnet [options] [remote_server_ip] [port]
  • telnet: el comando para invocar telnet.
  • [options]: opcional. Banderas que modifican el comportamiento del comando telnet.
  • [remote_server_ip]: la dirección IP de la máquina remota a la que quieres acceder.
  • [port]: opcional. El número de puerto al que conectarse. Si no se especifica, telnet utiliza el puerto 23 por defecto.

Cuando lo ejecutes, el comando establecerá una conexión con el servidor especificado. Te pedirá que introduzcas el nombre de usuario y la contraseña que creaste previamente para telnet:

La salida del comando telnet_servidor_remoto_ip en el terminal

Al igual que muchos comandos de Linux como ssh, scp y ftp, puedes añadir opciones al comando telnet para personalizar su comportamiento. 

A continuación se indican las opciones más utilizadas y sus finalidades:

OpciónFunción
-4Fuerza el uso de IPv4.
-6Fuerza el uso de IPv6.
-aIntenta una autenticación automática basada en el nombre de usuario local.
-bEspecifica la dirección IP local que hay que enlazar antes de establecer una conexión.
-cDesactiva la lectura del archivo .telnetrc del usuario.
-dActiva el modo de depuración para mostrar información de diagnóstico detallada.
-e charEstablece el carácter de escape para la sesión telnet.
-EDesactiva el carácter de escape, tratando toda la entrada como literal.
-kEnvía la entidad de seguridad Kerberos especificada durante la autenticación.
-l userEspecifica el nombre de usuario para el inicio de sesión automático.
-n fileRegistra la sesión en un archivo especificado.
-xActiva la encriptación de la sesión si está soportada.
-XDesactiva la opción TELNET STARTTLS.
-?Muestra el menú de ayuda de telnet.
-VMuestra la versión del cliente telnet.

Por ejemplo, si tienes varios usuarios telnet y quieres especificar uno inicialmente, puedes ejecutar el siguiente comando. Sustituye usuario y servidor_remoto_ip por tus credenciales reales:

telnet -l usuario servidor_remoto_ip

Tras acceder con éxito a la máquina remota, puedes interactuar con su shell como si fuera tu servidor principal. Si quieres salir de la sesión, simplemente escribe:

logout

Así te desconectarás de la sesión telnet.

La salida del comando logout en la sesión telnet del terminal

También puedes entrar en la sesión interactiva, como hicimos antes para comprobar si telnet estaba correctamente instalado, escribiendo telnet sin ningún argumento:

telnet

Ejemplos prácticos de telnet

Aquí tienes algunos ejemplos seguros de uso de telnet en entornos modernos, desde examinar servidores de correo hasta solucionar problemas de puertos personalizados.

Probar servidores SMTP

Telnet puede ayudar a diagnosticar problemas del servidor del Protocolo simple de transferencia de correo (SMTP) y a verificar configuraciones. 

El proceso suele consistir en comprobar si el servidor acepta conexiones, procesa correctamente los comandos y gestiona las transmisiones de correo electrónico.

Para conectarte a un servidor SMTP utilizando telnet, sigue estos pasos:

  1. Ejecuta el siguiente comando para iniciar una conexión. Sustituye smtp.ejemplo.tld por los datos de tu servidor SMTP:
telnet smtp.ejemplo.tld 25

Si la conexión se realiza correctamente, verás un mensaje de bienvenida del servidor de correo, similar a:

La salida del comando telnet smtp.ejemplo.tld 25 en la sesión telnet del terminal
  1. Preséntate al servidor SMTP utilizando el nombre de dominio desde el que te conectas. Sustituye dominio.tld por tu dirección real:
HELO dominio.tld
Ejemplo de dominio HELO usando telnet
  1. Introduce el siguiente comando para definir el remitente del correo electrónico:
MAIL FROM:<mail_sender@dominio.tld>
  1. Haz lo mismo con el destinatario del correo electrónico:
RCPT TO:<mail_recipient@dominio.tld>
  1. Para introducir el contenido del correo electrónico, escribe:
DATA
  1. El servidor te pedirá que introduzcas el cuerpo del mensaje. Escribe tu mensaje y termina introduciendo un solo punto (.) en una nueva línea para indicar el final del mensaje:
Asunto: Email de prueba

Éste es un correo electrónico de prueba enviado mediante telnet.

.

El servidor debe confirmar que el mensaje se ha puesto en espera.

  1. Cuando hayas terminado las pruebas, sal de la sesión escribiendo:
QUIT
Salida terminal utilizando quit con telnet

Consejo profesional

Hay varios puertos SMTP que puedes utilizar: 25, 465, 587 y 2525. Conoce sus diferencias y cómo elegir el adecuado a tus necesidades.

Evaluar servidores POP3

Además de comprobar servidores SMTP, telnet también resulta útil para comprobar servidores Post Office Protocol 3 (POP3). Utilizando este método, puedes autenticarte e interactuar con tu bandeja de entrada para solucionar problemas de recuperación de correo electrónico.

Los pasos para probar un servidor POP3 son los siguientes:

  1. Escribe el comando que aparece a continuación, sustituyendo pop.ejemplo.tld por el nombre de host real de tu servidor POP3:
telnet pop.ejemplo.tld 110
Salida del comando telnet pop.example.tld 110 en la sesión telnet del terminal
  1. Introduce tu dirección de correo electrónico completa o simplemente el dominio. En algunos casos, puede que tengas que probar ambas para ver cuál funciona:
USER address@domain.tld  

USER domain.tld
  1. Una vez que el servidor responda con +OK, introduce tu contraseña de correo electrónico para iniciar sesión:
PASS tu_contraseña

Si lo hiciste bien, deberías ver:

Terminal mostrando contraseña
  1. Intenta ver el número total de correos electrónicos de tu bandeja de entrada con:
STAT
  1. Para listar todos los correos electrónicos con sus ID y tamaños:
LIST
La salida del comando LIST en la sesión telnet del terminal
  1. También puedes recuperar el contenido de un correo electrónico. Sustituye id por el número de identificación único del correo electrónico:
RETR id
  1. Después de verificar el funcionamiento del servidor, no olvides salir de telnet escribiendo: 
QUIT

Depurar servidores HTTP

Puedes utilizar telnet para depurar servidores del Protocolo de transferencia de hipertexto (HTTP) conectándote a ellos por el puerto 80, el puerto por defecto para el tráfico HTTP. 

Este método te permite enviar solicitudes manualmente y comprobar si el servidor responde correctamente.

Si tu máquina remota tiene un servidor HTTP, aquí tienes cómo depurarlo:

  1. Conéctate al servidor remoto ejecutando:
telnet remote_server_ip 80
  1. Escribe la siguiente petición HTTP GET para recuperar la página por defecto del servidor. Sustituye dominio.tld por el dominio que apunta al servidor:
GET / HTTP/1.1

Host: dominio.tld

Asegúrate de pulsar Intro dos veces después de introducir la solicitud.

  1. El servidor responderá con las cabeceras HTTP y, en la mayoría de los casos, con el contenido de la página solicitada. Por ejemplo:
La salida de la petición HTTP GET en la sesión telnet del terminal

Como siempre, teclea “QUIT” cuando hayas terminado de depurar.

Comprobar servidores FTP

Utilizar telnet para probar un servidor de Protocolo de transferencia de archivos (FTP) es una forma rápida de verificar si funciona correctamente y si el puerto 21 por defecto no está bloqueado

Ten en cuenta que esto es sólo con fines de prueba. Cuando transfieras archivos, utiliza siempre protocolos más seguros como FTPS o SFTP.

Aquí tienes las instrucciones para comprobar tu servidor FTP:

  1. Utiliza este comando para acceder al servidor, sustituyendo servidor_remoto_ip por los datos reales de tu servidor:
telnet servidor_remoto_ip 21
La salida del comando telnet remote_server_ip 21 en la sesión telnet del terminal
  1. Puedes enviar manualmente comandos FTP básicos para comprobar el funcionamiento del servidor. Por ejemplo, para comprobar el tipo y la versión del servidor:
SYST
  1. También puedes verificar las funciones compatibles de tu servidor FTP utilizando:
FEAT
La salida del comando FEAT en la sesión telnet del terminal

Interactuar con servidores IRC

Internet Relay Chat (IRC) es un protocolo de comunicación de texto en tiempo real que se utiliza para charlas y debates en grupo. 

Aunque las plataformas de mensajería modernas lo han sustituido en gran medida, todavía puedes conectarte a un servidor IRC utilizando telnet para comprobar su disponibilidad e interactuar con él.

Ten en cuenta que el IRC es un protocolo de texto plano, así que evita compartir información sensible a través de él. Sigue estos pasos para conectarte a un servidor IRC con telnet:

  1. Utiliza el siguiente comando para conectarte al servidor IRC que desees en su puerto por defecto (6667):
telnet irc.dominio.tld 6667
La salida del comando telnet irc.domain.tld 6667 en la sesión telnet del terminal
  1. Después de que el servidor te dé la bienvenida, envía un comando NICK para definir tu apodo:
NICK tu_nickname
  1. Establece tu nombre de usuario y proporciona un identificador personal:
USER tu_usuario 0 * :tu nombre completo
La salida del comando telnet  con los usuarios
  1. Utiliza el comando JOIN para entrar en un canal IRC. Sustituye #nombre_canal por el nombre del canal al que quieras unirte:
JOIN #nombre_canal

Si tienes éxito, recibirás mensajes del canal, incluyendo una lista de los usuarios que están actualmente en el chat:

La salida del comando telnet usando el comando join
  1. Para enviar un mensaje al canal, utiliza:
PRIVMSG #nombre_del_canal :Tu mensaje aquí
  1. Cuando hayas terminado, sal del servidor escribiendo:
QUIT :Mensaje de despedida

Examinar los puertos personalizados

Por último, telnet te permite probar la conectividad con cualquier puerto abierto, lo que lo hace especialmente útil si tienes servicios no estándar que se ejecutan en puertos personalizados o si has cambiado el puerto por defecto de un servicio por otro personalizado, como cambiar SSH del puerto 22 a otro.

Aquí cómo hacerlo:

  1. Especifica la dirección IP del servidor remoto y el puerto que quieres probar:
telnet remote_server_ip port

Recibirás una respuesta si el puerto está abierto y el servicio se está ejecutando. En caso contrario, telnet mostrará un mensaje de error:

Uso del comando telnet remote_server_ip port
  1. Dependiendo del servicio que se ejecute en el puerto personalizado, envía los comandos adecuados para interactuar con él. Por ejemplo, si se trata de una aplicación personalizada, podrías utilizar el comando siguiente, sustituyendo /custom_endpoint por la ruta definida por tu servicio:
GET /custom_endpoint HTTP/1.1

Host: remote_server_ip

Dependiendo de la aplicación, el servicio responderá con datos específicos del puerto personalizado, como cabeceras, mensajes o incluso códigos de error.

Consideraciones de seguridad al utilizar el comando telnet

Telnet se ha utilizado históricamente para conexiones remotas y administración de redes. 

Sin embargo, todos los datos, incluida la información sensible como nombres de usuario y contraseñas, se transmiten en texto plano. Esto lo hace muy vulnerable a la interceptación por parte de atacantes, especialmente en redes públicas o no fiables.

Debido a estos riesgos, sólo debes ejecutar telnet en entornos controlados o locales para tareas básicas de depuración, como probar puertos abiertos o verificar la comunicación SMTP.

Para comunicaciones seguras con servidores remotos, es mejor utilizar SSH, ya que este protocolo encripta todos los datos en tránsito, protegiendo tu información de posibles ataques.

Si necesitas probar protocolos seguros o servicios encriptados, considera alternativas más seguras como openssl o Netcat (nc). Estas herramientas te permiten depurar y probar conexiones de red de forma segura, lo que es ideal para aplicaciones sensibles.

Conclusión

En este artículo hemos visto cómo utilizar el comando telnet para probar servicios como SMTP, POP3, servidores HTTP y puertos especificados. 

Esto muestra cómo telnet sigue siendo útil para solucionar problemas de red en un entorno Linux controlado o local.

Sin embargo, debido a su falta de cifrado, debes utilizar el protocolo telnet con responsabilidad y sólo para tareas no sensibles. Recomendamos SSH, openssl o nc para conexiones remotas seguras o evaluaciones de servicios encriptados.

Si reconoces los puntos fuertes y riesgos de telnet, podrás utilizarlo eficazmente para situaciones concretas, al tiempo que das prioridad a las alternativas seguras para las aplicaciones críticas. 

Además, asegúrate de que tienes la autorización necesaria antes de utilizar telnet para acceder a servidores o servicios remotos.

Esperamos que esta guía te haya sido de utilidad. Si tienes algún comentario o pregunta, escríbela en la sección de abajo. ¡Buena suerte!

Comando telnet de Linux – Preguntas frecuentes

Esta sección cubre algunas de las preguntas más comunes sobre el comando telnet. 

¿Qué es el comando telnet utilizado en Linux?

El comando telnet en Linux se utiliza para probar y solucionar problemas de servicios de red estableciendo una conexión de texto plano con un host remoto. 

Ayuda a verificar si determinados puertos están abiertos y si servicios como SMTP, HTTP y POP3 responden como se espera.

¿En qué se diferencia telnet de SSH?

Telnet transmite los datos en texto plano, lo que lo hace inseguro, mientras que SSH cifra toda la comunicación para garantizar la seguridad de los datos. 

Telnet suele utilizarse para la depuración básica en entornos controlados, mientras que SSH es la herramienta preferida para el acceso remoto seguro a servidores y la administración de sistemas.

¿Puedo utilizar telnet para probar un servidor seguro?

No, telnet no puede probar servidores seguros porque no admite conexiones cifradas. En su lugar, utiliza herramientas como openssl o nc para probar servidores que ejecuten protocolos seguros, como HTTPS o SMTPS, que requieren encriptación.

Author
El autor

Diego Boada

Diego es comunicador social, especialista en publicidad digital que trabaja constantemente en mejorar sus conocimientos de marketing digital, enfocándose en contenido y SEO. Idiomas, series, libros y cursos en internet son sus hobbies principales, además de los deportes. Este es su perfil de LinkedIn.