<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Telnet</id>
	<title>Telnet - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Telnet"/>
	<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=Telnet&amp;action=history"/>
	<updated>2026-07-16T17:46:08Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://camokathomelab.servebeer.com/mediawiki/index.php?title=Telnet&amp;diff=1016&amp;oldid=prev</id>
		<title>imported&gt;Sa4ko: /* Устройство */ пунктуация</title>
		<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=Telnet&amp;diff=1016&amp;oldid=prev"/>
		<updated>2024-10-24T14:44:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Устройство: &lt;/span&gt; пунктуация&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Карточка протокола&lt;br /&gt;
|Аббр = Telnet&lt;br /&gt;
|Название = Teletype Network&lt;br /&gt;
|Уровень = Прикладной&lt;br /&gt;
|Семейство = [[TCP/IP]]&lt;br /&gt;
|Порт = 23/TCP&lt;br /&gt;
|Назначение = виртуальный [[текстовый терминал]]&lt;br /&gt;
|Спецификация = RFC 854 / {{Inet-note-ref|type=std|id=8|text=STD 8}}&lt;br /&gt;
|Клиенты =&lt;br /&gt;
* telnet (Unix)&lt;br /&gt;
* [[PuTTY]]&lt;br /&gt;
* {{nobr|telnet.exe (Windows)}}&amp;lt;ref&amp;gt;Находится в &amp;lt;code&amp;gt;%SystemRoot%\System32\telnet.exe&amp;lt;/code&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Серверы = &lt;br /&gt;
* telnetd&lt;br /&gt;
* MS Telnet&lt;br /&gt;
|Расширяемость = Опции (RFC 855)&lt;br /&gt;
|Создан = 1972}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TELNET&amp;#039;&amp;#039;&amp;#039; (сокр. от {{lang-en|&amp;#039;&amp;#039;&amp;#039;Tel&amp;#039;&amp;#039;&amp;#039;etype &amp;#039;&amp;#039;&amp;#039;Net&amp;#039;&amp;#039;&amp;#039;work}}) — [[сетевой протокол]] для реализации текстового [[компьютерный терминал|терминального интерфейса]] по [[компьютерная сеть|сети]] (в современной форме — при помощи транспорта [[TCP]]). Название «telnet» имеют также некоторые утилиты, реализующие клиентскую часть протокола. Современный [[стандарт]] протокола описан в RFC 854.&lt;br /&gt;
&lt;br /&gt;
Выполняет функции протокола [[Прикладной уровень|прикладного уровня]] [[Сетевая модель OSI|модели OSI]]. Протокол telnet использовался для [[Удаленное администрирование|удалённого администрирования]] различными [[Сетевые устройства|сетевыми устройствами]] и [[Сервер (программное обеспечение)|программными серверами]], но уступил [[SSH]] из-за безопасности. Тем не менее может являться единственной возможностью взаимодействовать через [[Интерфейс командной строки|CLI]] со [[Встраиваемая система|встраиваемыми системами]], например, с [[маршрутизатор]]ами, так как на них отсутствует ssh.&lt;br /&gt;
&lt;br /&gt;
== Введение ==&lt;br /&gt;
Назначение протокола TELNET — в предоставлении достаточно общего двунаправленного восьмибитного байт-ориентированного средства связи. Его основная задача заключается в том, чтобы позволить терминальным устройствам и терминальным процессам взаимодействовать друг с другом. Предполагается, что этот протокол может быть использован для связи вида терминал-терминал («связывание») или для связи процесс-процесс («распределенные вычисления»).&lt;br /&gt;
&lt;br /&gt;
== Устройство ==&lt;br /&gt;
Хотя в сессии Telnet выделяют клиентскую и серверную стороны, протокол на самом деле полностью симметричен. После установления транспортного соединения (как правило, TCP) оба его конца играют роль «сетевых виртуальных терминалов» ({{lang-en|Network Virtual Terminal}}, NVT), обменивающихся двумя типами данных:&lt;br /&gt;
* Прикладными данными (то есть данными, которые идут от [[пользователь|пользователя]] к текстовому приложению на стороне сервера и обратно);&lt;br /&gt;
* &amp;#039;&amp;#039;Командами&amp;#039;&amp;#039; протокола Telnet, частным случаем которых являются &amp;#039;&amp;#039;опции&amp;#039;&amp;#039;, служащие для уяснения возможностей и предпочтений сторон.&lt;br /&gt;
Хотя Telnet-сессии, выполняющейся по TCP, свойственен полный [[Дуплекс (телекоммуникации)|дуплекс]], NVT должен рассматриваться как полудуплексное устройство, работающее по умолчанию в буферизированном строковом режиме.&lt;br /&gt;
&lt;br /&gt;
Прикладные данные проходят через протокол без изменений&amp;lt;ref&amp;gt;&lt;br /&gt;
Данные могут подвергаться изменениям (например, может быть сброшен старший бит) в случае, если на вход одного терминала поступили&lt;br /&gt;
данные, допустимость приёма которых не была подтверждена вторым.&lt;br /&gt;
&amp;lt;/ref&amp;gt;, то есть на выходе второго виртуального терминала мы видим именно то, что было введено на вход первого. С точки зрения протокола данные представляют просто последовательность байтов ([[октет (информатика)|октетов]]), по умолчанию принадлежащих набору [[ASCII]], но при включённой опции &amp;#039;&amp;#039;Binary&amp;#039;&amp;#039; — любых.&lt;br /&gt;
Хотя были предложены расширения для идентификации [[набор символов|набора символов]]&amp;lt;ref&amp;gt;{{Inet-note-ref|type=rfc|id=2066|text=RFC 2066}} — &amp;#039;&amp;#039;Telnet Charset Option&amp;#039;&amp;#039;&amp;lt;/ref&amp;gt;, на практике ими не пользуются.&lt;br /&gt;
&lt;br /&gt;
Все значения октетов прикладных данных, кроме 0xFF (десятичное 255), передаются по транспорту как есть. Значение 0xFF передаётся последовательностью из двух октетов 0xFF. Это связано с тем, что октет 0xFF используется на транспортном уровне для кодирования опций.&lt;br /&gt;
&lt;br /&gt;
=== Опции ===&lt;br /&gt;
Протокол предоставляет по умолчанию минимальную функциональность и набор расширяющих её опций. Принцип оговорённых опций требует проводить переговоры при включении каждой из опций. Одна сторона инициирует запрос, а другая сторона может либо принять, либо отвергнуть предложение. Если запрос принимается, то опция немедленно вступает в силу. Опции описаны отдельно от протокола как такового, и их поддержка программным обеспечением произвольна. Клиенту протокола (сетевому терминалу) предписывается отвергать запросы на включение неподдерживаемых и неизвестных опций.&lt;br /&gt;
&lt;br /&gt;
=== Принтер и клавиатура NVT ===&lt;br /&gt;
Принтер NVT имеет неопределённую ширину каретки и длину страницы и должен иметь представление всех 95 печатных символов US-ASCII (коды с 32 по 126). Управляющие символы имеют следующие значения:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Название&lt;br /&gt;
! Код (десятичный/шестнадцатеричный)&lt;br /&gt;
! Описание&lt;br /&gt;
|-&lt;br /&gt;
| NULL (NUL) *&lt;br /&gt;
| 0/0x00&lt;br /&gt;
| Нет операции.&lt;br /&gt;
|-&lt;br /&gt;
| Line Feed (LF) *&lt;br /&gt;
| 10/0x0A&lt;br /&gt;
| Переводит принтер на следующую строку печати, оставаясь на той же горизонтальной позиции.&lt;br /&gt;
|-&lt;br /&gt;
| Carriage Return (CR) *&lt;br /&gt;
| 13/0x0D&lt;br /&gt;
| Перемещает принтер к левой границе текущей строки.&lt;br /&gt;
|-&lt;br /&gt;
| BELL (BEL)&lt;br /&gt;
| 7/0x07&lt;br /&gt;
| Производит аудио или видеосигнал (но НЕ перемещает головку принтера).&lt;br /&gt;
|-&lt;br /&gt;
| Back Space (BS)&lt;br /&gt;
| 8/0x08&lt;br /&gt;
| Перемещает головку принтера на один символ по направлению к левой границе.&lt;br /&gt;
|-&lt;br /&gt;
| Horizontal Tab (HT)&lt;br /&gt;
| 9/0x09&lt;br /&gt;
| Перемещает принтер на следующую остановку горизонтальной табуляции. Остаётся неопределённым, как сторона определяет и устанавливает эти остановки табуляции.&lt;br /&gt;
|-&lt;br /&gt;
| Vertical Tab (VT)&lt;br /&gt;
| 11/0x0B&lt;br /&gt;
| Перемещает принтер на следующую остановку вертикальной табуляции. Остаётся неопределённым, как сторона определяет и устанавливает эти остановки табуляции.&lt;br /&gt;
|-&lt;br /&gt;
| Form Feed (FF)&lt;br /&gt;
| 12/0x0C&lt;br /&gt;
| Перемещает принтер к верхней части следующей страницы, оставаясь на той же горизонтальной позиции.&lt;br /&gt;
|}&lt;br /&gt;
Поддержка действия символов, помеченных как *, обязательна. Прочие могут производить заданное действие или не производить никакого; одна сторона не обязана предполагать ничего определённого о поддержке конкретных необязательных управляющих символов другой стороной.&lt;br /&gt;
&lt;br /&gt;
Последовательность «CR LF» должна обрабатываться как единый символ перевода строки и использоваться всякий раз, когда требуется их объединённое действие; последовательность «CR NUL» должна использоваться, где требуется только возврат каретки; использования символа CR следует избегать в других контекстах.&lt;br /&gt;
&lt;br /&gt;
=== Структура команд Telnet ===&lt;br /&gt;
Каждая команда TELNET является многобайтовой последовательностью, начинающейся с кода 0xFF (десятичное: 255) «Interpret as Command» (IAC) и кода команды. Команды, отвечающие за договорённости по опции, являются трёхбайтовыми последовательностями, где третий байт является кодом опции. Нижеперечисленные коды и кодовые последовательности имеют соответственный смысл, только когда следуют сразу за IAC.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Название&lt;br /&gt;
! Код (десятичный/шестнадцатеричный)&lt;br /&gt;
! Описание&lt;br /&gt;
|-&lt;br /&gt;
| SE&lt;br /&gt;
| 240/0xF0&lt;br /&gt;
| Завершает согласование, начатое командой SB.&lt;br /&gt;
|-&lt;br /&gt;
| NOP&lt;br /&gt;
| 241/0xF1&lt;br /&gt;
| Нет операции.&lt;br /&gt;
|-&lt;br /&gt;
| Data Mark&lt;br /&gt;
| 242/0xF2&lt;br /&gt;
| Синхронизация (Synch) обмена данными. Эта команда всегда сопровождается TCP Urgent notification.&lt;br /&gt;
|-&lt;br /&gt;
| Break&lt;br /&gt;
| 243/0xF3&lt;br /&gt;
| Нажата кнопка «Break» или «Attention».&lt;br /&gt;
|-&lt;br /&gt;
| Interrupt Process&lt;br /&gt;
| 244/0xF4&lt;br /&gt;
| Приостанавливает, прерывает, аварийно прекращает или завершает процесс.&lt;br /&gt;
|-&lt;br /&gt;
| Abort output&lt;br /&gt;
| 245/0xF5&lt;br /&gt;
| Подавление вывода текущего процесса. Также отправляет сигнал Synch пользователю.&lt;br /&gt;
|-&lt;br /&gt;
| Are You There&lt;br /&gt;
| 246/0xF6&lt;br /&gt;
| Отправляет обратно ответ терминала, состоящий из печатных символов.&lt;br /&gt;
|-&lt;br /&gt;
| Erase character&lt;br /&gt;
| 247/0xF7&lt;br /&gt;
| Получатель должен удалить предыдущий символ, если это возможно.&lt;br /&gt;
|-&lt;br /&gt;
| Erase Line&lt;br /&gt;
| 248/0xF8&lt;br /&gt;
| Стереть последнюю введённую строку, то есть все данные, полученные после последнего перевода строки.&lt;br /&gt;
|-&lt;br /&gt;
| Go ahead&lt;br /&gt;
| 249/0xF9&lt;br /&gt;
| Ожидается передача данных.&lt;br /&gt;
|-&lt;br /&gt;
| SB&lt;br /&gt;
| 250/0xFA&lt;br /&gt;
| Начало согласования опции, требующего передачи параметров.&lt;br /&gt;
|-&lt;br /&gt;
| WILL &amp;#039;&amp;#039;опция&amp;#039;&amp;#039;&lt;br /&gt;
| 251/0xFB&lt;br /&gt;
| Указывает на желание исполнять или подтверждает, что сейчас исполняется указанная опция.&lt;br /&gt;
|-&lt;br /&gt;
| WON’T &amp;#039;&amp;#039;опция&amp;#039;&amp;#039;&lt;br /&gt;
| 252/0xFC&lt;br /&gt;
| Указывает на отказ начать или продолжить исполнять указанную опцию.&lt;br /&gt;
|-&lt;br /&gt;
| DO &amp;#039;&amp;#039;опция&amp;#039;&amp;#039;&lt;br /&gt;
| 253/0xFD&lt;br /&gt;
| Запрос на то, чтобы другая сторона исполнила или подтвердила исполнение указанной опции.&lt;br /&gt;
|-&lt;br /&gt;
| DON’T &amp;#039;&amp;#039;опция&amp;#039;&amp;#039;&lt;br /&gt;
| 254/0xFE&lt;br /&gt;
| Требование на то, чтобы другая сторона остановила исполнение или подтвердила то, что указанная опция более не исполняется.&lt;br /&gt;
|-&lt;br /&gt;
| IAC&lt;br /&gt;
| 255/0XFF&lt;br /&gt;
| Байт данных 255.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Применения ==&lt;br /&gt;
Исторически Telnet служил для удалённого доступа к [[интерфейс командной строки|интерфейсу командной строки]] [[операционная система|операционных систем]]. Впоследствии его стали использовать для прочих текстовых интерфейсов, вплоть до игр [[MUD]] и анимированного [[ASCII-art]]. Теоретически даже обе стороны протокола могут являться не только людьми, но и программами.&lt;br /&gt;
&lt;br /&gt;
Иногда клиенты telnet используются для доступа к другим протоколам на основе транспорта TCP, см. [[#Telnet и другие протоколы|Telnet и другие протоколы]].&lt;br /&gt;
&lt;br /&gt;
Протокол telnet используется в управляющем соединении [[FTP]], то есть заходить на сервер командой &amp;lt;code&amp;gt;telnet ftp.example.net ftp&amp;lt;/code&amp;gt; для выполнения отладки и экспериментов не только возможно, но и &amp;#039;&amp;#039;&amp;#039;правильно&amp;#039;&amp;#039;&amp;#039; (в отличие от применения клиентов telnet для доступа к HTTP, IRC и большинству других протоколов).&lt;br /&gt;
&lt;br /&gt;
Telnet, наряду с [[HTTP]], является основным протоколом для удалённой работы с сетевым оборудованием (управляемые коммутаторы и маршрутизаторы) и, в отличие от веб-интерфейса, предоставляет полный доступ к функциональным возможностям устройства, но при этом требует от специалиста навыков работы с командной строкой.&lt;br /&gt;
&lt;br /&gt;
== Безопасность ==&lt;br /&gt;
В протоколе не предусмотрено использование ни [[шифрование|шифрования]], ни проверки подлинности данных. Поэтому он уязвим для любого вида [[Хакерская атака|атак]], к которым уязвим его транспорт, то есть протокол TCP. Для функциональности удалённого доступа к системе в настоящее время применяется сетевой протокол [[SSH]] (особенно его версия 2), при создании которого упор делался именно на вопросы безопасности. Так что следует иметь в виду, что сессия Telnet весьма беззащитна, если только не осуществляется в полностью контролируемой сети или с применением защиты на сетевом уровне (различные реализации [[виртуальная частная сеть|виртуальных частных сетей]]). По причине ненадёжности от Telnet как средства управления операционными системами давно отказались.&lt;br /&gt;
&lt;br /&gt;
== Telnet и другие протоколы ==&lt;br /&gt;
В среде специалистов по технологиям Интернета клиент Telnet иногда используется для осуществления ручного доступа (например, в целях отладки) к таким протоколам прикладного уровня, как [[HTTP]], [[IRC]], [[SMTP]], [[POP3]] и прочим текст-ориентированным протоколам на основе транспорта TCP.&lt;br /&gt;
Однако использование клиента telnet в качестве клиента TCP может вызывать следующие нежелательные эффекты:&lt;br /&gt;
* Клиент может передать данные, которые вы не вводили (опции Telnet);&lt;br /&gt;
* Клиент не будет принимать октет 0xFF;&lt;br /&gt;
* Клиент будет искажать октет 0xFF при передаче;&lt;br /&gt;
* Клиент вообще может отказаться передавать [[октеты со старшим битом 1]].&lt;br /&gt;
&lt;br /&gt;
Такие программы, как [[netcat]], действительно обеспечивают чистый доступ к TCP, однако требуются специальные ухищрения (как то &amp;lt;code&amp;gt;[[stty]] -icrnl&amp;lt;/code&amp;gt; на UNIX-системе) для передачи [[перевод строки|перевода строки]] как CR LF (что требуется многими протоколами). Обычно клиент Telnet по умолчанию передаёт любой перевод строки как CR LF, независимо от его кодирования в системе клиента.&lt;br /&gt;
Также для отладочного доступа к прикладным протоколам (кроме FTP и, собственно, Telnet) можно использовать клиент [[PuTTY]] в режиме «Raw» (чистый доступ к TCP) — PuTTY преобразует переводы строки отдельно от поддержки протокола Telnet.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* RFC 854 TELNET protocol specification&lt;br /&gt;
* RFC 855 TELNET option specifications&lt;br /&gt;
* RFC 856 TELNET binary transmission&lt;br /&gt;
* RFC 857 TELNET echo option&lt;br /&gt;
* RFC 858 TELNET suppress Go Ahead option&lt;br /&gt;
* RFC 859 TELNET status option&lt;br /&gt;
* RFC 860 TELNET timing mark option&lt;br /&gt;
* RFC 861 TELNET extended options — list option&lt;br /&gt;
* RFC 885 Telnet end of record option&lt;br /&gt;
* RFC 1041 Telnet 3270 regime option&lt;br /&gt;
* RFC 1073 Telnet Window Size Option&lt;br /&gt;
* RFC 1079 Telnet terminal speed option&lt;br /&gt;
* RFC 1091 Telnet terminal-type option&lt;br /&gt;
* RFC 1096 Telnet X display location option&lt;br /&gt;
* RFC 1184 Telnet linemode option&lt;br /&gt;
* RFC 1205 5250 Telnet interface&lt;br /&gt;
* RFC 1372 Telnet remote flow control option&lt;br /&gt;
* RFC 1408 Telnet Environment Option&lt;br /&gt;
* RFC 1572 Telnet Environment Option (NEW-ENVIRON)&lt;br /&gt;
* RFC 2217 Telnet Com Port Control Option&lt;br /&gt;
* RFC 2941 Telnet Authentication Option&lt;br /&gt;
* RFC 2942 Telnet Authentication: Kerberos Version 5&lt;br /&gt;
* RFC 2943 TELNET Authentication Using DSA&lt;br /&gt;
* RFC 2944 Telnet Authentication: SRP&lt;br /&gt;
* RFC 2946 Telnet Data Encryption Option&lt;br /&gt;
* RFC 4248 The telnet URI Scheme&lt;br /&gt;
* RFC 4777 IBM’s iSeries Telnet Enhancements&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
{{примечания}}&lt;br /&gt;
{{URI scheme}}&lt;br /&gt;
{{IPstack}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Протоколы прикладного уровня]]&lt;br /&gt;
[[Категория:Текстовый интерфейс]]&lt;br /&gt;
[[Категория:Интернет-протоколы]]&lt;br /&gt;
[[Категория:Сетевое программное обеспечение]]&lt;br /&gt;
[[Категория:Программы удалённого администрирования]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Sa4ko</name></author>
	</entry>
</feed>