Протокол Telnet: дослідження можливостей та використання
Telnet – це відомий мережевий протокол, що надає можливість встановлювати віртуальне з’єднання з віддаленим комп’ютером. Його розробили ще у 1969 році, тому він вважається досить старим.
Сьогодні Telnet поступається місцем SSH (Secure Shell). SSH, також будучи мережевим протоколом, дозволяє адміністраторам мереж та систем безпечно підключатися до віддалених пристроїв.
Однак Telnet все ще актуальний для виявлення та усунення проблем зі з’єднанням, а знання його команд може допомогти в ефективнішому управлінні мережами.
У цій статті ми детальніше розглянемо можливості команд Telnet, зокрема, як він функціонує та як використовувати його для вирішення проблем з підключенням. Перейдемо до деталей.
Що таке Telnet?
Telnet, розшифровується як Teletype Network, є протоколом для мережевого зв’язку. Він надає інтерфейс командного рядка для взаємодії з віддаленим сервером. Адміністратори мереж та систем використовують Telnet для віддаленого доступу та виконання різних дій, наприклад, початкового налаштування пристроїв.
Для використання Telnet необхідний відповідний клієнт. Клієнт дає змогу користувачам входити та взаємодіяти з програмами на віддалених системах через TCP/IP. Клієнт Telnet використовує серверну програму Telnet для виконання операцій. Крім того, клієнт Telnet присутній в усіх сучасних операційних системах, таких як Windows, Linux та macOS.
Зауважте: в цій статті, коли йдеться про “Telnet”, ми маємо на увазі “клієнт Telnet”, якщо не вказано інше.
Чи безпечний Telnet?
Безпека не була пріоритетом при створенні Telnet у 1969 році. Тому він не використовує шифрування. Через відсутність безпеки Telnet не рекомендується використовувати для з’єднання з віддаленими клієнтами через TCP/IP. Якщо ви це зробите, ваші незашифровані дані можуть перехопити хакери. SSH – чудова альтернатива, що забезпечує безпечний спосіб віддаленого підключення до сервера.
Принцип роботи Telnet
Візуально протокол Telnet працює так, як показано нижче.
Як працює Telnet
Telnet – це текстово-орієнтований протокол, що створює двонаправлену інтерактивну систему зв’язку (клієнт-сервер). Для передачі даних він використовує восьмибайтове з’єднання. Для використання Telnet необхідні клавіатура та екран, підключені до терміналу.
Користувач вводить команду з термінала, щоб встановити з’єднання з віддаленим комп’ютером. Після підключення Telnet надає користувачу контроль над сервером, включаючи його файли та процеси.
Для підключення до віддаленого сервера користувач повинен ввести “telnet” у командному рядку. Синтаксис:
telnet hostname port
Після успішного підключення користувач може використовувати підказку Telnet для введення додаткових команд Telnet.
Telnet можна використовувати для:
- Перевірки відкритих портів
- Редагування файлів, запуску програм
- Налаштування мережевих пристроїв, таких як комутатори, маршрутизатори тощо.
Для завершення сеансу потрібно ввести “quit” у підказці Telnet.
Як увімкнути клієнт Telnet у Windows/Linux та macOS
Клієнт Telnet є на всіх основних платформах та операційних системах, але його потрібно встановити або увімкнути, перш ніж використовувати.
#1. Windows
Для Windows 7 або новіших версій (8, 10, 11) або Windows Vista, клієнт Telnet можна увімкнути наступними кроками:
- Відкрийте меню “Пуск” і знайдіть “Панель керування”. Також можна відкрити її, натиснувши Win + R та ввівши “control”.
- Виберіть “Програми” > “Програми та функції”.
- Зліва виберіть “Увімкнути або вимкнути функції Windows”.
- Поставте галочку біля “Клієнт Telnet” і натисніть “ОК”.
- Натисніть “Закрити”, коли Windows увімкне його та виведе повідомлення “Windows завершила запитану зміну”.
Зауважте: після цього клієнт Telnet можна використовувати одразу, без перезавантаження комп’ютера.
#2. Linux
Подібно до Windows, Linux також не має Telnet попередньо встановленим.
Для встановлення Telnet в Ubuntu використовуйте наступну команду:
# sudo apt-get install telnet
Зауважте: команда може відрізнятися залежно від дистрибутиву Linux.
#3. macOS
macOS також підтримує Telnet. Для його встановлення потрібно використовувати Homebrew. Якщо Homebrew не встановлений, ви можете встановити його за допомогою наступної команди:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Потрібно буде ввести пароль адміністратора для авторизації встановлення.
Після встановлення Homebrew введіть наступну команду для встановлення Telnet на macOS:
brew install telnet
Використання Telnet для перевірки та усунення несправностей мережевих підключень
Хоча Telnet не є ідеальним для віддаленого підключення, він залишається корисним для тестування та усунення проблем мережевих з’єднань.
Перед продовженням розглянемо синтаксис Telnet:
telnet <server/host IP address> <port>
Тут IP-адреса сервера/хоста – це сервер, до якого ви хочете підключитися, а порт – це номер порту TCP.
Наприклад, для підключення до сервера з IP-адресою example.com через порт 80, потрібно ввести таку команду:
telnet example.com 80
Тобто, для усунення несправностей потрібно заздалегідь знати IP-адресу/ім’я та номер порту віддаленого сервера.
Розпочнемо.
Усунення несправностей веб-серверів
Telnet пропонує простий спосіб перевірити з’єднання з сервером. Для цього потрібно лише підключитися до IP-адреси сервера/хоста та порту, який приймає з’єднання.
Наприклад, для підключення до 23.45.75.22 через порт 532 потрібно виконати наступну команду:
telnet 23.45.75.22 532
Можливі два результати:
- Підключення до сервера успішне. З’явиться повідомлення “підключено до сервера” або інше підтвердження, або очікування додаткових даних.
- Підключення до сервера не вдалося. В цьому випадку може з’явитись повідомлення на кшталт “З’єднання не вдалося” або “З’єднання відмовлено”.
- Telnet не повертає жодних повідомлень.
Причини невдалих спроб підключення Telnet до віддаленого сервера можуть бути різними. Якщо Telnet не повертає жодного повідомлення про помилку, причиною може бути брандмауер або антивірус, що блокує з’єднання на вашому кінці або на сервері.
Якщо підключитися до geefklare.com через порт 80, ви побачите миттєве з’єднання, що очікує на подальші команди:
telnet geefklare.com 80 Connected to techukraine.net.com. Escape character is '^]'.
Тепер введіть таку команду:
GET / HTTP/1.1 Host: techukraine.net.com
Він поверне наступне:
HTTP/1.1 200 OK Date: Fri, 18 Nov 2022 04:40:33 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 16 X-Frame-Options: SAMEORIGIN Referrer-Policy: same-origin Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 [Additional server output follows]
Тепер погляньте на приклад невдалої спроби підключення до сервера:
telnet 23.45.75.222 532 Connecting To 23.45.75.222...Could not open a connection to the host on port 532: Connect failed
Перевірка відкритості порту
Якщо сервер доступний віддалено через Telnet, ви можете перевірити, чи відкритий порт.
Для перевірки відкритості порту на вашому сервері використовуйте таку команду:
telnet <server IP address> <port>
Наприклад, якщо IP-адреса вашого сервера – 23.45.47.53, а порт для перевірки – 532, команда буде виглядати так:
telnet 23.45.47.53 532
Якщо команда виконується успішно, ви побачите порожній екран, що означає, що порт відкрито. Якщо відображається повідомлення “підключення…”, а потім помилка, це означає, що порт не відкрито:
Connection to 23.45.47.53:532 - fail Error #110 (Connection timed out)
Усунення несправностей поштових серверів SMTP
Простий протокол передачі пошти (SMTP) забезпечує зв’язок між поштовими серверами.
За допомогою Telnet можна усунути несправності серверів SMTP, перевіряючи, чи вони отримують та надсилають повідомлення. Ви надсилаєте запити на повідомлення вручну на сервер SMTP, і, якщо все гаразд, отримуєте відповідь.
Telnet дозволяє перевірити з’єднання STMP двома способами:
- Перевірити потік пошти з інтернету на ваш поштовий сервер.
- Перевірити потік пошти з вашого поштового сервера на інший сервер.
Для запуску прикладу обміну введіть наступну команду у терміналі:
telnet mail.techukraine.net.com 25 Trying 192.168.0.68… Connected to mail.techukraine.net.com Escape character is '^]'. 220-mail.techukraine.net.com ESMTP Exim 4.7 220-We do not authorize the use of this system to 220 transport unsolicited and/or bulk e-mail.
EHLO mail.techukraine.net.com 250-techukraine.net.com Hello techukraine.net.com [192.168.3.200] 250-AUTH PLAIN LOGIN QUIT
Тут дві додаткові команди, введені користувачем:
- EHLO mail.techukraine.net.com
- QUIT
Команда EHLO ідентифікує доменне ім’я перед використанням команди MAIL FROM. Команда QUIT завершує сеанс Telnet.
Для отримання детальнішої інформації щодо команд, перегляньте цю статтю про використання Telnet для перевірки зв’язку SMTP на серверах Exchange.
Усунення несправностей сервера FTP
Подібно до SMTP та веб-серверів, ви також можете усунути неполадки FTP-серверів. Для цього потрібно ввести IP-адресу FTP-сервера та підключитися до порту 21.
telnet ftp.techukraine.net.com 21
Якщо спроба підключення вдала, ви підключитеся до сервера. В іншому випадку з’явиться повідомлення про помилку:
Error #0 (php_network_getaddresses: getaddrinfo failed: No address associated with hostname)
Усунення несправностей SSH
SSH – це сучасна альтернатива для безпечних з’єднань, що замінює Telnet. Ви можете використовувати Telnet, щоб перевірити, чи працює сервер SSH.
Для цього скористайтеся командою Telnet з IP-адресою сервера та портом 22:
telnet techukraine.net.com 22 Trying 192.168.0.62… Connected to techukraine.net.com. Escape character is '^]'. SSH-2.0-OpenSSH_5.3
Підсумки
Telnet залишається корисним інструментом. Він дозволяє ефективно вирішувати проблеми мережевих з’єднань без необхідності використовувати складні інструменти або командні рядки. За допомогою Telnet можна перевірити доступ до веб-сервера, перевірити відкритість порту та усунути несправності SSH та FTP.
Ви можете ознайомитись з цією статтею, щоб дізнатися, як виправити помилку “Команда telnet не знайдена”.