Диагностика портов через Telnet и PowerShell: проверка MySQL 3306 и SMTP 25 для чайников
Зачем проверять TCP-порт, если обычный Ping проходит?
Команда ping использует протокол ICMP и проверяет исключительно доступность сетевого хоста на базовом уровне. Ping может отвечать отлично (время отклика 5 мс), но база данных MySQL (порт 3306) или почтовый сервер (порт 25) будут недоступны из-за правил фаервола, зависшей службы или блокировок провайдера.
Сравнение инструментов проверки доступности:
| Утилита | Что проверяет | Результат при закрытом порте |
|---|---|---|
ping 192.168.1.10 | Только факт включения сетевого адаптера сервера (ICMP). | Успешный ответ (создает ложное впечатление, что 'все работает'). |
telnet 192.168.1.10 3306 | Устанавливает реальное трехстороннее TCP-рукопожатие (3-way handshake). | «Не удалось открыть подключение к этому узлу, на порт 3306: Сбой подключения». |
Test-NetConnection | Комплексная проверка доступности порта и маршрута (PowerShell). | TcpTestSucceeded : False с указанием причины сбоя. |
1. Установка клиента Telnet в Windows
По умолчанию клиент Telnet отключен в Windows 10/11 и Windows Server. Включите его командой в CMD от Администратора:
dism /online /Enable-Feature /FeatureName:TelnetClient2. Проверка доступности портов командой Telnet
Синтаксис команды: telnet [IP-адрес или Домен] [Порт]
# Проверка базы данных MySQL:
telnet db.company.ru 3306
# Проверка почтового релея SMTP:
telnet mail.company.ru 25
# Проверка веб-сервера HTTPS:
telnet google.com 443Как понять результат:
- Экран стал черным или появился текст (баннер программы): Порт полностью ОТКРЫТ, соединение успешно. Чтобы выйти, нажмите
Ctrl + ], затем введитеquitи нажмите Enter. - Появилось сообщение «Сбой подключения» (Could not open connection): Порт ЗАКРЫТ (служба выключена или заблокирована фаерволом).
3. Современная альтернатива без установки Telnet (PowerShell)
В любой современной системе Windows доступен мощный встроенный инструмент:
# Быстрая проверка порта 3306 (MySQL):
Test-NetConnection -ComputerName 192.168.1.50 -Port 3306
# Краткий вывод (True/False):
(Test-NetConnection 192.168.1.50 -Port 25).TcpTestSucceededОбратите внимание для порта 25 (SMTP): Почти все домашние и мобильные провайдеры интернета принудительно блокируют исходящий TCP-порт 25 для предотвращения рассылки спама ботнетами. Для отправки почты используйте защищенные порты 465 (SSL) или 587 (TLS).
Частые вопросы (FAQ)
Почему при проверке порта веб-сайта telnet site.ru 80 экран просто чернеет?
Черный экран означает успешное открытие TCP-сокета. Сервер ждет от вас отправки HTTP-команд. Введите команду `GET / HTTP/1.1` и дважды нажмите Enter, чтобы получить ответ.
Можно ли утилитой Telnet проверить доступность UDP портов (например, DNS 53 или WireGuard 51820)?
Нет. Telnet работает исключительно по протоколу TCP. Для тестирования UDP-портов используются утилиты `nc` (Netcat) или `PortQry` от Microsoft.
Как проверить открытый порт на Linux сервере?
Используйте утилиту nc (netcat): `nc -zv 192.168.1.10 3306` или утилиту curl: `curl -v telnet://192.168.1.10:3306`.
Что означает статус порта FILTERED (фильтруется)?
Это означает, что пакеты доходят до межсетевого экрана (брандмауэра), который молча отбрасывает их (действие DROP), не возвращая ответного пакета TCP RST.