Что такое Telnet и как пользоваться утилитой

Когда большинство людей думают об интернете, то о чем они действительно думают, так это о сети. Однако физическая сеть, составляющая Интернет, несет в себе гораздо больше, чем просто веб-сайты и общедоступные услуги, которыми мы все пользуемся каждый день.

На самом деле, большая часть интернета вообще не связана с сетью, а представляет собой целый ряд других интернет-сервисов, которые используют различные «протоколы». HTTP или протокол передачи гипертекста используется, чтобы служить веб-сайтам для вашего браузера, как один из примеров. Telnet — это также интернет-протокол, но с другой историей и интересным использованием.

Но что такое телнет? В этой статье вы узнаете только это.

Что такое Telnet

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

В недавнем прошлом Телнет был одним из основных способов подключения к сети. Сейчас утилита практически не используется. На сегодняшний день в операционные системы установлены более совершенные протоколы, исключая какие-либо дополнительные действия от пользователя.

Этот протокол связи используется в некоторых операциях:

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

Telnet как инструмент удаленного управления

Telnet может использоваться для отправки команд удаленным системам и, следовательно, управления ими через интерфейс терминала. Это редко делается в наши дни, когда протокол SSH (Secure Shell) в основном заменяет назначение и функцию Telnet.

Тем не менее, Telnet по-прежнему важен, поскольку системы, работающие под управлением операционных систем предыдущих эпох, но все еще используемые сегодня, могут быть доступны только через Telnet. Некоторые интернет-устройства, такие как определенные маршрутизаторы, могут также отвечать только на команды Telnet.

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

Установка и запуск

Скачивать утилиту не нужно, Telnet встроен в Windows 7/8/10 по умолчанию.
Инструкция по установке и запуску:

  • для установки клиента нужно открыть «Панель управления»;
  • далее выбираем «Программы» и «Включение и отключение компонентов»;
  • в списке системных компонентов следует найти «Клиент Telnet»;
  • отмечаем чекбокс и щелкаем «ОК», начнется процесс установки.

Для того, чтобы запустить клиент нужно открыть командную строку:

  • в меню «Пуск», в поисковой строке ввести «CMD»;
  • далее запускаем командную строку от имени администратора и вводим «Telnet»;
  • после этого откроется окно утилиты.

Подключение телефона к телевизору

Предлагаем ознакомиться с видео по установке Телнет в Windows:

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

Проверка сетевого порта на наличие доступа к нему персонального компьютера в Telnet:

  • в окне необходимо ввести команду telnetip;
  • далее следует ввести IP адрес компьютера, например, 192.168.1.1. Посмотреть адрес можно в настройках сетевого маршрутизатора;
  • в конце вводим порт FTP «21». Таким образом команда будет выглядеть так: telnet 192.168.0.1 21;
  • после этого появится сообщение об ошибке, если порт недоступен или с просьбой ввести дополнительные данные, если порт открыт.

Команды Telnet

Команды утилиты являются способом взаимодействия с ней. Для отображения списка всех команд, необходимо ввести «help». Далее подробно разберем основные команды:

  • «open» — запрос позволяет выполнить подключение к удаленному серверу;
  • «close» — прерывание процесса подключения к удаленному серверу;
  • «set» — настройка параметров подключения к серверу;
  • «term» — запрос предназначен для указания типа терминала;
  • «escape» — задает управляющий символ;
  • «mode» — выбор режима работы;
  • «unset» — сброс ранее введенных параметров;
  • «start» — запуск сервера;
  • «pause» — временная остановка работы сервера;
  • «continue» — продолжение работы сервера после паузы;
  • «stop» — полное прекращение работы сервера.

Telnet в Linux

Как и в Виндовс, Телнет встроен в операционную систему Linux. Ранее он использовался, как стандартный протокол Telnet, теперь на его место пришел более улучшенный SSH. Как и с предыдущей ОС, утилита в Linux используется для проверки портов, маршрутизаторов и т.д.
Рассмотрим основные режимы работы:

  • «построчный». Данный режим работы является рекомендованным. В этом случае редактирование запроса осуществляется на локальном ПК и отправляется на сервер только в том случае, когда она готова;
  • «посимвольный». Каждый набранный символ в окне консоли отправляется на удаленный сервер. Здесь нельзя осуществить редактирование текста. При удалении символа с помощью «Backspace», он тоже будет отправлен на сервер.

Как сделать коллаж из фотографий с Shape Collage

