Home » Команда telnet в Linux/Unix — быстрое руководство
Команда telnet в Linux/Unix — быстрое руководство

Команда telnet в Linux/Unix — быстрое руководство

Если ты когда-нибудь сталкивался с задачей быстро проверить, открыт ли порт на сервере, или хотел “пощупать” руками, как работает какой-нибудь сервис на удалённой машине, то наверняка слышал про telnet. Эта статья — твой быстрый, но подробный гид по команде telnet в Linux/Unix. Разберёмся, зачем она нужна, как работает, как её настроить и использовать, а также рассмотрим реальные кейсы, плюсы и минусы, альтернативы и даже немного гиковских лайфхаков. Всё — чтобы ты мог не только понять, но и сразу применить знания на практике.

О чём вообще речь и почему это важно?

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

Почему стоит знать telnet? Потому что иногда нужно быстро проверить, слушает ли сервер нужный порт, или отправить “сырое” сообщение на сервис (например, SMTP, POP3, HTTP) — и вот тут telnet спасает время и нервы. Это must-have в арсенале любого, кто работает с серверами, сетями, хостингом или просто любит разбираться, что происходит “под капотом”.

Как это работает?

Telnet — это клиент-серверный протокол, работающий поверх TCP. Клиент (твоя машина) инициирует соединение с сервером (удалённый хост) на определённом порту. После установления соединения ты получаешь интерактивную сессию, где можешь отправлять команды или данные напрямую на сервер. В классическом варианте telnet используется для подключения к терминалу, но чаще всего его применяют для:

  • Проверки доступности порта (например, открыт ли 25 порт для SMTP)
  • Тестирования работы сервисов (HTTP, SMTP, POP3, IMAP, Redis, Memcached и т.д.)
  • Отладки сетевых соединений и firewall-правил
  • Автоматизации простых сетевых задач через скрипты

Важно: telnet не шифрует трафик, поэтому для реального администрирования серверов его использовать не стоит — только для диагностики и тестирования.

Как быстро и просто всё настроить?

В большинстве современных дистрибутивов Linux/Unix telnet-клиент не установлен по умолчанию (безопасность, мать её!). Но поставить его — дело одной команды.

  • Debian/Ubuntu: sudo apt update && sudo apt install telnet
  • CentOS/RHEL: sudo yum install telnet
  • Fedora: sudo dnf install telnet
  • Arch Linux: sudo pacman -S inetutils (telnet входит в inetutils)
  • macOS: brew install telnet (если нет Homebrew — brew.sh)

После установки можно сразу использовать команду telnet для подключения к нужному хосту и порту.

Базовые команды и примеры использования

Вот несколько типовых сценариев, которые реально встречаются в жизни:

  • Проверить, открыт ли порт на сервере:


telnet example.com 80

Если порт открыт, увидишь что-то вроде “Connected to example.com”. Если нет — будет ошибка “Connection refused” или “Unable to connect”.

  • Проверить работу SMTP-сервера:


telnet mail.example.com 25

Должен появиться баннер SMTP-сервера (например, “220 mail.example.com ESMTP Postfix”). Можно руками отправить команды HELO, MAIL FROM, RCPT TO и т.д.

  • Проверить HTTP-сервис (сырое подключение):


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

(после Host: обязательно пустая строка!) — увидишь ответ сервера с HTTP-заголовками и HTML-кодом.

  • Проверить Redis:


telnet localhost 6379
PING

В ответ — “+PONG”.

  • Проверить Memcached:


telnet localhost 11211
stats

В ответ — статистика Memcached.

Положительные и отрицательные кейсы (таблица)

Кейс Что происходит Рекомендация
Проверка порта на сервере telnet показывает “Connected” — порт открыт ОК, сервис работает, можно двигаться дальше
Проверка порта, но “Connection refused” Порт закрыт или сервис не слушает Проверь firewall, настройки сервиса, слушает ли нужный порт
Проверка SMTP, но нет ответа Сервер не отвечает, возможно, блокировка на уровне сети Проверь маршрутизацию, firewall, доступность сервера
Использование telnet для администрирования Передача паролей в открытом виде НЕ ДЕЛАЙ ТАК! Используй SSH для администрирования
Тестирование HTTP через telnet Можно увидеть “сырые” ответы сервера Отлично для отладки нестандартных проблем

