Telnet — это протокол для удалённого доступа, который передаёт все данные (включая логины и пароли) в открытом виде. Сегодня его не используют для повседневного администрирования (вместо него применяют SSH), но Telnet остаётся удобным диагностическим инструментом. С его помощью можно проверить, отвечает ли удалённый сервис на нужном порту (HTTP — 80, SMTP — 25, SSH — 22), а также вручную отправить запрос и увидеть ответ. Главные сложности при установке на Debian: в Debian 13 и 12 серверная часть требует ручного исправления файла /etc/inetd.conf (удаление пробела в начале строки), иначе порт 23 не будет слушать. Также в Debian 11 команда telnet --version не работает (старая версия).
💡 В этом руководстве вы установите Telnet-клиент (для диагностики) и, при необходимости, Telnet-сервер (для приёма входящих соединений) на Debian. Вы также узнаете, как проверить доступность портов, настроить фаервол и решить типичные проблемы.
В этой статье вы узнаете:
- Как установить Telnet-клиент (для проверки портов)
- Как установить Telnet-сервер (для входящих подключений)
- Как исправить конфигурацию inetd на Debian 13/12, чтобы сервер запустился
- Как проверить доступность портов (HTTP, SMTP, SSH) с помощью Telnet
- Как ограничить доступ к Telnet-серверу через UFW
- Как решить типичные проблемы:
Connection refused,Connection timed out, порт 23 не слушает
Для кого: системные администраторы, разработчики, а также все, кому нужно диагностировать сетевые сервисы на Debian 11, 12 или 13.
1. 🔧 Предварительные требования
Перед установкой убедитесь, что:
- У вас установлена Debian 11, 12 или 13
- Подключение к интернету стабильно
- У вас есть права sudo
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает: sudo выполняет команду от имени суперпользователя, whoami показывает имя текущего пользователя.
Зачем: Эта команда проверяет, есть ли у вас права sudo. Без них вы не сможете устанавливать пакеты.
✅ Если выводит root — всё в порядке, можете продолжать.
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
1.1 Обновление системы
Перед установкой всегда обновляйте список пакетов.
sudo apt update && sudo apt upgrade -y
Что делает:
sudo— права суперпользователяapt update— обновляет список доступных пакетов из репозиториев&&— выполняет следующую команду только если предыдущая успешнаapt upgrade -y— обновляет все установленные пакеты до последних версий
Зачем: Это стандартная практика безопасности перед установкой нового ПО.
2. 📊 Что именно устанавливать
В Debian есть два отдельных пакета для Telnet:
| Пакет | Что делает | Когда нужен |
|---|---|---|
telnet | Клиент (для проверки портов, подключения к другим серверам) | Всегда, если вы планируете использовать Telnet для диагностики |
telnetd | Сервер (принимает входящие подключения на порт 23) | Только если ваша машина должна принимать Telnet- соединения (обычно не нужно) |
💡 Рекомендация: В большинстве случаев достаточно установить только клиент (telnet). Сервер (telnetd) нужен только для очень старых или специфических систем, и его использование крайне не рекомендуется из-за отсутствия шифрования.
3. 📦 Установка Telnet-клиента
Клиент нужен для проверки портов и подключения к другим Telnet-серверам.
3.1 Установка пакета
sudo apt install telnet -y
Что делает: Устанавливает Telnet-клиент.
3.2 Проверка установки
Для Debian 13 и 12 (версия от GNU inetutils):
telnet --version
✅ Ожидаемый вывод в терминале:
telnet (GNU inetutils) 2.x
Для Debian 11 (старая версия netkit): Команда telnet --version не работает. Просто проверьте, что пакет установлен:
apt-cache policy telnet
✅ Ожидаемый вывод: Installed: 0.17+2.x
4. 📦 Установка Telnet-сервера (только при необходимости)
⚠️ Предупреждение: Telnet-сервер передаёт все данные (включая пароли) в открытом виде. Используйте его только в изолированных доверенных сетях и только если без него действительно нельзя обойтись. Для удалённого администрирования используйте SSH.
4.1 Установка сервера
sudo apt install telnetd -y
Что делает: Устанавливает Telnet-сервер и суперсервер inetd, который управляет сетевыми службами.
4.2 (Важно!) Исправление конфигурации для Debian 13 и 12
На Debian 13 и 12 после установки сервера порт 23 не будет слушать, потому что в файле /etc/inetd.conf строка для Telnet начинается с пробела. Это нужно исправить.
sudo sed -i 's/^ telnet/telnet/' /etc/inetd.conf
Что делает: Удаляет пробел в начале строки, содержащей telnet.
Проверьте, что изменилось:
grep '^telnet' /etc/inetd.conf
✅ Ожидаемый вывод: Строка, начинающаяся с telnet, а не с пробела.
4.3 Перезапуск inetd
Для Debian 13 и 12:
sudo systemctl restart inetutils-inetd.service
Для Debian 11:
sudo systemctl restart openbsd-inetd.service
4.4 Проверка, что порт 23 слушает
sudo ss -tlnp | grep ':23'
✅ Ожидаемый вывод в терминале:
LISTEN 0 4096 0.0.0.0:23 0.0.0.0:*
5. 🧪 Использование Telnet для диагностики
Telnet-клиент позволяет вручную подключаться к любому TCP-порту и отправлять данные.
5.1 Проверка HTTP-сервера (порт 80)
telnet example.com 80
После подключения введите HTTP-запрос (два раза нажмите Enter после заголовков):
GET / HTTP/1.1
Host: example.com
Connection: close
Что делает: Отправляет HTTP-запрос к серверу. Вы увидите заголовки ответа и тело страницы.
5.2 Проверка SMTP-сервера (порт 25)
telnet mail.example.com 25
После подключения введите:
HELO test.com
MAIL FROM: <test@example.com>
RCPT TO: <recipient@example.com>
DATA
Subject: Test
This is a test message.
.
QUIT
5.3 Проверка SSH-сервера (порт 22)
telnet 192.168.1.100 22
✅ Ожидаемый вывод: Баннер SSH (например, SSH-2.0-OpenSSH_9.2). Это доказывает, что порт открыт.
6. 🔥 Ограничение доступа к Telnet-серверу через UFW
Если вы установили Telnet-сервер, обязательно ограничьте доступ к порту 23.
6.1 Установка UFW (если не установлен)
sudo apt install ufw -y
6.2 Разрешить SSH (чтобы не заблокировать себя)
sudo ufw allow ssh
6.3 Разрешить Telnet только с конкретного IP
sudo ufw allow from 192.168.1.10 to any port 23
6.4 Включить UFW
sudo ufw enable
6.5 Проверка правил
sudo ufw status numbered
✅ Ожидаемый вывод:
Status: active
To Action From
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 23 ALLOW IN 192.168.1.10
7. ⚠️ Решение типичных проблем
7.1 Ошибка: Connection refused
Симптом: При попытке подключения к порту появляется Connection refused.
Причина: Сервис не слушает на этом порту, или порт закрыт фаерволом.
Пошаговое решение:
Шаг 1: Проверьте, слушает ли сервис нужный порт (для локального сервера):
sudo ss -tlnp | grep :порт
Шаг 2: Если вы проверяете удалённый сервер, убедитесь, что на нём запущен соответствующий сервис.
Шаг 3: Проверьте фаервол на сервере:
sudo ufw status
7.2 Ошибка: Connection timed out
Симптом: Команда telnet зависает и через время выдаёт Connection timed out.
Причина: Пакеты не доходят до сервера (фаервол блокирует, или сервер недоступен по сети).
Пошаговое решение:
Шаг 1: Проверьте базовую связность:
ping ip_адрес_сервера
Шаг 2: Если пинг работает, а Telnet нет — фаервол на сервере или по пути блокирует порт.
7.3 На Debian 13/12 порт 23 не слушает после установки telnetd
Симптом: ss -tlnp | grep ':23' ничего не показывает.
Причина: В файле /etc/inetd.conf строка для Telnet начинается с пробела, из-за чего inetd игнорирует её.
Решение:
sudo sed -i 's/^ telnet/telnet/' /etc/inetd.conf
sudo systemctl restart inetutils-inetd.service
7.4 Команда telnet —version не работает на Debian 11
Симптом: telnet --version выдаёт ошибку.
Причина: В Debian 11 используется старая версия netkit, которая не поддерживает флаг --version.
Решение: Используйте apt-cache policy telnet для проверки установки.
8. ❌ Удаление Telnet
Удаление клиента и сервера
sudo apt remove --autoremove telnet telnetd -y
Удаление правил UFW (если добавляли)
sudo ufw status numbered
sudo ufw delete номер_правила
Проверка удаления
command -v telnet
✅ Ожидаемый вывод: Пустая строка (если Telnet больше не установлен).
9. 📝 Чек-лист: всё готово к работе
- [ ] Система обновлена (
sudo apt update && sudo apt upgrade -y) - [ ] Telnet-клиент установлен (
telnetдоступен в терминале) - Telnet-сервер установлен и порт 23 слушает (
ss -tlnp | grep ':23') - [ ] (Для Debian 13/12) Исправлен файл
/etc/inetd.conf(удалён пробел) - [ ] (Для сервера) UFW настроен и разрешает доступ только с доверенных IP
- [ ] Telnet успешно подключается к тестовым портам (например,
telnet example.com 80)
Заключение
Вы установили Telnet на Debian. Клиент (telnet) — это полезный диагностический инструмент для проверки доступности TCP-портов и ручного тестирования сервисов (HTTP, SMTP, SSH). Сервер (telnetd) устанавливать не рекомендуется без крайней необходимости, так как он не шифрует трафик. Если вы всё же установили сервер на Debian 13/12, не забудьте исправить /etc/inetd.conf и перезапустить inetd. И всегда ограничивайте доступ к Telnet-серверу через UFW.
Что дальше:
- Используйте Telnet для диагностики: проверьте, отвечает ли ваш веб-сервер на порту 80 или 443
- Для регулярного администрирования настройте SSH
- Для проверки портов также можно использовать
nc(netcat) илиnmap - Изучите возможности
openssl s_clientдля диагностики защищённых соединений (HTTPS, SMTPS)