Базовые команды в Linux:

  • «close» — прерывание подключения;
  • «encrypt» — включение шифрования;
  • «logout» — выключение утилиты и закрытие соединения;
  • «mode» — выбор режима работы;
  • «status» — состояние соединения;
  • «send» — отправка запроса телнет;
  • «set» — настройка параметров сервера;
  • «open» — подключение к удаленному серверу;
  • «display» — отображение специальных символов.

Далее рассмотрим несколько способов применение утилиты в Linux:

  • в окне консоли вводим запрос для проверки доступности сервера, например, «telnet 192.168.1.243»;
  • далее проверим доступ к порту путем ввода запроса «telnet localhost 122» и «telnet localhost 21». На экране консоли появится сообщение о том принимает ли соединение какой-либо из портов;
  • пример удаленного управления с помощью телнет. Для этого необходимо ввести в главном окне запрос «telnet localhost 23». «23» порт используемый по умолчанию. Чтобы произвести удаленное управление, необходимо установить на локальный компьютер «telnet-server». После этого появится сообщение с требованием ввода логина и пароля.

Как получить доступ к службе Telnet

Для подключения к службе Telnet все, что вам нужно, — это эмулятор терминала и адрес компьютера, к которому вы хотите подключиться.

Есть много терминальных эмуляторов. Большинство из них бесплатны. В этом случае мы будем использовать популярный термин Tera. В качестве демонстрации мы подключимся к службе Telnet, которая использует текст ASCII, чтобы пересказать весь первый фильм «Звездные войны».

Обычно в традиционном терминальном приложении вы набираете «telnet», затем пробел и адрес службы. Вам также может понадобиться указать порт в команде, обычно это порт 23 для Telnet. Тем не менее, Tera Term имеет графический интерфейс, поэтому все, что нам нужно сделать, это заполнить экран следующим образом.

Как вы можете сказать, адрес для этой услуги — towel.blinkenlights.nl. Когда все настроено, как указано выше, просто нажмите ОК, и это произойдет.

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

Telnet не является внутренней или внешней командой

Данная ошибка появляется в том случае, если данный клиент не установлен на персональном компьютере. Необходимо выполнить следующие действия:

  • открываем «Панель управление»;
  • переходим в «Программы» и в левом столбце «Включение или отключение компонентов Windows»;
  • в открывшемся окне находим «Клиент Telnet» и отмечаем данный чекбокс, жмем «Ок».

Второй способ:

  • необходимо открыть командную строку от имени администратора;
  • в окне требуется ввести «dism /online /Enable-Feature /FeatureName:TelnetClient»;
  • если список компонентов не отображается, выполняем правку реестра;
  • сочетанием клавиш «Win+R» запускаем утилиту «Выполнить»;
  • раскрываем древо и находим «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows»;
  • далее находим значение «CSDVersion» и параметр «200» меняем на «0».

Как настроить удаленный доступ к компьютеру

TELNET позволяет пользователю установить TCP-соединение с сервером и затем передавать коды нажатия клавиш так, как если бы работа проводилась на консоли сервера. TELNET (RFC-854, в некоторых реализациях tn) служит для выполнения удаленного доступа к вычислительным ресурсам и базам данных (например, к базам ядерных данных в Вене, Брукхейвене или STN-international в Карлсруэ). Для входа в базу данных или ЭВМ обычно нужна аутентификация (ввод имени-идентификатора пользователя и его слова-пропуска). В некоторых реализациях допускается использование параметров, которые подключают необходимые эмуляторы терминалов.

TELNET предлагает три услуги:

  1. Определяет сетевой виртуальный терминал (NVT — network virtual terminal), который обеспечивает стандартный интерфейс к удаленной системе.
  2. Включает механизм, который позволяет клиенту и серверу согласовать опции обмена
  3. Обеспечивает симметрию соединения, допуская любой программе (например FTP) выступать в качестве клиента

Протокол TELNET позволяет обслуживающей машине рассматривать все удаленные терминалы как стандартные «сетевые виртуальные терминалы» строчного типа, работающие в кодах ASCII, а также обеспечивает возможность согласования более сложных функций (например, локальный или удаленный эхо-контроль, страничный режим, высота и ширина экрана и т. д.). На прикладном уровне над TELNET находится либо программа поддержки реального терминала, либо прикладной процесс в обслуживающей машине, к которому осуществляется доступ с терминала. Формат NTV достаточно прост. Для данных используются 7-битовые ASCII коды. 8-битовые же октеты зарезервированы для командных последовательностей.

Telnet взаимодействует с другой ЭВМ через протокол TELNET. Если команда TELNET вводится без аргументов ЭВМ переходит в командный режим, напечатав приглашение telnet>. В этом режиме она воспринимает и исполняет команды, описанные ниже.

