1

Можно ли использовать telnet с любым текстовым протоколом прикладного уровня, таким как http или smtp?

2 ответа2

6

Его можно использовать с большинством, и у вас не будет особых проблем с распространенными протоколами, такими как HTTP или SMTP, но Telnet сам по себе является протоколом и реагирует на несколько специальных символов.

Из статьи Википедии Telnet:

Все октеты данных, кроме 0xff, передаются через транспорт TCP как есть. Поэтому клиентское приложение Telnet также может использоваться для установления интерактивного необработанного сеанса TCP, и обычно считается, что такой сеанс, который не использует IAC (0xff или 255 в десятичном виде), функционально идентичен.

Однако это не так, потому что существуют другие правила сетевого виртуального терминала (NVT), такие как требование, чтобы за символом возврата каретки (CR, ASCII 13) следовал символ NUL (ASCII 0), которые различают протокол telnet из необработанных TCP-сессий. [требуется уточнение]

С другой стороны, многие системы теперь имеют настоящих "сырых" TCP-клиентов, таких как netcat или socat в UNIX и PuTTY в Windows, которые также можно использовать для ручного "общения" с другими службами без специального клиентского программного обеспечения. Тем не менее, Telnet все еще иногда используется для отладки сетевых служб, таких как SMTP, IRC, HTTP, FTP или POP3, для выдачи команд серверу и проверки ответов, но из всех этих протоколов только FTP действительно использует формат данных Telnet.

Другое отличие Telnet от необработанного TCP-сеанса заключается в том, что по умолчанию Telnet не является чистым 8-разрядным. 8-битный режим может быть согласован, но октеты с высоким битовым набором могут искажаться до тех пор, пока не будет запрошен этот режим, и он, очевидно, не будет запрашиваться при не-Telnet-соединении. 8-битный режим (так называемая двоичная опция) предназначен для передачи двоичных данных, а не символов. Стандарт предлагает интерпретацию кодов 0000–0176 как ASCII, но не предлагает никакого значения для октетов данных с высоким битовым набором. Была попытка ввести переключаемую поддержку кодировки символов, как в HTTP [3], но ничего не известно о ее реальной программной поддержке.

Как уже упоминалось, nc или socat - лучший инструмент (а nc позволяет вам разговаривать по UDP через командную строку), хотя в большинстве случаев с HTTP и т.д. Вы можете просто без труда использовать telnet.

4

Да, конечно. И это отличный инструмент для тестирования.

это пример того, как это сделать, используя http.

http://www.esqsoft.com/examples/troubleshooting-http-using-telnet.htm

Старые протоколы в Интернете, как правило, используют текст для общения туда-сюда. Это включает в себя FTP и SMTP ...

Исключением из этого правила является все, что зашифровано, поэтому SSH и SSL отсутствуют.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .