Qual é a diferença entre telnet e netcat?

Qual é a diferença entre telnet e netcat?

Estou procurando uma explicação onde possa encontrar a diferença entre telnete netcat. Em quais casos devo usar telnete netcat? O que um telnetpode fazer que netcatnão pode fazer e vice-versa?

Tentei obter a resposta na Internet, mas não me ajudou a entender. Tudo que consegui encontrar foram os diferentes cmds. Estou procurando exemplos de casos de uso com diferenças.

Alguém pode explicar a diferença com explicação?

Responder1

Nota: Existem vários programas Telnet diferentes, bem como diversas variantes do Netcat. Eles podem ter recursos um pouco diferentes.

Em geral, telnetfala especificamente o protocolo "Telnet" RFC 854 - ele reconhece certos bytes como comandos de negociação de opções Telnet vindos do servidor, responderá a eles adequadamente e enviará os seus próprios no início de cada conexão. (Por exemplo, ele relata o valor $TERM e o tamanho da janela em linhas×colunas para o servidor.) Ele também traduzirá quebras de linha Unix LF para a versão NVT CR+LF e reconhecerá Ctrl+] como uma tecla de "escape".

Isso torna telnetinadequado para conexões TCP brutas de 8 bits, pois distorceria os dados transferidos e não funciona bem para uso em lote em geral. No entanto, ele ainda pode ser usado para explorar interativamente protocolos baseados em ASCII, como FTP ou SMTP – funciona porque muitos clientes Telnet não iniciam a negociação se estiverem conectados a uma porta fora do padrão (mas ainda assim responderão a ela).

Netcat ncnão faz nada parecido – éprincipalmenteum cliente TCP limpo de 8 bits. Ele pode ser usado com protocolos ASCII assim como o telnet, mas também pode e é frequentemente usado como um "pipe" no TCP para transferência de dados em lote, porque não alterará nenhum byte enviado por ele.

O Netcat muitas vezes também oferece transportes não-TCP (UDP, às vezes SCTP, soquetes Unix locais), enquanto os clientes Telnet são apenas TCP.

Por outro lado, o netcat não entende nenhum protocolo – se você tentasse se conectar a um servidor Telnet real usando nc, não funcionaria muito bem; o servidor não saberia que tipo de terminal você está usando, a janela não poderia ser redimensionada, etc.


  • Se você estiver se conectando a um servidor Telnet na porta 23, use telnet.
  • Se você precisar de algo como catmas para TCP, use ncou até mesmo socat.
  • Se você precisar enviar/receber dados não textuais, use nc/ socat– evite telnet.
  • Se você quiser digitar manualmente comandos SMTP ou IRC ou IMAP ou HTTP, ambas as ferramentas funcionarão bem. (Na verdade, telnetpode funcionar um pouco melhor, pois converte finais de linha em CR+LF, o que alguns desses servidores também exigem.)

informação relacionada