При вводе TELNET с аргументами программа осуществит связь вашей ЭВМ с удаленным компьютером, имя или адрес которого вы ввели в качестве одного из аргументов.

После того как TELNET связь установлена, начинаются переговоры об используемых опциях (см. табл. 4.5.3.1). Каждая из договаривающихся сторон может послать другой один из четырех запросов will, do, wont и dont (см табл. 4.5.3.4).

Далее TELNET переходит в режим ввода. В этом режиме любой введенный текст пересылается удаленной ЭВМ. Ввод может производиться посимвольно или построчно. При посимвольном режиме каждый введенный символ пересылается немедленно, при построчном режиме отклик на каждое нажатие клавиши производится локально, а пересылка выполняется лишь при нажатии клавиши . Некоторые опции требуют дополнительных данных, такая информация ожет быть получена с помощью субопций (RFC-1091). При этом клиент посылает трехбайтовую последовательность IAC WILL 24, где 24 — код-идентификатор терминала. Получатель может откликнуться последовательностью IAC DO 24, если все в порядке. Сервер в свою очередь посылает последовательность IAC SB 24 1 IAC SE, запрашивая тип терминала клиента. Здесь код 24 означает, что это субопция для опции типа терминала (см. табл. 4.5.3.1), а следующая 1 является командой «пришлите код вашего терминала». Клиент в свою очередь может откликнуться, послав последовательность — IAC SB 24 0 I B M P C IAC SE. Здесь байт 0 имеет значение «мой терминал имеет тип». Список кодов терминалов содержится в RFC-1700.

Таблица 4.5.3.1. Коды опций в Telnet

Код опции в Telnet

Описание Номер RFC
0 Двоичный обмен 856
1 Эхо 857
2 Повторное соединение NIC 15391
3 Подавление буферизации ввода 858
4 Диалог о размере сообщения NIC 15393
5 Статус 859
6 Временная метка 860
7 Удаленный доступ и отклик 726
8 Длина выходной строки nic 20196
9 Размер выходной страницы nic 20197
10 Режим вывода символов 652
11 Вывод горизонтальной табуляции 653
12 Установка положения табуляции при выводе 654
13 Режим вывода команды смены страницы 655
14 Вывод вертикальной табуляции 656
15 Определяет положение вертикальной табуляции 657
16 Режим вывода символа 658
17 Расширенный набор кодов ASCII 698
18 Возврат (logout) 727
19 Байт-макро 735
20 Терминал ввода данных 732
21 Supdup 736
22 Supdup вывод 747
23 Место отправления 779
24 Тип терминала 930
25 Конец записи 885
26 Tacacs- идентификация пользователя 927
27 Пометка вывода 933
28 Код положения терминала 946
29 Режим 3270 1041
30 X.3 PAD 1053
31 Размер окна 1073

Когда связь с удаленной ЭВМ уже осуществлена, переход в командный режим может быть выполнен с помощью нажатия ‘^]’ (escape).

В этом режиме доступны команды:

open имя_ЭВМ [ порт ] open открывает связь с ЭВМ, имя которой указано в обращении. Если номер порта явно не указан, telnet пытается использовать для связи с сервером номер порта по умолчанию. Вместо имени ЭВМ-сервера может использоваться ее IP-адрес.
display [ аргумент … ] Отображает все, или часть, набора параметров telnet (см. описание команды send).
close Закрывает сессию telnet и возвращает систему в командный режим.
quit Закрывает любую сессию telnet.
mode type Управляет режимом ввода («построчный» или «посимвольный»). Удаленной машине посылается запрос на переход в соответствующий режим. Если она готова (способна) работать в запрошенном режиме, будет произведено соответствующее переключение.
status Отображает текущий статус telnet. В перечень информации входит имя удаленной ЭВМ и действующий режим обмена.
? [ команда ] Выдает справочную информацию о команде, название которой приведено в качестве аргумента
send arguments Посылает удаленной ЭВМ один или несколько символьных аргументов. В качестве аргументов могут использоваться: escape, synch, brk, ip, ao, ayt, ecel, ga и др. Смотри таблицу 4.5.3.3.
escape Посылает escape символ (например, `^]’).
SYNCH Посылает synch-последовательность. Эта последовательность позволяет аннулировать все, что было до этого напечатано, но еще не считано. Эта последовательность посылается как срочная (важная) TCP-информация (может не сработать, если удаленной системой является 4.2 BSD). Если она не сработала, на терминал будет послан символ «r».
brk Посылает Break-последовательность при нажатии клавиши Break (Pause). (Исчерпывающую информацию об аргументах можно найти в описании используемого программного обеспечения или с помощью команд Help или Man)
set argument value Присваивает любому числу переменных telnet новые значения. Специальное значение «off» выключает функцию, соответствующую данной переменной

Значения переменных можно узнать с помощью команды display. Такими переменными могут быть: echo, escape, interrupt, quit, flushoutput, erase, kill, eof, echo. Последняя переменная (в исходном состоянии `^E’) в построчном режиме осуществляет переключение между локальным эхо на ввод символа (режим по умолчанию) и подавлением эхо, например при вводе пароля. Переменные процедуры telnet представлены в таблице 4.5.3.2.

