Немногие пользователи компьютера сегодня знают о существовании различных специальных протоколов на компьютере, позволяющих без использования графического интерфейса и сторонних программ выполнять различные действия. Поэтому сразу возникает желание узнать, как пользоваться службой TELNET, когда узнают о соответствующем протоколе.
Далее будут изложено немного теории о том, что такое TELNET, то, ради чего многие и стремятся ей овладеть: возможности службы, а также список основных команд, позволяющий эти возможности осуществить на Windows .
TELNET - это средство связи, которое устанавливает транспортное соединение между терминальными устройствами, клиентами, то есть вашим компьютером и чьей-то ещё машиной, сервером, поддерживающей этот стандарт соединения. Это не специальная программа, а всего лишь сетевой протокол, но также словом TELNET (terminalnetwork) называют различные утилиты, которые также используют этот протокол. Сегодня Телнет присутствует практически везде, все ОС, так или иначе, его используют, в
TELNET реализует текстовый интерфейс, который отличается от привычного рядовому пользователю графического тем, что все команды необходимо вбивать вручную.
Ранее эта служба была одним из немногих способов подключения к сети, но с течением времени утратила свою актуальность. Сегодня есть гораздо более удобные программы, которые делают за пользователя всю работу, и не заставляют его заучивать наизусть различные команды для того, чтобы выполнить простейшие действия. Однако кое-что при помощи Телнет можно сделать и сейчас.
Подключения к сети
При помощи Телнет вы можете:
Запустить TELNET на Windows 7 и на любой другой Винде достаточно просто. Для этого необходимо сначала клиент, если он ещё не установлен:
После нажимаем «ОК» и ждём минуту, пока клиент устанавливается.
Запуск терминала осуществляется в Windows через командную строку, если у вас не установлено каких-либо специальных утилит для работы с Телнет. Но раз вы читаете эту статью, значит, только начинаете знакомство с этой темой, и для начала неплохо бы было освоить основы управления при помощи командной строки.
Командная строка перезагружается, и теперь откроется командная линия TELNET, в которой мы и будем работать.
Одно из простейших действий, выполняемых в TELNET - проверка порта . Вы можете проверить порт на наличие доступа к нему с вашего компьютера. Для этого нужно сделать следующее:
В командной строке, открытой по методу выше вводим: telnetip-адрес номер порта
К примеру, если ваш IP-адрес 192.168.0.1, а номер порта 21 (порт FTP), то вводим:
telnet 192.168.0.1 21
Если команда выдаёт сообщение об ошибке, значит, порт недоступен. Если появляется пустое окно или просьба ввести дополнительные данные, значит, порт открыт. Для Windows такой способ проверить порт может быть достаточно удобным.
Команды TELNET составляют основу использования терминала. С их помощью можно управлять компьютером , который использует этот протокол, если для вас разрешён доступ, а также совершать другие различные действия. Как уже сказано выше, на Windowsони вводятся в командной строке приложения Телнет.
Для того чтобы увидеть основной список команд, введите в строке help и нажмите «Enter». Базовые команды:
TELNET - один из старейших протоколов, но при этом он до сих пор применяется. Это означает, что и вы можете начать использовать его в своих целях. Для этого нужно лишь изучить синтаксис и список команд и начать практиковаться. Вы можете почерпнуть много нового, а заодно совсем по-другому начать смотреть на интернет и на привычные ранее действия в сети.
Протокол прикладного уровня TELNET (от англ. TE rminaL NET work) - сетевой протокол для реализации текстового интерфейса по сети. Название telnet получили также клиентские программы реализации данного протокола, практически для всех существующих операционных систем. Протокол Telnet – один из старейших сетевых протоколов, разрабатывавшихся как средство связи между удаленными терминалами в тестовом режиме. Поэтому в нем не предусмотрено шифрование данных и использование современных средств проверки подлинности. Протокол уязвим для множества сетевых атак, и не может использоваться в качестве средства управления сетевыми операционными системами. В настоящее время, для удалённого доступа к системе применяется сетевой протокол SSH (Secure SHell), при создании которого упор делался именно на вопросы безопасности. Относительная безопасность сессий Telnet осуществляется только в полностью контролируемой сетевой среде или с применением защиты на сетевом уровне (различные реализации VPN - виртуальных частных сетей). Тем не менее, TELNET по-прежнему применяется для управления специализированными сетевыми устройствами (Коммутаторами, роутерами и т.п.), а также для сетевой диагностики, выполнения отладки и изучения других текст-ориентированных (telnet-like) протоколов на основе транспорта TCP. Современный стандарт протокола Telnet описан в RFC 854.
В современных ОС семейства Windows, утилита telnet.exe по умолчанию, не устанавливается. Для ее установки нужно перейти в Панель управления - Программы и Компоненты – Включение или отключение компонентов Windows и установить галочку для Клиент Telnet . Или в командной строке, запущенной от имени администратора, выполнить команду:
pkgmgr /iu:"TelnetClient"
Формат командной строки:
telnet [-a][-e Символ][-f Файл][-l Имя][-t Тип][Узел [Порт]]
Параметры командной строки:
-l Имя пользователя для входа в удаленную систему при условии, что поддерживается параметр TELNET ENVIRON.
-a Попытка автоматического входа в систему. Как и ключ -l, но использует текущее имя пользователя, под которым выполнен вход в систему.
-e Служебный символ переключения режима ввода в окне telnet-клиента.
-f Имя файла журнала на стороне клиента. В русскоязычной справке этот параметр неверно трактуется как Файл_входа - “Имя файла со стороны клиента для выполнения входа в систему”.
-t Тип telnet-терминала. Поддерживаются 4 типа терминалов: vt100, vt52, ansi и vtnt.
Узел Имя узла или IP-адрес удаленного компьютера, к которому выполняется подключение. Порт Номер порта или имя службы. Если номер не задан, то используется стандартный порт Telnet 23\TCP
При запуске без параметров, утилита переходит в режим ожидания ввода команд:
Добро пожаловать в программу-клиент Microsoft Telnet
Microsoft Telnet>
При вводе символа ? или help отображается справочная инвормация:
Команды могут быть сокращены. Поддерживаемыми командами являются:
c - close - закрыть текущее подключение
d - display - отобразить параметры операции
o - open имя_узла [Порт] - подключиться к сайту (по умолчанию, Порт = 23)
q - quit - выйти из telnet
set - set - установить параметры ("set ?" для вывода их списка)
sen - send - отправить строки на сервер
st - status - вывести сведения о текущем состоянии
u - unset - сбросить параметры ("unset ?" для вывода их списка)
? /h - help - вывести справку
Некоторые из команд позволяют получить подсказку по использовании, при вводе с символом вопроса:
Telnet> set ? - получить подсказку по использованию команды установки режимов. Пример отображаемой информации:
bsasdel - символ BackSpace Delete
crlf - режим возврата каретки; приводит к отправке символов CR & LF
delasbs - символ Delete будет отправляться как символ BackSpace
escape x - где x - символ переключения в режим telnet-терминала и обратно
localecho - включение локального эха.
logfile x - где x - файл журнала. В русском переводе неверно трактуется как "Файл входа текущего клиента в систему"
logging - запись текущей сессии в журнал. В русском переводе неверно трактуется как "выполнение входа в систему"
mode x - где x=console - консольный режим, используемый для работы с оконными приложениями (редактор vi) и x=stream - потоковый режим, используемый для работы в командной строке.
ntlm - включение проверки подлинности NTLM.
term x - тип эмулируемого терминала. Где x - ansi, vt100, vt52, или vtnt.
Для получения подсказки по отмене установленных параметров используется команда
Microsoft Telnet> unset ?
bsasdel - символ BackSpace будет отправляться как символ Delete
crlf - режим перевода строки; приводит к отправке символа CR
delasbs - символ Delete будет отправляться как символ Backspace
escape - символ переключения в режим telnet-терминала и обратно не задан
localecho - отключение локального эха
logging - отключение записи журнала. В русскоязычной весии неверно трактуется как "отключение выполнения входа в систему"
ntlm - отключение проверки подлинности NTLM.
Примеры команд в интерактивном режиме:
open 192.168.0.1 - подключиться к серверу Telnet с IP-адресом 192.168.0.1
o zte-f660 - подключиться к Telnet-серверу с именем zte-f660 . Используется сокращение команды o pen
set logfile C:\telnet.log - использовать в качестве файла журнала C:\telnet.log
set logging - выполнять запись текущей сессии в файл журнала.
display - отобразить параметры текущей сессии. Пример отображаемой информации:
Символ переключения режима: "CTRL+]"
Проверка подлинности NTLM - включена
Вывод локального эха - отключен
Режим новой строки - Символ ВВОД будет отправляться как CR & LF
Текущий режим: Потоковый
РЕЖИМ ТЕРМИНАЛА
Предпочитаемый тип терминала ANSI
    На практике, утилита telnet.exe используется как средство диагностики и отладки для подключения не только к серверу Telnet на TCP порт 23, но и на любой другой TCP-порт, тем самым, позволяя взаимодействовать с любым приложением, управляемым командной строкой. Так, например, с использованием утилиты telnet можно подключиться к серверам, поддерживающим текстовый (telnet-like) ввод команд и данных - SMTP, POP3, IMAP и т.п. Кроме этого, утилиту можно использовать в качестве средства грубой проверки возможности подключения на любой TCP-порт (проверки слушается ли определенный порт TCP).
