Как пользоваться Telnet

Telnet – это протокол и одноименная утилита, которая позволяет установить соединение и интерактивный канал связи с любым портом удаленного устройства. При помощи telnet можно передавать команды на удаленное устройство, с которым установлено соединение.

Раньше Telnet использовался для удаленного доступа к управлению компьютерами или серверами с Linux. С появлением более современных протоколов управления удаленными устройствами Telnet отошел на второй план и стал использоваться для более точечных задач, например, для проверки сети или доступности портов, а также управления различными IoT-устройствами и роутерами.

В этой статье мы познакомимся с функционалом Telnet и рассмотрим ситуации, в которых он может быть полезен.

Что такое Telnet

Как было сказано выше, эта утилита предназначена для установки интерактивного канала связи с удаленным устройством. Утилита работает по одноименному протоколу TELNET, а так как этот протокол поддерживает большое количество сторонних сервисов, утилита telnet может использоваться для управления ими. Протокол TELNET работает на основе TCP и позволяет передавать текстовые команды на удаленный компьютер.

Синтаксис утилиты Telnet

telnet опции хост порт

Начнем не по порядку.

Отдельно отметим, что мы не будем подробно рассматривать все доступные ключи и команды, так как большая их часть вам не пригодится, а при необходимости информацию о них можно найти в документации утилиты.

Хост – это домен или IP-адрес удаленного устройства, к которому производится подключение.

Порт – это порт на удаленном компьютере, по которому производится подключение.

Теперь рассмотрим основные опции:

  • -4 – принудительное использование адреса IPv4 при подключении;
  • -6 – принудительное использование адреса IPv6 при подключении;
  • -8 – использование 8-битной кодировки, например, Unicode;
  • -E – отключение поддержки Escape-последовательностей;
  • -a – автоматический вход, имя пользователя берется из переменной окружения USER;
  • -b – использование локального сокета;
  • -d – включение режима отладки;
  • – включение режима эмуляции rlogin;
  • -e – символ начала Escape-последовательности;
  • -l – пользователь для авторизации на удаленной машине.

Нужно учесть, что установка сетевого соединения – это только полдела. После установки соединения Telnet может работать в двух разных режимах передачи данных:

  • Построчный – это режим по умолчанию, в котором команды и данные вводятся построчно на устройстве пользователя и передаются на удаленное устройство только по завершении ввода строки. Этот режим позволяет отредактировать команду или данные после ввода в случае ошибки, но может поддерживаться не всеми сервисами.
  • Посимвольный – это режим, который может быть активирован как со стороны удаленного устройства, так и со стороны локального. Обычно он включается сервисами, которые не поддерживают построчный режим. В этом режиме каждый символ, который вы вводите, сразу передается на сервер и любая ошибка в команде или данных приведет к необходимости вводить их заново, так как отредактировать их в процессе ввода весьма затруднительно.

После подключения к удаленному устройству используются команды сервиса, к которому вы подключены. У протокола Telnet есть свои команды, которые работают независимо от сервиса, с которым установлено подключение. Ниже приведен список команд протокола Telnet.

  • CLOSE – закрыть соединение с сервером;
  • ENCRYPT – шифровать все передаваемые данные;
  • LOGOUT – выйти и закрыть соединение;
  • MODE – переключить режим со строчного на символьный или с символьного на строчный;
  • STATUS – посмотреть статус соединения;
  • SEND – отправить один из специальных символов Telnet;
  • SET – установить значение параметра;
  • OPEN – установить подключение через Telnet с удаленным узлом;
  • DISPLAY – отобразить используемые спецсимволы;
  • SLC – изменить используемые спецсимволы.

Примеры использования Telnet

Перейдем к ситуациям, в которых может быть полезен telnet.

В большинстве популярных ОС Telnet уже установлен. Если по какой-либо причине на вашем устройстве нет telnet, вы можете его установить по приведенным ниже инструкциям.

Linux

Для установки telnet на Linux-дистрибутивах достаточно установить пакет telnet.Пример команды установки для Ubuntu: sudo apt install telnet

Windows

Для установки Telnet в Windows необходимо открыть меню “Пуск”, ввести в поиске “Включение или отключение компонентов Windows” и запустить найденную утилиту.

В открывшемся окне поставьте галочку напротив “Клиент Telnet” и нажмите кнопку “ОК”.

Теперь Telnet-клиент доступен в командной строке Windows.

Итак, изначально telnet использовался для удаленного управления устройством, но так как впоследствии был разработан более безопасный сетевой протокол SSH, использовать Telnet по прямому назначению почти перестали. Давайте рассмотрим 3 кейса, в которых всё еще может быть применим telnet.

Проверка доступности сервера

Так как telnet осуществляет подключение к удаленному серверу, его можно использовать для проверки доступности сервера по сети. Достаточно просто вызвать telnet с адресом сервера или доменом – и вы либо подключитесь к серверу, либо получите ошибку подключения:

telnet 192.168.1.243

Обратите внимание, что использовать для такой задачи telnet вовсе необязательно, есть ping, traceroute и другие утилиты, которые также справятся с этой задачей.

Проверка порта

C помощью telnet можно проверить, открыт ли порт на удаленном устройстве. Для проверки порта достаточно указать его при подключении. Ниже два примера:

telnet localhost 123
telnet localhost 22

В первом случае результатом будет ошибка “Connection refused”, которая означает, что порт закрыт. Во втором случае telnet успешно подключится к локальному SSH-серверу.

Как и в случае первого примера, есть более современные утилиты-альтернативы telnet, которые могут проверить порт на удаленном устройстве, например, Nmap. Но Nmap нужно отдельно устанавливать, а telnet есть в большинстве ОС по умолчанию.

Выполнение HTTP-запроса

Как говорилось ранее, telnet может подключаться к различным сервисам на удаленном устройстве и управлять ими – например, подключиться к почтовому серверу и отправить письмо или подключиться к веб-серверу, отправить HTTP-запрос и получить страницу в ответ.

Давайте рассмотрим второй пример немного подробнее. Чтобы подключиться к веб-серверу, воспользуемся 80 портом, для примера используем наш сайт beget.com.

Подключимся к веб-серверу командой:

telnet beget.com 80

Затем отправим HTTP-запрос на получение главной страницы:

> GET / HTTP/1.1

И добавим обязательный заголовок Host:

> Host: beget.com

После этого дважды нажмите “Enter” и вы увидите ответ сервера в виде заголовков и html-кода страницы, который вернет 301 редирект.

Использование telnet для отправки HTTP-запросов – это просто пример взаимодействия с другими сервисами. Когда-то это был частый вариант использования telnet, но сейчас, опять же, есть более современные и функциональные утилиты для выполнения этой задачи. 

Выводы

Мы рассмотрели разные способы использования утилиты telnet и разобрались, для чего она применялась раньше. Хотя сейчас для почти всего функционала есть более современные аналоги, telnet всё еще используется в ситуациях, когда нужно выполнить пару точечных действий (и устанавливать ради этого стороннее ПО не имеет смысла) или для проверки доступа к удаленным устройствам. Также иногда мы запрашиваем вывод утилиты telnet при диагностике проблем соединения с серверами.

Удачной работы! 

Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “Помощь и поддержка”), а если вы захотите обсудить эту статью или в целом возможности telnet  – ждем вас в нашем сообществе в Telegram.

0
564