Блог компании 3v-Hosting

Команда Telnet и ее использование в Linux

Администрирование

9 мин.


Хотя в современных средах она в значительной степени заменена более безопасными альтернативами, такими как SSH, команда telnet остается универсальным и легким инструментом для проверки базовой сетевой связи, устранения неполадок в службах на основе TCP и тестирования простых взаимодействий с удаленными службами. В экосистеме Linux Telnet служит быстрым способом открытия TCP-соединений и наблюдения за необработанными протокольными коммуникациями между клиентом и сервером.

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

 

 

 

 

Краткий обзор Telnet 

 

Telnet, сокращение от «Teletype Network», является одним из самых ранних протоколов удаленного доступа, разработанных для сетей TCP/IP. Его основная цель - обеспечить доступ к удаленным системам через командную строку. Telnet по умолчанию работает через TCP-порт 23 и позволяет пользователям взаимодействовать с удаленными машинами через интерфейс виртуального терминала.

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

 

 

 

 

Установка Telnet в Linux

 

Большинство современных дистрибутивов Linux по умолчанию не включают telnet из соображений безопасности. Однако его установка проста:


В системах на базе Debian/Ubuntu:

    sudo apt update
    sudo apt install telnet


В RHEL/CentOS/Fedora:

    sudo dnf install telnet

После установки бинарный файл telnet становится доступным в системном пути, обычно как /usr/bin/telnet.

 

 

 

 

Основной синтаксис и использование Telnet

 

Общий синтаксис telnet следующий:

    telnet [хост] [порт]

Например, чтобы проверить, открыт ли порт 80 на веб-сервере:

    telnet example.com 80

Если соединение установлено успешно, терминал переключится в интерактивный режим, в котором пользователь может вводить HTTP-запросы вручную. Это чрезвычайно полезно при проверке, отвечает ли веб-сервер как ожидается.

 

Вот пример команды telnet, которая отправляет базовый HTTP-запрос:

    telnet example.com 80
    GET / HTTP/1.1
    Host: example.com

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

Этот пример демонстрирует реальную мощь telnet - он не привязан к конкретному протоколу приложения. Вместо этого он позволяет осуществлять необработанное взаимодействие TCP, что делает его идеальным для тестирования любых служб на основе TCP, включая SMTP, POP3, FTP, Redis и даже пользовательские службы.

 

 

 

 

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

 

1. Проверка подключения к порту

Одним из наиболее распространенных способов использования telnet является проверка доступности определенного порта на удаленном хосте. Это особенно полезно при отладке проблем с брандмауэром или NAT.

Пример:

    telnet 192.168.1.100 22

Если вы видите сообщение «Connected» (Подключено), порт открыт. Если вы получаете сообщение «Connection refused» (Подключение отказано) или «Connection timed out» (Время ожидания подключения истекло), порт либо закрыт, либо заблокирован.


2. Тестирование почтовых серверов (SMTP)

Telnet часто используется для имитации отправки электронной почты вручную через SMTP в целях устранения неполадок или в образовательных целях.

    telnet mail.example.com 25

Затем:

    HELO test.local
    MAIL FROM:<test@example.com>
    RCPT TO:<admin@example.com>
    DATA
    Subject: Test mail

    This is a test message.
    .
    QUIT


3. Отладка FTP или других протоколов

Аналогичным образом можно проверить, правильно ли работает FTP-сервер или другой настраиваемый TCP-сервис.

    telnet ftp.example.com 21

Ответ обычно начинается со следующего:

    220 (vsFTPd 3.0.3)


4. Тестирование Redis или Memcached

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

    telnet localhost 6379

Затем введите:

    PING

Ожидаемый ответ:

    +PONG

 


 

Другие статьи на тему Linux в нашем Блоге:


    - Как использовать команду find в Linux

    - Ошибка 405 и как ее исправить

    - Настройка доступа к серверу по SSH ключу

    - 10 полезных консольных утилит для мониторинга Linux-сервера

 


 

 

Управление сеансом telnet и специальные команды

 

Во время активного сеанса telnet поддерживает символы экранирования и команды сеанса. По умолчанию Ctrl+] переводит вас в режим команд telnet, где вы можете вводить различные команды telnet, такие как:

    quit: выход из сеанса
    send ao: прерывание вывода
    status: проверка текущего состояния соединения
    open host port: открытие нового соединения
    ? или help: отображение доступных команд (известно как telnet help)

Эти функции управления позволяют управлять несколькими сеансами или диагностировать поведение без завершения процесса терминала.

 

 

 

 

Последствия использования Telnet для безопасности

 

Поскольку Telnet не шифрует трафик, его использование в ненадежных сетях представляет значительный риск для безопасности. Любые передаваемые данные, включая учетные данные для входа и содержимое сеанса, могут быть перехвачены злоумышленниками с помощью инструментов для перехвата пакетов, таких как Wireshark.

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

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

 

 

 

 

Telnet в скриптах и автоматизации

 

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

Пример использования telnet с expect:

    #!/usr/bin/expect
    spawn telnet example.com 23
    expect «login:»
    send «myuser\r»
    expect «Password:»
    send «mypassword\r»
    interact

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

 

 

 

 

Сравнение Telnet в Linux и Windows

 

В Windows клиент telnet по умолчанию отключен в последних версиях (таких как Windows 10/11), но его можно включить через:

    Панель управления → Программы и компоненты → Включение или отключение компонентов Windows → Клиент Telnet


После включения вы можете запустить telnet из командной строки cmd, используя тот же синтаксис:

    telnet example.com 80

Это называется методом cmd telnet и функционирует аналогично Linux. Однако Windows предлагает меньшую гибкость в плане сценариев и обработки сеансов.

В обеих системах пользователи могут ввести telnet /?, чтобы получить встроенную справку по telnet, хотя в Windows она более ограничена.

 

 

 

 

Альтернативы Telnet

 

В современных безопасных средах telnet часто заменяют:

    nc (netcat): аналогичен по назначению, но более гибкий и удобный для написания скриптов.
    curl или wget: для взаимодействия с HTTP-сервисами.
    ssh: для безопасного доступа к терминалу.
    nmap: для детального сканирования портов.

Тем не менее, telnet остается актуальным, когда целью является простота, необработанный доступ или быстрая проверка подключения.

 

 

 

 

Заключение

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

Независимо от того, моделируете ли вы SMTP-диалог, тестируете доступность TCP-порта или наблюдаете за поведением сервиса, Telnet предоставляет непревзойденный, простой подход. Хотя он не подходит для использования в производственной среде из-за рисков безопасности, понимание его функциональности необходимо для профессионалов, управляющих сетевыми системами или устраняющих неполадки в них.