Quiero saber si es necesario tener habilitado telnet en ambos lados de las máquinas para obtener una conexión telnet.
Aquí está el problema: estoy intentando hacer telnet con alguna IP pública en el puerto 80 desde un servidor web Linux (Red Hat).
Esta IP pública tiene HTTP (80) habilitado. I » No estoy seguro de si telnet está habilitado, pero el propietario dice que sí.
En mi servidor Linux, HTTP (80) está habilitado pero no telnet. En su lugar, SSH está habilitado.
Cuando hago telnet desde mi servidor Linux: telnet PublicIP 80
dice:
Trying "PublicIP"... Connected to "PublicIP" ("PublicIP"). Escape character is "^]". Connection closed by foreign host
¿Tengo que habilitar telnet en mi servidor para que funcione? Porque no hay ningún problema en el otro extremo como lo han confirmado otras fuentes. IP pública: 220.226.190.180
Explique cómo puedo hacer que funcione. Si tengo que habilitar telnet en mi servidor Linux, por favor comparte el comando y el método para hacerlo.
Comentarios
- como sabemos, el puerto telnet no es seguro, por lo que la mayoría de los fw lo bloquean, ¿estás seguro que no hay ‘ t ningún firewall (en la otra máquina) que bloquee el puerto telnet.
- Parece que ya hiciste lo que querías … Tu telnet ‘ ed al servicio HTTP remoto y dado que no ‘ t escribiste nada, cerró la conexión. No necesitas habilitar el servicio Telnet (Servidor) en cualquier máquina. Está usando el cliente telnet. También puede usar curl / wget / nc / anything para hacer lo mismo.
- Hay muchas posibilidades de que lo haya. Pero está permitido a cualquiera. Incluso puedo hacer telnet desde mi red doméstica en mi PC con Windows. pero es desde mi oficina m enfrentando. todo está permitido en nuestro lado del firewall desde este servidor.
- @Networker, la preocupación por la seguridad es (en este contexto) simplemente una tontería. telnet se utiliza como cliente para probar la accesibilidad de un servicio, y NO, el puerto telnet no está involucrado.
Respuesta
¿Está intentando probar la conectividad a un servidor web remoto con telnet
? Entonces, no: no necesita servidores telnet. El servidor HTTP remoto está esperando comandos, como lo indica el carácter de escape. Cuando se agota el tiempo de espera, la conexión se cierra. Entonces …
telnet <hostname or ip address> 80
Luego escriba algunos comandos HTTP:
GET / HTTP/1.1 host: <fqdn>
Utilice el FQDN de un host para el que se ha configurado el servidor web remoto. Devolverá el documento predeterminado con los comandos HTTP anteriores. Tenga en cuenta el comentario exacto de 0xAF.
Comentarios
- El OP necesita ingresar 1 línea vacía después de su entrada para poder recuperar cualquier respuesta. La mayoría de los servidores HTTP permitirán la comunicación HTTP / 1.0. Si el OP está tratando de probar solo el servicio HTTP, podría escribir » GET / HTTP / 1.0 » y presionar la tecla enter 2 veces.
Responder
Para responder a su pregunta en la primera oración: Telnet es dos cosas: a aplicación del lado del servidor (demonio) y una aplicación del lado del cliente.
Cuando se está ejecutando un servidor telnet, la computadora está escuchando en el puerto TCP 23 para las conexiones de un cliente telnet.
Un cliente telnet no escucha en ningún puerto, sino que intenta conectarse al puerto TCP 23 (por defecto) en una computadora. Si se conecta correctamente, es posible que se le solicite al usuario que inicie sesión y luego tenga una sesión de shell interactiva. Debido a que telnet se comunica de forma predeterminada utilizando texto sin cifrar (¡incluida su contraseña!), Esto NO es recomendable.
Sin embargo, como dice Christopher en su excelente respuesta, si realmente está intentando probar un servidor http utilizando telnet, puede usar el programa telnet para eso, y no necesita un servidor telnet.
El programa cliente telnet puede usarse para conectarse a otros puertos TCP distintos al puerto predeterminado 23.
telnet <hostname> <TCP port>
Debido a que los servidores http generalmente escuchan en el puerto 80, puede usar el programa telnet para conectarse al puerto 80 y ver lo que el servidor http envía a los navegadores cuando se conectan:
telnet google.com 80
Eso se conectará, pero luego debe escribir el siguiente texto, que es solo una simple solicitud http (el caso es importante):
GET / HTTP/1.1 host: test.com
Luego presione enter dos veces.
Verá todo el html sin procesar que Google ofrece a los navegadores. Puede usar este mismo concepto para probar su propios servidores http.
Respuesta
telnet
se puede utilizar para probar el protocolo HTTP, pero existen herramientas más adecuadas para la tarea. Yo personalmente recomiendo curl
. Es esencialmente una utilidad de línea de comandos que puede interactuar con una amplia variedad de protocolos (HTTP, HTTPS, FTP …). El uso de curl
en lugar de telnet
para probar un servidor HTTP le evitará tener que escribir manualmente las solicitudes HTTP y le proporcionará más información en general.Algunas características que pueden resultarle útiles para su situación actual son:
Conéctese a un host mediante HTTP y solicite el documento predeterminado:
curl <public ip>
Conéctese a un host usando HTTP y vea solo los encabezados HTTP:
curl -I <public ip>
Conéctese al host usando HTTP, vea solo los encabezados HTTP y siga las redirecciones 3xx:
curl -LI <public ip>
curl
tiene literalmente docenas de opciones. Recomiendo usar curl --help
para un resumen rápido y man curl
o curl --manual
para obtener información más detallada.
Respuesta
Si no tiene telnet o curl, también puede usar cat y proc dir para conectar un puerto:
cat < /dev/tcp/HOST/PORT
Extraído de este artículo (en español) .