telnet 192.168.1.1 8080 - подключиться к узлу 192.168.1.1 на порт 8080. В тех случаях, когда порт закрыт, утилита сообщит о невозможности подключения. Причем, для проверки доступности определенного порта даже необязательно, чтобы он слушался службой с поддержкой текстового ввода, как например, сервер VNC. Для отключения от удаленного сервера необходимо ввести символ переключения режима (по умолчанию - CTRL+] ).
Утилиту telnet.exe можно использовать, например, для обмена с почтовым сервером по протоколу POP3 (Post Office Protocol ver. 3). Данный протокол используется почтовыми клиентскими программами (Outlook, Outlook Express, The Bat и т.д.) для получения электронной почты, хранящейся в почтовом ящике пользователя. Это простейший протокол, в основе которого лежит обмен текстовыми сообщениями. С целью изучения взаимодействия почтового клиента с почтовым сервером, можно реализовать сеанс подключения с помощью TELNET.
Стандартно сервер POP3 ожидает входящие соединения по протоколу TCP на порт 110 ("слушает" порт tcp/110). Команда telnet для подключения к серверу, например pop.mail.ru
telnet pop.mail.ru 110
Если сервер работоспособен, в окне telnet появится его приглашение
+OK mPOP POP3 v1.1
user [email protected]
После чего, сервер предложит ввести пароль:
OK Password required for user [email protected]
Нужно ввести пароль
pass VasinPass
Сервер сообщит результат проверки пароля:
Можно запросить список писем директивой list:
list
В ответ на это, сервер выдаст список и размеры писем в почтовом ящике:
OK 10 messages (152527 octets)
1 48628
      1-это порядковый номер, 48628 - размер