Практически стандарт TELNET описан во многих RFC документах, которые определяют различные варианты реализации этой команды. Список опций команды telnet приведен в таблице 4.5.3.1 (не все эти возможности доступны в конкретных программных продуктах).

Таблица 4.5.3.2. Переменные telnet

Название переменной Назначение
Echo Определяет, будет ли отображаться на экране то, что вы вводите с клавиатуры. При значении off ввод не отображается, например, при вводе пароля.
Escape Задает символ, который используется в качестве escape. Появление этого символа во входном потоке заставляет его и последующие символы интерпретироваться в ЭВМ, где функционирует процесс telnet, как команда
Interrupt Специфицирует символ прерывания процесса. Ввод его приводит к остановке процесса пользователя, работающего на удаленной ЭВМ.
Quit Специфицирует символ, который используется пользователем на его клавиатуре для выполнения команд brake или attention.
Flushoutput Определяет символ, который служит для прерывания процедуры вывода на удаленной ЭВМ.
EOF Специфицирует символ, который используется для обозначения конца файла на удаленной машине.

Таблица 4.5.3.3. Последовательности символов, используемые совместно с командой send

Последовательность символов Назначение
? Отображает справочную информацию о команде send
escape Посылает символ escape (без прерывания посылки символов для Telnet)
ip Посылает протокольную последовательность telnet. Удаленная машина должна прервать процесс, запущенный для вас.
ec Посылает протокольную EC-последовательность telnet. Удаленная ЭВМ должна стереть последний напечатанный вами символ
el Посылает протокольную EL-последовательность TELNET. Удаленная ЭВМ должна стереть последнюю напечатанную вами строку.
ao Посылает протокольную AO-последовательность TELNET. Удаленная ЭВМ должна направить весь вывод на ваш терминал.
brk Посылает протокольную BRK-последовательность TELNET. Удаленная ЭВМ должна обеспечить отклик.
ayt Посылает протокольную AYT-последовательность TELNET (Are You There). Удаленная ЭВМ должна обеспечить отклик.

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

Таблица 4.5.3.4. Коды команд TELNET

Имя субкоманды TELNET Код Описание
EOF 236 Признак конца файла
SUSP 237 Отложить исполнение текущего процесса
ABORT 238 Абортировать процесс
EOR 239 Конец записи
NOP 241 Никаких действий
DM(Метка данных) 242 Блок данных процедуры SYNCH
BRK (Остановка) 243 brk-символ (break);
IP(Прерывание процесса) 244 IP-функция
io (Прерывание вывода) 245 AO-функция
AYT (Вы здесь?) 246 ayt-функция
EC (Стереть символ) 247 EC-функция
EL (Стереть строку) 248 EL-функция
GA (Продолжайте) 249 GA-функция
SB 250 Начало субопции
SE 240 Завершение согласования параметров (конец субопции)
Will («будет») 251 Начало исполнения (опционно)
Won’t (не будет) 252 Отказ исполнения или продолжения выполнения (опционно)
Do(«исполнить») 253 Индицирует запрос, который другая система исполняет (опционно)
Don’t («Нет») 254 Требует, чтобы другая система остановила исполнение (опционно)
IAC 255 Интерпретируется как начало командной последовательности

Операция прерывание процесса (IP) позволяет прервать, удалить или завершить процесс пользователя (например, выйти из бесконечного цикла).

Процедура прерывание вывода (AO) позволяет процессу пользователя продолжаться, но вывод на его рабочую станцию прерывается, при этом очищается буфер от уже записанной, но не отображенной информации.

Запрос «Вы здесь?» (AYT) удобен, когда необходимо выяснить выполняется ли пользовательская задача или нет.

Операция стереть символ (EC) позволяет пользователю удалить символ из потока данных, применяется для редактирования текста на экране.

Операция стереть строку (EL) позволяет пользователю при редактировании удалить целую строку.

