- Home »

Команда 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, когда нужно быстро “пощупать” сеть. Это как мультитестер для электрика — просто, надёжно, всегда под рукой. Удачи в сетевых приключениях!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.