Estoy buscando una explicación donde pueda encontrar la diferencia entre telnet
y netcat
. ¿En qué casos debo utilizar telnet
y netcat
? ¿Qué telnet
puede hacer lo que netcat
no puede hacer y viceversa?
Intenté obtener la respuesta de Internet pero no me ayuda a entender. Todo lo que pude encontrar fueron los diferentes cmds. Estoy buscando ejemplos de casos de uso con diferencias.
¿Alguien puede explicar la diferencia con una explicación?
Respuesta1
Nota: Existen varios programas Telnet diferentes, así como varias variantes de Netcat diferentes. Es posible que tengan características algo diferentes.
En general, telnet
habla específicamente del protocolo "Telnet" RFC 854: reconoce ciertos bytes como comandos de negociación de opciones Telnet provenientes del servidor, los responderá adecuadamente y enviará los suyos propios al comienzo de cada conexión. (Por ejemplo, informa el valor $TERM y el tamaño de la ventana en líneas × columnas al servidor). También traducirá los saltos de línea Unix LF a la versión NVT CR+LF y reconocerá Ctrl+] como una tecla de "escape".
Esto lo hace telnet
inadecuado para conexiones TCP sin formato de 8 bits, ya que dañaría los datos transferidos y no funciona bien para el uso por lotes en general. Sin embargo, todavía se puede utilizar para hurgar interactivamente en protocolos basados en ASCII como FTP o SMTP; funciona porque muchos clientes Telnet no inician la negociación si se conectan a un puerto no estándar (pero aun así responderán).
Netcat nc
no hace nada de eso – esante todoun cliente TCP limpio de 8 bits. Se puede usar con protocolos ASCII al igual que telnet, pero también se puede usar, y a menudo se usa, como una "tubería" hacia TCP para la transferencia de datos por lotes, porque no alterará ningún byte enviado a través de él.
Netcat a menudo también ofrece transportes que no son TCP (UDP, a veces SCTP, sockets Unix locales), mientras que los clientes Telnet son sólo TCP.
Por otro lado, netcat no comprende ningún protocolo: si intentara conectarse a un servidor Telnet real usando nc
, no funcionaría muy bien; el servidor no sabría qué tipo de terminal está utilizando, no se podría cambiar el tamaño de la ventana, etc.
- Si se está conectando a un servidor Telnet en el puerto 23, utilice
telnet
. - Si necesita algo como
cat
pero para TCP, usenc
o inclusosocat
. - Si necesita enviar/recibir datos que no sean de texto, utilice
nc
/socat
– evitartelnet
. - Si desea escribir manualmente comandos SMTP, IRC, IMAP o HTTP, ambas herramientas funcionarán bien. (De hecho,
telnet
podría funcionar un poco mejor, ya que convierte los finales de línea a CR+LF, lo que algunos de estos servidores también requieren).