Команда «go ahead» (GA, «продолжайте») устанавливает полудуплексный режим передачи данных. Каких-либо воздействий на удаленную ЭВМ обычно не производит. В таблице 4.5.3.5 приведен список комбинаций клавиш, нажатие которых вызывает определенный результат.

Таблица 4.5.3.5. Управляющие комбинации клавиш

Комбинация клавиш Достигаемый результат
Ctrl+E Echo
Ctrl+] Escape
Ctrl+? Erase
Ctrl+O flushoutput
Ctrl+C Interrupt (прерывание исполнения программы)
Ctrl+U Kill
Ctrl+\ Quit
Ctrl+D EOF

Блок данных процедуры TELNET содержит три байта и называется командой. Формат этого блока показан на рис. 4.5.3.1.

Рис. 4.5.3.1. Формат блока данных Telnet

Первый байт в соответствии с таблицей содержит 8 единиц, далее следует байт команды (табл. 4.5.3.4). Третий октет служит для размещения кода опции, он может и отсутствовать.

Рассмотрим несколько примеров этих команд. Допустим, вы хотите, чтобы обмен данными производился в виде 8-битовых посылок. Для реализации вашего пожелания достаточно выдать команду:

IAC WILL TRANSMIT-BINARY,

которая в цифровых кодах выглядит как — (255 251 0).

Для прекращения этого (двоичного) режима передачи нужно выдать команду:

IAC DON’T TRANSMIT-BINARY (255 254 0).

Субкоманды Telnet позволяют управлять откликом при работе с клавиатурой. Обычно отклик-эхо присылается удаленной ЭВМ, реже формируется локально. Для включения отклика можно выдать команду: IAC WILL ECHO (255 251 1) (часто это реализовано по умолчанию). Далее можете поупражняться самостоятельно и проверить какие команды и их опции доступны в используемом вами программном продукте.

При работе с Telnet рекомендуется сначала ознакомиться с конкретными возможностями команды с помощью описания (или F10/?). Это позволит вам, например, спасать результаты поиска в файле с указанным вами именем и т.д. Например, для PCTCP такая команда выдаст на экран:

Telnet with VT220 and 3270 emulation, escape character is alt-F10 or F10 Copyright (c) 1989-1992 by FTP Software, Inc. All rights reserved.

? display this help message a sends Telnet AYT request
^h debugging command help b send Telnet Interrupt Process
o write receive data to output file z send Telnet Abort output
i read keystrokes from an input file t send Telnet Break
c close connection gracefully ! escape to command interpret
q/Q quit current/all telnet connections I show local internet address
F toggle build-in FTP-server on/off U turn status line on
W toggle FTP server write-protect mode u turn status line off
0-9 switch to connection # s Enable pop-up TSR with hot-key
p Select code page remapping S Toggle screen-saver key-passing

————————— VT220 emulator commands ——————————

R Enter key send CR l local echo mode
N Enter key send newline (CRLF) r remote echo mode
E send characters as typed w turn end-of-line wrap on
E send line when ENTER is typed d turn end-of-line wrap off
B set emulator mode (VT52|100|220)
D

—————————- 3270 emulator commands —————————-

y set Yale NULL Processing off Y set Yale NULL Processing on

Многие telnet-клиенты позволяют также указывать явно номер порта, через который должна быть установлена связь. По умолчанию это порт 23. Обычный пользователь не интересуется, через какой порт он работает. Но иногда желательно реализовывать telnet через разные порты системы, обеспечивающие различные услуги, это бывает полезно и с отладочными целями. Используя команду:

telnet XXXXXX.domain

можно осуществить связь через порт с заданным номером с узлом XXXXXX.domain. Многие библиотеки используют метод портов для обеспечения доступа к своим ресурсам внешних Inernet-пользователей. Ссылки на RFC-документы по протоколу TELNET смотрите в приложении. Помимо telnet существуют и другие стандартные процедуры, выполняющие схожие задачи.

SUN Microsistems разработала и широко использует программный модуль RPC (Remote Procedure Call, RFC-1057), он используется для удаленного вызова программ почти во всех системах, базирующихся на UNIX. RPC может использоваться как на TCP, так и UDP транспортных уровнях.

Для удаленного исполнения программ может служить команда REXECD, которая активно используется на IBM-системах в рамках ОС AIX и DOS. Уязвимость протокола Telnet для хакеров привела к тому, что в последнее время эта утилита часто заменяется SSH (Secure Shell) или другими программами, обеспечивающими безопасный удаленный доступ.

Рейтинг
( 1 оценка, среднее 4 из 5 )
Понравилась статья? Поделиться с друзьями: