В чем разница между telnet и netcat?

В чем разница между telnet и netcat?

Я ищу объяснение, где я могу найти разницу между telnetи netcat. В каких случаях следует использовать telnetи netcat? Что telnetможет делать то, что netcatне может делать и наоборот?

Я пытался получить ответ из Интернета, но это не помогло мне понять. Все, что я смог найти, это разные cmd. Я ищу примеры использования с различиями.

Может ли кто-нибудь объяснить разницу?

решение1

Примечание: существует несколько различных программ Telnet, а также несколько различных вариантов Netcat. Они могут иметь несколько отличающиеся функции.

В общем, telnetконкретно говорит о протоколе RFC 854 «Telnet» — он распознает определенные байты как команды согласования параметров Telnet, поступающие с сервера, будет реагировать на них соответствующим образом и будет отправлять свои собственные в начале каждого соединения. (Например, он сообщает серверу значение $TERM и размер окна в строках×столбцах.) Он также будет переводить переносы строк Unix LF в версию NVT CR+LF и будет распознавать Ctrl+] как клавишу «escape».

Это делает его telnetнепригодным для сырых 8-битных TCP-соединений, поскольку это исказит передаваемые данные, и это не очень хорошо работает для пакетного использования в целом. Однако его все еще можно использовать для интерактивного взаимодействия с протоколами на основе ASCII, такими как FTP или SMTP – это работает, потому что многие клиенты Telnet не инициируют согласование при подключении к нестандартному порту (но они все равно ответят на него).

Netcat ncничего подобного не делает – этов первую очередь8-битный чистый TCP-клиент. Он может использоваться с протоколами ASCII, как и telnet, но также может и часто используется как «труба» в TCP для пакетной передачи данных, поскольку он не изменяет ни одного байта, отправленного через него.

Netcat часто также предлагает транспорты, не использующие TCP (UDP, иногда SCTP, локальные сокеты Unix), тогда как клиенты Telnet поддерживают только TCP.

С другой стороны, netcat не понимает никаких протоколов — если вы попытаетесь подключиться к настоящему серверу Telnet с помощью nc, это не сработает вообще: сервер не будет знать, какой тип терминала вы используете, размер окна нельзя будет изменить и т. д.


  • Если вы подключаетесь к серверу Telnet через порт 23, используйте telnet.
  • Если вам нужно что-то подобное, catно для TCP, используйте ncили даже socat.
  • Если вам необходимо отправить/получить нетекстовые данные, используйте nc/ socat— избегайте telnet.
  • Если вы хотите вручную вводить команды SMTP, IRC, IMAP или HTTP, оба инструмента будут работать нормально. (На самом деле, они telnetмогут работать немного лучше, так как преобразуют окончания строк в CR+LF, что также требуется некоторым таким серверам.)

Связанный контент