Quero saber se é necessário ter o telnet ativado em ambos os lados das máquinas para obter a conexão telnet.
Aqui está o problema: estou tentando telnetar algum IP público na porta 80 de um servidor web Linux (Red Hat).
Este IP público tem HTTP (80) habilitado. I ” Não tenho certeza se o telnet está habilitado, mas o proprietário diz que está.
No meu servidor Linux, HTTP (80) está habilitado, mas não o telnet. Em vez disso, o SSH é habilitado.
Quando eu telnet do meu servidor Linux: telnet PublicIP 80
, ele diz:
Trying "PublicIP"... Connected to "PublicIP" ("PublicIP"). Escape character is "^]". Connection closed by foreign host
Preciso habilitar o telnet em meu servidor para que funcione? Porque não há problema na outra extremidade, conforme confirmado por outras fontes. IP público: 220.226.190.180
Explique como posso fazer isso funcionar. Se eu tiver que habilitar telnet no meu servidor Linux, por favor compartilhe o comando e o método para fazê-lo.
Comentários
- como sabemos a porta telnet não é segura, então a maioria bloqueia-a, tem certeza que não existe ‘ nenhum firewall (na outra máquina) que bloqueia a porta telnet.
- Parece que você já fez o que queria … Você telnet ‘ ed para o serviço HTTP remoto e como você não ‘ digitou nada, a conexão foi encerrada. Você não precisa ativar o serviço Telnet (Servidor) em qualquer máquina. Você está usando o cliente telnet. Você também pode usar curl / wget / nc / qualquer para fazer a mesma coisa.
- É bem provável que sim. Mas é permitido para qualquer pessoa. Até eu posso telnet da minha rede doméstica no meu PC com Windows. mas é do meu escritório, ia m enfrentando. tudo é permitido em nosso lado do firewall a partir deste servidor.
- @Networker a preocupação com a segurança é (neste contexto) apenas um disparate. telnet é usado como um cliente para testar a acessibilidade de um serviço – e NÃO, a porta telnet não está envolvida.
Resposta
Você está tentando testar a conectividade com um servidor da Web remoto com telnet
? Então, não: você não precisa de servidores telnet. O servidor HTTP remoto está aguardando comandos, conforme indicado pelo caractere de escape. Quando o tempo de espera se esgota, a conexão é encerrada. Então …
telnet <hostname or ip address> 80
Em seguida, digite alguns comandos HTTP:
GET / HTTP/1.1 host: <fqdn>
Use o FQDN de um host para o qual o servidor Web remoto foi configurado para servir. Ele retornará o documento padrão com os comandos HTTP acima. Observe o comentário exato de 0xAF.
Comentários
- O OP precisa inserir 1 linha vazia após sua entrada para poder recuperar qualquer resposta. A maioria dos servidores HTTP permite a comunicação HTTP / 1.0. Se o OP está tentando testar apenas o serviço HTTP, ele pode simplesmente escrever ” GET / HTTP / 1.0 ” e pressionar a tecla Enter 2 vezes.
Resposta
Para responder à sua pergunta na primeira frase: Telnet é duas coisas: a aplicativo do lado do servidor (daemon) e um aplicativo do lado do cliente.
Quando um servidor telnet está sendo executado, o computador está escutando na porta 23 TCP para conexões de um cliente telnet.
Um cliente telnet não escuta em nenhuma porta, mas tenta se conectar à porta TCP 23 (por padrão) em um computador. Se ele se conectar corretamente, o usuário pode ser solicitado a efetuar login e, em seguida, iniciar uma sessão de shell interativa. Como o telnet se comunica por padrão usando texto simples e não criptografado (incluindo sua senha!), Isso NÃO é recomendado.
No entanto, como Christopher diz em sua excelente resposta, se você está realmente tentando testar um servidor http usando telnet, você pode usar o programa telnet para isso e não precisa de um servidor telnet.
O programa cliente telnet pode ser usado para se conectar a outras portas TCP além da porta 23 padrão.
telnet <hostname> <TCP port>
Como os servidores http geralmente escutam na porta 80, você pode usar o programa telnet para se conectar à porta 80 e ver o que o servidor http está enviando aos navegadores quando eles se conectam:
telnet google.com 80
Isso irá conectar, mas você deve digitar o seguinte texto, que é apenas uma solicitação http simples (maiúsculas e minúsculas são importantes):
GET / HTTP/1.1 host: test.com
Em seguida, pressione Enter duas vezes.
Você verá todo o HTML bruto que o Google oferece aos navegadores. Você pode usar o mesmo conceito para testar o seu próprios servidores http.
Resposta
telnet
pode ser usado para testar o protocolo HTTP, mas existem ferramentas mais adequadas para a tarefa. Eu pessoalmente recomendo curl
. É essencialmente um utilitário de linha de comando capaz de interagir com uma ampla variedade de protocolos (HTTP, HTTPS, FTP …). Usar curl
em vez de telnet
para testar um servidor HTTP evitará que você precise digitar manualmente as solicitações HTTP e fornecerá mais informações gerais.Alguns recursos que podem ser úteis para a sua situação atual são:
Conecte-se a um host usando HTTP e solicite o documento padrão:
curl <public ip>
Conecte-se a um host usando HTTP e visualize apenas os cabeçalhos HTTP:
curl -I <public ip>
Conecte-se ao host usando HTTP, visualize apenas os cabeçalhos HTTP e siga os redirecionamentos 3xx:
curl -LI <public ip>
curl
literalmente tem dezenas de opções. Eu recomendo usar curl --help
para um resumo rápido e man curl
ou curl --manual
para informações mais detalhadas.
Resposta
Se você não tiver telnet ou curl, também pode usar cat e proc dir para conectar uma porta:
cat < /dev/tcp/HOST/PORT
Extraído deste artigo (em espanhol) .