Was ist der Unterschied zwischen Telnet und Netcat?

Was ist der Unterschied zwischen Telnet und Netcat?

Ich suche nach einer Erklärung, wo ich den Unterschied zwischen telnetund finden kann netcat. In welchen Fällen sollte ich telnetund verwenden netcat? Was telnetkann ein , was kann ein , was netcatnicht kann und umgekehrt?

Ich habe versucht, die Antwort aus dem Internet zu bekommen, aber es hilft mir nicht, es zu verstehen. Ich konnte nur die unterschiedlichen Befehle finden. Ich suche nach Anwendungsbeispielen mit Unterschieden.

Kann jemand den Unterschied anhand einer Erklärung erläutern?

Antwort1

Hinweis: Es gibt mehrere verschiedene Telnet-Programme sowie mehrere verschiedene Netcat-Varianten. Sie verfügen möglicherweise über etwas unterschiedliche Funktionen.

Im Allgemeinen telnetspricht es speziell das RFC 854-Protokoll „Telnet“ – es erkennt bestimmte Bytes als vom Server kommende Telnet-Optionsverhandlungsbefehle, reagiert entsprechend darauf und sendet seine eigenen zu Beginn jeder Verbindung. (Zum Beispiel meldet es dem Server den $TERM-Wert und die Fenstergröße in Zeilen×Spalten.) Es übersetzt auch Unix-LF-Zeilenumbrüche in die NVT-CR+LF-Version und erkennt Strg+] als „Escape“-Taste.

Dies macht es telnetfür reine 8-Bit-TCP-Verbindungen ungeeignet, da es die übertragenen Daten verstümmeln würde, und es funktioniert im Allgemeinen nicht gut für die Stapelverarbeitung. Es kann jedoch weiterhin verwendet werden, um interaktiv in ASCII-basierten Protokollen wie FTP oder SMTP herumzustöbern – es funktioniert, weil viele Telnet-Clients keine Verhandlungen einleiten, wenn sie eine Verbindung zu einem nicht standardmäßigen Port herstellen (aber trotzdem darauf reagieren).

Netcat ncmacht nichts dergleichen – es istin erster Linieein sauberer 8-Bit-TCP-Client. Er kann wie Telnet mit ASCII-Protokollen verwendet werden, kann aber auch als „Pipe“ in TCP für die Stapeldatenübertragung verwendet werden (und wird dies auch oft), da er kein durch ihn gesendetes Byte verändert.

Netcat bietet häufig auch Nicht-TCP-Transporte an (UDP, manchmal SCTP, lokale Unix-Sockets), während Telnet-Clients nur TCP unterstützen.

Andererseits versteht netcat keine Protokolle – wenn Sie versuchen würden, über eine Verbindung zu einem echten Telnet-Server herzustellen nc, würde dies überhaupt nicht gut funktionieren; der Server wüsste nicht, welchen Terminaltyp Sie verwenden, die Fenstergröße ließe sich nicht ändern usw.


  • Wenn Sie eine Verbindung zu einem Telnet-Server auf Port 23 herstellen, verwenden Sie telnet.
  • Wenn Sie so etwas wie cataber für TCP benötigen, verwenden Sie ncoder sogar socat.
  • Wenn Sie andere Daten als Text senden/empfangen müssen, verwenden Sie nc/ socat– vermeiden Sie telnet.
  • Wenn Sie SMTP-, IRC-, IMAP- oder HTTP-Befehle manuell eingeben möchten, funktionieren beide Tools einwandfrei. (Tatsächlich telnetkönnte es sogar etwas besser funktionieren, da es Zeilenenden in CR+LF umwandelt, was einige dieser Server ebenfalls erfordern.)

verwandte Informationen