2 1829
3 2070
:
При необходимости можно посмотреть заголовки писем. Для этого используется команда top порядковый номер, пробел, число строк из тела сообщения
top 2 0
В ответ на это, вы увидите заголовок письма, содержащий служебную информацию об отправителе, дате отправки, обратном адресе и некоторые другие данные:
Received: from (HELO mx1.ks.pochta.ru)
by node7-1.ks.pochta.ru with QIP.RU LMTP
for [email protected];
Fri, 08 Apr 2011 15:18:33 +0400
Received: from mx3.softkey.ru ()
:
:
Для приема писем используется директива retr порядковый номер
retr 2 - принять письмо с порядковым номером 2
Для удаления письма, используется директива dele порядковый номер Например, для удаления 2-го письма из списка, полученного директивой list :
Если удаление прошло успешно, сервер выдаст сообщение:
OK message 2 deleted
Иногда, команду TELNET можно использовать и для идентификации службы, слушающей указанный порт, поскольку многие из них при подключении отображают либо свой баннер, либо специфическую служебную информацию. Например, приветствие FTP-сервера: 220-FileZilla Server version 0.9.43 beta
220-written by Tim Kosse ([email protected])
220 Please visit http://sourceforge.net/projects/filezilla/
А так выглядит экран при подключении к серверу RealVNC:
RFB 003.008
Network Virtual Terminal , NVT); вторая, принцип оговоренных опций; третья, симметричный вид терминалов и процессов.Вероятно, что сразу после установки TELNET соединения, запросы опций будут шквалом передаваться в обоих направлениях соединения, из-за того, что каждая сторона будет пытаться получить наилучший сервис от другой стороны. Кроме того, опции могут быть использованы для динамического изменения характеристик соединения с тем, чтобы соответствовать изменяющимся локальным условиям. Например, ВСТ, как будет описано ниже, использует дисциплину передачи, хорошо подходящую для многих приложений "строка за раз" (таких как BASIC), но плохо подходит для приложений "символ за раз" (таких как NLS). Сервер мог бы выделить дополнительное процессорное время требуемое для дисциплины "символ за раз" если это подходит для локального процесса и договориться о соответствующей опции. Хотя, вместо того, чтобы надолго обременяться дополнительной тратой процессорного времени, можно переключиться (т.е. договориться) вернуться назад к ВСТ, когда детальный контроль больше не требуется.
Возможно что запросы, инициированные процессами, будут способствовать незаконченному циклу запроса, в случае когда процесс отвечает отказом на повторный запрос опции. Для исключения такой ситуации отклоненные запросы не должны быть повторены, пока что либо не измениться. Операционно, это может означать, что процесс начал выполнять другую программу или пользователь дал другую команду, или что либо случилось в контексте данного процесса или опции. Необходимо принять за правило то, что повторный запрос может быть послан только как результат более поздней информации с другой стороны или в случае локального вмешательства человека.
Проектировщики опции не должны себя чувствовать стесненными несколько ограниченным синтаксисом для оговоренной опции. Смысл простого синтаксиса состоит в том, чтобы упростить принятие опции. Если некоторая специфическая опция требует более сложной структуры согласований чем имеющаяся в "DO, DON"T, WILL, WON"T", то необходимо сначала договориться через существующую структуру согласований, а после того, как обе стороны удостоверятся в понимании этой опции, использовать свободно более экзотический синтаксис. Например, одна из сторон могла бы послать запрос на изменение (установку) длинны строки. Если он принимается, то может быть использован отличный от базового синтаксис для того, чтобы фактически договориться о длине строки; такие "под-согласования" могли бы включать поля для минимально, максимально и желательных длин строки. Важно то, что такие расширенные согласования никогда не должны начинаться, пока "стандартные" переговоры не привели к тому, что обе стороны могут понимать расширенный синтаксис.
В итоге, WILL XXX посылается одной из двух сторон, для того чтобы показать желание (предложение) стороны исполнять опцию XXX, DO XXX и DON"T XXX являются подтверждением и отвержением опции XXX соответственно, на запрос WILL XXX; аналогично, DO XXX отправляется для того, чтобы показать желание другой стороны (т.е. получателя DO) начать исполнять опцию XXX, WILL XXX и WON"T XXX являются подтверждением и отвержением опции XXX соответственно, на запрос DO XXX. Так как ВСТ - это то, что остается когда никакие опции не включены, ответы DON"T и WON"T гарантируют что соединение останется в состоянии которым обе стороны могут управлять. Таким образом, все хосты могут реализовать свои TELNET процессы так, чтобы они вообще не знали об опциях которые не поддерживаются, просто возвращая отвержение (т.е. отказываясь от опции) на любой запрос опции, которую данный процесс не может понять.
Протокол TELNET был сделан максимально симметричным по отношению к связке пользователь-сервер, для того, чтобы он легко и естественно покрывал случаи пользователь-пользователь и сервер-сервер. Желательно, но не обязательно, чтобы опции сохраняли этот принцип. В любом случае явно признается, что симметрия - это принцип, а не правило.
Сопутствующий документ "TELNET Option Specifications" предназначен для того, чтобы черпать из него информацию о процедуре написания новых опций.
Виртуальный Сетевой Терминал (ВСТ) является двунаправленным символьным устройством. У ВСТ есть принтер и клавиатура. Принтер отвечает за входящие данные, а клавиатура производит исходящие данные, которые передаются по TELNET соединению и если необходимо "эхо" - то эти данные так же передаются и на принтер ВСТ. Предполагается, что "эхо" не будет передаваться по сети (хотя существуют опции, которые позволяют включать "удаленный" режим эха операции, но хост не обязан поддерживать эту опцию). Набор символов - это семибитовый USASCII в восьмиразрядном поле, кроме изменений описанных в данном документе. Любое преобразование кодировки и анализ времени - это локальные проблемы и не затрагивают ВСТ.
Хотя сетевому TELNET подключению свойственен полный дуплекс, ВСТ должен рассматриваться как полудуплексное устройство, работающее в буферизированном строковом режиме. Таким образом пока стороны не договорились об опциях, следующие условия должны выполняться по умолчанию для передачи данных по TELNET соединению:
Вышесказанное, конечно, не относится к направлению соединения пользователь-сервер. В этом направлении, GA можно отправить в любой время, но эта команда в этом направлении никогда не должна посылаться. Кроме того, если TELNET соединение используется для коммуникации типа процесс-процесс, то команду GA нельзя отправлять ни в одном из направлений. И в заключении, для соединения терминал-терминал, команда GA может не потребоваться в одном или обоих направлениях. Если хост планирует поддерживать соединение типа терминал-терминал, предполагается, что такой хост предоставит пользователю возможность вручную сообщить, когда нужно отправить команду GA; это требование не является обязательным для реализующего сторону типа "процесс".
Отметим, что симметричная модель TELNET требует, по крайней мере концептуально, чтобы ВСТ присутствовал на каждом конце TELNET соединения.
Как уже говорилось во Введении к этому документу, основная цель протокола TELNET - это обеспечить стандартный сетевой интерфейс терминальным устройствам и терминал-ориентированным процессам. Ранний опыт с этим типом соединения показал, что определенные функции осуществимы для большинства серверов, а вот методы вызова этих функций достаточно широко различаются. Для человека, который взаимодействует с несколькими серверными системами, эти отличия представляют достаточно большое неудобство. Поэтому ниже будет приведено стандартное представление для пяти функций. Эти стандартные представления являются стандартом, но не требуются в обязательном порядке (за исключением функции Interrupt Process (IP), которая может понадобиться другим протоколам, которые используют TELNET); то есть система, которая не предоставляет функцию локальным пользователям не должна предоставлять ее и сетевым пользователям и может обрабатывать стандартное представление для функции как пустую команду (No-operation). С другой стороны, система, которая предоставляет функцию локальному пользователю, обязана предоставлять ту же самую функцию и сетевому пользователю, который передает стандартное представление для функции.
Многие системы предоставляют функцию которая приостанавливает, прерывает, аварийно прекращает или обрывает деятельность пользовательского процесса. Эта функция часто используется, когда пользователь полагает, что его процесс находится в бесконечном цикле или когда был активизирован нежелательный процесс. IP - это стандартное представление для вызова этой функции. Необходимо отметить, что IP может потребоваться другим протоколам, которые используют TELNET, и поэтому эта функция должна быть реализована, если такие протоколы поддерживаются реализацией.
Многие системы предоставляют функцию, которая позволяет процессу, который генерирует вывод, завершаться (или достигнуть той же самой точки останова, которой он бы достиг, если бы добрался до завершения), но без отправки вывода на пользовательский терминал. Затем, эта функция обычно очищает любой уже произведенный вывод, но еще фактически не напечатанный (или отображенный) на терминале пользователя. AO - это стандартное представление для того, чтобы вызвать эту функцию. Например, некоторая подсистема могла бы принять команду пользователя, послать длинную текстовую строку на терминал пользователя как ответ, и наконец сообщить о готовности принять следующую команду, посылая символ "prompt" (упреждая его) на пользовательский терминал. Если бы AO была получена во время передачи текстовой строки, то реализация должна былв бы подавить остаток текстовой строки, но передать символ prompt упреждающие. (Это отличается от действия, которое могло быть предпринято, при получении IP; IP мог бы вызвать подавление текстовой строки и выход из подсистемы.)
Следует отметить, что серверные системы, которые предоставляют эту функцию должны иметь в виду, что могут быть внешние к системе буфера (сетевые или на пользовательском локальном хосте) которые должны быть очищены; соответствующий способ сделать так, это передать сигнал "Synch" (описанный ниже) пользовательской системе.
Многие системы предоставляют функцию которая предоставляет пользователю видимое (например, напечатанное) доказательство, что система функционирует и выполняется. Эта функция может быть вызвана пользователем, когда система неожиданно "затихает" на продолжительное время, из-за непредвиденно (для пользователя) длительных вычислений, необычно тяжелой системной нагрузки, и т.д. AYT - стандартное представление, чтобы вызвать эту функцию.
Многие системы предоставляют функцию, которая удаляет последний символ перед не удаляемым символом или "позицией печати" из потока данных поставляемого пользователем. Эта функция обычно используется, чтобы редактировать ввод с клавиатуры, когда были сделаны ошибки при печати. EC - стандартное представление для того, чтобы вызвать эту функцию.
Примечание
: "Позиция печати"
может содержать несколько символов, которые являются результатом наложений, или последовательностей, таких как
Многие системы предоставляют функцию, которая удаляет все данные в текущей "строке" ввода. Эта функция обычно используется, чтобы редактировать ввод с клавиатуры. EL стандартное представление для того, чтобы вызвать эту функцию.
Многие системы с разделением времени (многозадачные системы) предоставляют механизмы, которые позволяют пользователю терминала восстанавливать управление над "бесконечным" процессом; функции IP и AO, описанные выше, являются примерами этих механизмов. Такие системы, когда они используются локально, имеют доступ ко всем сигналам которые вводит пользователь, являются ли они обычными символами или специальными сигналами, такими как поддерживаемая телетайпом кнопка "BREAK" или IBM 2741 кнопка "ATTN". Это не всегда так, когда терминалы подключены к системе через сеть; сетевые механизмы могут заставить такой сигнал быть забуферизированным в другом месте, например на хосте пользователя.
Чтобы решить эту проблему, в TELNET был введен механизм "Synch". Сигнал Synch включается в TCP Urgent notification (срочное уведомление) вместе с TELNET командой DATA MARK. Срочное уведомление, которое не подвергается дополнительному управлению сетевыми механизмами, управляющие TELNET соединением, используется, чтобы вызвать специальную обработку потока данных процессом, который получает эти данные. В этом режиме поток данных будет немедленно просканирован на предмет "интересных" сигналов как описано ниже, отказываясь от пришедших данных. TELNET команда DATA MARK (DM) является меткой синхронизации в потоке данных, которая указывает, что некоторый специальный сигнал уже попался и получатель может возвратиться к нормальной обработке потока данных.
Synch отправляется через TCP отправкой операции с флагом Urgent и DM как последним октетом данных.
Когда несколько Synch отправляются как непрерывная последовательность, срочные уведомления могут быть объединены. Невозможно посчитать количество срочных уведомлений, так как количество полученных будет меньше или равно количеству отправленных. В обычном режиме, DM не имеет действия; в срочном режиме, он сообщает конец срочной (urgent) обработки.
Если TCP указывает на конец срочных (urgent) данных раньше, чем будет найден DM, TELNET должен продолжить специальную обработку потока данных, пока не встретиться DM.
Если TCP указывает на то, что срочные (urgent) данные еще есть, после того как найдет DM, то такое может случиться из-за следующего Synch. TELNET должен продолжить специальную обработку данных, пока другой DM не будет найден.
"Интересные" сигналы определены, чтобы быть: стандартными TELNET представлениями IP, AO и AYT (но не EC или EL); локальными аналогами этих стандартных представлений; всеми другими TELNET командами; другими определенными по месту сигналами которые могут задействоваться без задержки сканирования потока данных.
Так как один из эффектов механизма SYNCH - это отказ от всех символов (исключая TELNET команды) между отправителем Synch и получателем, то этот механизм определен как стандартный путь очистки данных. Например, если пользователь в терминале передает AO, сервер, который получает AO (если он вообще обеспечивает эту функцию) должен вернуть пользователю Synch.
В итоге, так же как TCP Urgent notification требуется уровень TELNET как сигнал out-of-band, так и другим протоколам использующим TELNET, могут понадобиться TELNET команды, которые могут рассматриваться как out-of-band сигналы на различном уровне.
В соответствии с соглашением последовательность должна использоваться как такой сигнал. Например, предположим, что некоторый другой протокол, который использует TELNET, определяет строковую строку STOP аналогично TELNET команде AO. Предположим, что пользователь этого протокола желает, чтобы сервер обработал строку STOP, но соединение блокировано, потому что сервер обрабатывает другие команды. Пользователь должен проинструктировать свою систему:
Пользователь (или процесс действующий от его имени) должен передать последовательность TELNET SYNCH на шаге 2, чтобы гарантировать, что TELNET IP пройдет на серверном интерпретаторе TELNET.
Срочное уведомление должно разбудить процесс TELNET; IP должен разбудить следующий высокоуровневый процесс.
Принтер ВСТ имеет неопределенную ширину каретки и длину страницы и может произвести представление всех 95 USASCII график символов (коды с 32 по 126). Только следующие из 33 управляющих кодов USASCII (от 0 до 31, а так же 127), и 128 открытых кодов (128-255) имею смысл для принтера ВСТ:
Кроме того, следующие коды должны быть определены, но не требуют эффекта от принтера ВСТ. Ни на какое из концов TELNET соединения не может предполагать, что другая сторона будет что-то предпринимать при получении или передачи следующего:
Название | Код | Описание |
---|---|---|
BELL (BEL) | 7 | Производит аудио или видеосигнал (но НЕ перемещает головку принтера). |
Back Space (BS) | 8 | Перемещает головку принтера на один символ по направлению к левой границе. |
Horizontal Tab (HT) | 9 | Перемещает принтер на следующую остановку горизонтальной табуляции. Остается неопределенным как сторона определяет и устанавливает эти остановки табуляции. |
Vertical Tab (VT) | 11 | Перемещает принтер на следующую остановку вертикальной табуляции. Остается неопределенным как сторона определяет и устанавливает эти остановки табуляции. |
Form Feed (FF) | 12 | Перемещает принтер к верхней части следующей страницы, оставаясь на той же горизонтальной позиции. |
Все остальные коды не должны заставлять ВСТ предпринимать какие либо действия.
Последовательность "CR LF", как определено, заставит ВСТ перейти на крайнюю левую позицию следующей строки печати (так же как, например, последовательность "LF CR"). Однако, есть много систем и терминалов которые не обрабатывают CR и LF независимо, и нужно потратить некоторые усилия, чтобы смоделировать этот эффект. (Например, у некоторых терминалов нет независимого CR от LF, но на таких терминалах можно реализовать CR через backspacing.) Поэтому, последовательность "CR LF" должна обрабатываться как единый символ "новая строка" и использоваться всякий раз, когда требуется их объединенное действие; последовательность "CR NUL" должна использоваться, где требуется требуется только возврат каретки; и использования символа CR следует избегать в других контекстах. Это правило дает гарантию системам, которые должны решить, выполнять ли функцию "новая строка" или выполнять множественный backspace когда TELNET поток содержит символ CR, принять рациональное решение.
Примечание: Последовательности "CR LF" или "CR NUL" должны использоваться в обоих направлениях (в режиме ASCII по умолчанию), для сохранения симметрии ВСТ. И даже в том случае если известно (например, с удаленным эхом или эффектом подавления опции Go Ahead), что символы не передаются на реальный принтер, для согласованности, протокол требует, чтобы NUL был вставлен после CR, не сопровождаемого переводом строки в потоке данных. Обратная сторона того, что NUL будет получен в потоке данных после CR (если отсутствуют согласованные опции, которые определяют иное поведение), это то, что NUL должен быть удален до применения ВСТ к локальному набору символов.
Клавиатура ВСТ должна имеет клавиши, или комбинации клавиш, или последовательности клавиш для воспроизведения всех 128 кодов USASCII. Отметим, что хотя некоторые из них не будут иметь никакого эффекта для принтера ВСТ, клавиатура ВСТ способна их генерировать.
В доплнение к этим кодам, клавиатура ВСТ должна быть способна к генерации следующих дополнительных кодов, исключая, как было описано, определенные, но не требуемые значения. Фактическое определение кодов для этих "символов" находится в разделе "Команды TELNET", потому, что они рассматриваются как данность и являются в некотором сиысле универсальными и должны быть доступны даже когда поток данных интерпретируется в другой кодировке.
Название | Описание |
---|---|
Synch | Эта клавиша позволяет пользователю очищать свой информационный канал на другой стороне. Активация этой клавиши отправляет DM (смотри раздел команд) в поток данных и TCP Urgent notification которое связанно с DM. |
Break (BRK) | Этот код предоставляется из-за того, что он вне набора USASCII, который в настоящее время используется на многих локальных системах. Этот код предназначен для указания того, что нажата одна из кнопок "Break" или "Attention". Стоит отметить, что это определено, чтобы обеспечить 129-ый код для систем, которые этого требуют, но не как синоним для представления стандартного IP. |
Interrupt Process (IP) | Приостанавливает, прерывает, аварийно прекращает или завершает процесс к которому подключен ВСТ. Кроме того, он может быть использован как часть out-of-band сигнала для других протоколов, которые используют TELNET. |
Abort Output (AO) | Позволяет текущему процессу выполниться до конца, но не отправляет его вывод пользователю. Так же отправляет сигнал Synch пользователю. |
Are You There (AYT) | Отправляет назад на ВСТ некоторый видимое доказательство того, что AYT был получен. |
Erase Character (EC) | Получатель должен удалить последний символ, предшествующий "неудаляемому символу" или "позиции печати", из потока данных. |
Erase Line (EL) | Получатель должен удалить символы из потока данных до (но не включая) последней последовательности "CR LF". |
Смысл этих "дополнительных" клавиш, а так же исполнительных элеменов принтера в том, что они должны представлять естественное расширение отображения, которое обязательно должно присутствовать в "ВСТ" и "локальной системе". Так же как байт данных ВСТ 68 (104 в восьмеричной системе) должен быть отображен в локальный код для "заглавной D", так же и символ EC должен быть отображен в то, что локально отвечает за функцию "удаление символа". Далее, так же как отображение для 124 (174 в восьмеричной системе) в некоторых системах интерпретируется несколько произвольно как символ "вертикальной полосы", так и символ EL может иметь несколько произвольную трактовку отображения (или не иметь отображения вообще) если не имеется никакой локальной функции "Стирания строки". Подобное истинно и для других исполнительных элементов формата: если терминал имеет "вертикальную табуляцию", то отображение для VT очевидно, а если терминал не имеет вертикальной табуляции, то еффект VT непредсказуем.
Все команды TELNET состоят по крайне мере из двухбайтовой последовательности: эскейп символа "Interpret as Command" (IAC) и кода команды. Команды, отвечающие за договоренности по опции, являются трехбайтовыми последовательностями, где третий байт является кодом опции. Такой формат был выбран для более полного использования "пространства данных" - при общении с базовым ВСТ, и соответственно колизии байт данных с получаемыми командами сведены к минимуму. С текущей структурой только IAC требует удвоения, чтобы он воспринимался как данные, а другие 255 кодов могут быть отправлены как есть.
Название | Код | Описание |
---|---|---|
SE | 240 | Конец параметров подчиненных договоренностей. |
NOP | 241 | Нет операции. |
Data Mark | 242 | Часть потока данных Synch. Эта команда всегда сопровождается TCP Urgent notification. |
Break | 243 | ВСТ символ BRK. |
Interrupt Process | 244 | Функция IP. |
Abort output | 245 | Функция AO. |
Are You There | 246 | Функция AYT. |
Erase character | 247 | Функция EC. |
Erase Line | 248 | Функция EL. |
Go ahead | 249 | Сигнал GA. |
SB | 250 | Указывает на то, что все что идет далее, является подчиненными договоренностями обозначенной опции. |
WILL (option code) | 251 | Указывает на желание исполнять или подтверждает, что сейчас исполняется указанная опция. |
WON"T (option code) | 252 | Указывает на отказ начать или продолжить исполнять указанную опцию. |
DO (option code) | 253 | Запрос на то, чтобы другая сторона исполнила или подтвердила исполнение указанной опции. |
DON"T (option code) | 254 | Требование на то, чтобы другая сторона остановила исполнение или подтвердила то, что указанная опция более не исполняется. |
IAC | 255 | Байт данных 255. |
TELNET TCP соединение устанавливается между пользовательским портом U и серверным портом L. Сервер слушает свой порт L для того, чтобы установить такие соединения. Так как соединение TCP - это полный дуплекс и идентифицируется парой портов, сервер может участвовать одновременно во многих соединениях вовлекающих его порт L и различные пользовательские порты U.
Если протокол используется для удаленного доступа пользователя к сервисам хоста (т.е. удаленный терминальный доступ) то он назначается на порт 23 (27 в восьмеричной системе). Т.е. L=23.
Исторически Telnet служил для удалённого доступа к интерфейсу командной строки операционных систем . Впоследствии его стали использовать для прочих текстовых интерфейсов, вплоть до игр MUD и анимированного ASCII-art . Теоретически, даже обе стороны протокола могут являться программами, а не человеком.
Иногда клиенты telnet используются для доступа к другим протоколам на основе транспорта TCP, см. .
Протокол telnet используется в управляющем соединении
В протоколе не предусмотрено использование ни шифрования , ни проверки подлинности данных. Поэтому он уязвим для любого вида атак , к которым уязвим его транспорт, т.е. протокол TCP. Для функциональности удалённого доступа к системе в настоящее время применяется сетевой протокол виртуальных частных сетей). По причине ненадёжности от Telnet как средства управления операционными системами давно отказались.
Использование команды telnet предоставляет возможность установки канала связи с компьютерами на расстоянии.
А сама утилита представляет собой практически своеобразный эмулятор браузера в терминале, поддерживающий несколько сетевых протоколов.
Раньше telnet часто использовался для того чтобы управлять ПК с операционной системой «Линукс».
А сейчас с помощью этой же утилиты тестируют сеть, проверяют порты, управляют роутерами и другими IoT-устройствами.
Содержание:Несмотря на то, что главной задачей telnet является создание связи между удалёнными друг от друга ПК по одноимённому протоколу, с помощью утилиты можно управлять и другими сервисами.
Например, получать доступ к POP3, HTTP, IRC или SMTP.
Ведь эти и некоторые другие сервисы работают на базе транспортного протокола TCP, для работы с которым можно пользоваться клиентом telnet.
Синтаксис команд telnet при подключении к удалённому компьютеру выглядит следующим образом: $ telnet (опции) (хост) (порт).
Хост представляет собой домен того компьютера, к которому проводится подключение. Порт – порт на том компьютере, с которого осуществляется доступ. А опции могут быть следующими:
После того как соединение с удалённым хостом установлено утилита telnet начинает работу в одном из двух режимов – построчном или посимвольном.
Первый вариант наиболее предпочтительный из-за возможности редактирования текста прямо на и отправления его только после того, как пользователь полностью набрал всю информацию.
Недостатком такого построчного режима является отсутствие его поддержки некоторыми сервисами. В то время как посимвольный можно применять в любом случае.
Однако при его использовании вся информация отправляется на моментально.
И, если пользователь допустил ошибку, исправить её будет невозможно – ведь даже пробелы и Backspace отправляются на сервер в виде символов.
Следует знать: При использовании протокола telnet отсутствует возможность шифрования передачи информации. Все данные отправляются напрямую и могут быть перехвачены посторонним пользователем. И передавать их таким способом не рекомендуется – желательно применять для этого защищённый сетевой протокол Secure Shell.
Работая с протоколом telnet, пользователь вводит в консоли соответствующие команды. К самым популярным относят следующие:
Рис. 2. Использование команды Quit в клиенте MS Telnet.
Все эти команды являются основными, хотя общее их количество намного больше. Однако из-за достаточно редкого применения этой утилиты полный их перечень проще всего найти, введя в терминале HELP .
А, после вывода на экран полного списка, получить справочную информацию о каждой командной последовательности с помощью команды «?».
Хотя, например, для клиента telnet в Windows перечень может оказаться сокращённым.
Рис. 3. Список команд telnet в клиенте Microsoft.
Как вы уже могли убедиться, если читали мой пост о настройке Telnet в Windows, работать с этой службой достаточно легко. Можно запустить его без аргументов, указав в командной строке лишь адрес хост-системы. При определенных обстоятельствах еще нужно указать конкретный порт. Первое сообщение, которое видит пользователь, после выполнения команды “ telnet “, посылается самой программой, а после установления связи между клиентом и сервером выводятся сообщения, исходящие от управляемой системы. В связи с этим с удаленной операционной системой можно работать через Telnet таким же образом, как это происходит в случаях с другими специализированными программами дистанционного доступа к ОС. Теперь давайте присмотримся к данной службе поближе и разберем наиболее часто используемые команды Telnet .
open узел порт – применяется для установки соединения с заданным узлом;
close – закрывает существующее соединение;
quit – выход из текущего сеанса Telnet;
display – позволяет просмотреть текущие параметры Telnet-клиента;
set – с ее помощью возможно задать Telnet-параметры текущей сессии , а конкретно:
unset – выполняет отключение различных параметров сессии Telnet (обратные операции по отношению к set), а именно:
status – используется с целью проверки наличия подключения к Telnet-клиенту;
enter – применяется для перехода в существующий подключенный сеанс Telnet;
Или help – отображение справочной информации.
Закончив с делами на удаленной машине, вам нужно будет закрыть соединение с ней. При этом работа самого Telnet завершается не всегда. Чтобы выйти в командную строку Telnet, воспользуйтесь горячими клавишами “Ctrl+]” .