Практические советы и лайфхаки

  • Telnet — отличный инструмент для проверки firewall-правил. Если с твоей машины не получается подключиться к порту, попробуй с другой — возможно, проблема в маршрутизации или фильтрации.
  • Можно использовать telnet в скриптах для автоматизации тестов доступности сервисов (например, через expect или timeout).
  • Для быстрой проверки порта можно использовать nc (netcat) — он более гибкий, но telnet проще для “ручных” тестов.
  • Если нужно проверить SSL/TLS-порт, используй openssl s_client — telnet не поддерживает шифрование.
  • Telnet можно использовать для “ручного” общения с любым TCP-сервисом — от HTTP до кастомных протоколов.

Похожие решения и альтернативы

  • nc (netcat): Более современный и гибкий инструмент для работы с TCP/UDP. Позволяет не только подключаться, но и слушать порты, пересылать файлы и т.д. nmap.org/ncat
  • nmap: Для сканирования портов и диагностики сервисов. nmap.org
  • openssl s_client: Для тестирования SSL/TLS-соединений. openssl.org/docs
  • ss, netstat: Для локального просмотра открытых портов и соединений.

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

Статистика и сравнение с другими решениями

Инструмент Плюсы Минусы Когда использовать
telnet Простота, доступность, интерактивность Нет шифрования, устаревший протокол Быстрая диагностика, ручное тестирование портов
nc (netcat) Гибкость, поддержка UDP, скрипты Сложнее синтаксис, не всегда установлен Автоматизация, сложные сценарии
nmap Мощное сканирование, отчёты Медленнее, требует больше ресурсов Аудит безопасности, массовое сканирование
openssl s_client Тестирование SSL/TLS, подробные логи Только для защищённых соединений Проверка HTTPS, SMTPS, IMAPS и т.д.

Интересные факты и нестандартные способы использования

  • Через telnet можно было играть в текстовые онлайн-игры (MUD) и даже подключаться к сервису Star Wars ASCII (telnet towel.blinkenlights.nl — попробуй, если не видел!).
  • Некоторые старые устройства (принтеры, роутеры, IoT) до сих пор используют telnet для настройки — иногда это единственный способ “залезть внутрь”.
  • Telnet можно использовать для отправки тестовых писем через SMTP вручную — отличный способ понять, как работает почта на низком уровне.
  • В некоторых случаях telnet помогает “разбудить” зависший сервис — подключение к порту может инициировать его перезапуск (особенно на старых системах).

Автоматизация и скрипты: новые возможности

Telnet можно интегрировать в bash-скрипты для автоматизации тестов доступности сервисов. Например, с помощью expect можно автоматизировать ввод команд и обработку ответов. Это удобно для CI/CD пайплайнов, мониторинга и даже для массовых проверок серверов.


#!/usr/bin/expect -f
set timeout 5
spawn telnet example.com 25
expect "220"
send "HELO test.com\r"
expect "250"
send "QUIT\r"
expect eof

Такой скрипт проверяет, что SMTP-сервер отвечает, и завершает соединение. Можно расширять под свои задачи.

Для массовых проверок портов на десятках серверов можно использовать цикл в bash:


for host in server1 server2 server3; do
echo "Checking $host:80"
(echo > /dev/tcp/$host/80) && echo "Port 80 open" || echo "Port 80 closed"
done

(Этот трюк работает в bash 4+ и zsh, но не во всех шеллах.)

Выводы и рекомендации

Telnet — это не просто олдскульная команда, а мощный инструмент для диагностики, тестирования и отладки сетевых сервисов. Его простота и интерактивность делают его незаменимым для быстрой проверки портов, тестирования сервисов и даже автоматизации рутинных задач. Да, для реального администрирования лучше использовать SSH и современные инструменты, но для диагностики и “ручного” тестирования telnet — must-have.

  • Используй telnet для быстрой проверки портов и сервисов.
  • Не применяй его для передачи чувствительных данных — трафик не шифруется!
  • Для автоматизации интегрируй telnet с expect или bash-скриптами.
  • Если нужен VPS или выделенный сервер для экспериментов — закажи VPS или выделенный сервер на нашем сервисе.
  • Изучи альтернативы (nc, nmap, openssl s_client) — иногда они удобнее для сложных задач.

В общем, не стесняйся использовать telnet, когда нужно быстро “пощупать” сеть. Это как мультитестер для электрика — просто, надёжно, всегда под рукой. Удачи в сетевых приключениях!


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

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

Leave a reply

Your email address will not be published. Required fields are marked