техническое · ответ с источниками

Как проверить, открыт ли порт 587

Проверить, открыт ли порт 587, можно с помощью утилит командной строки — telnet, netcat или PowerShell, — попытавшись подключиться к SMTP-серверу. Если подключение успешно, сервер обычно отвечает приветствием с кодом 220: это значит, что порт открыт и принимает подключения для отправки почты.

Проверка подключения с помощью Telnet

Telnet — стандартный инструмент для проверки TCP-подключения. Выполните в терминале команду telnet smtp.example.com 587. Если экран очистился или появилось приветствие сервера, порт открыт. Если вы получили ошибку connection refused или тайм-аут, порт закрыт или заблокирован файрволом. Учтите, что в Windows перед использованием telnet может потребоваться включить его в разделе «Компоненты Windows».

Проверка с помощью Netcat (nc) в Linux и macOS

Netcat — мощная утилита для отладки сети. Выполните команду nc -zv smtp.example.com 587. Флаг z указывает netcat проверить наличие слушающего демона без отправки данных, а флаг v включает подробный вывод. При успехе в выводе будет явно указано, что подключение к порту установлено, а при неудаче — тайм-аут или отказ в подключении.

Проверка с помощью PowerShell в Windows

Пользователям Windows без telnet PowerShell предлагает командлет Test-NetConnection. Выполните Test-NetConnection -ComputerName smtp.example.com -Port 587. В выводе будет логическое значение TcpTestSucceeded. Если оно равно True, порт 587 открыт. Для современных сред Windows этот способ предпочтителен, так как даёт подробную диагностику сетевого пути.

Что делать, если порт заблокирован

Если порт 587 закрыт, проверьте настройки локального файрвола и ограничения интернет-провайдера. Многие провайдеры для домашних пользователей блокируют исходящие почтовые порты, чтобы бороться со спамом. Проверить внешнюю конфигурацию и убедиться, что почтовый сервер доступен из публичного интернета, можно с помощью SendHQ или его бесплатных инструментов (https://sendhq.cc/tools). Убедитесь, что группы безопасности вашего облачного провайдера разрешают исходящий трафик на TCP 587.

Порт 587 и STARTTLS

Порт 587 — стандартный порт для отправки почты (submission). В отличие от порта 465, где используется неявный TLS, соединение на порту 587 начинается открытым текстом и переводится в защищённое командой STARTTLS. Поэтому простая TCP-проверка подтверждает лишь то, что порт открыт, а чтобы убедиться в работе шифрования, нужно полное SMTP-рукопожатие.

Что спрашивают команды

Чем порт 25 отличается от порта 587?

Порт 25 используется в основном для ретрансляции между серверами, а порт 587 — выделенный порт для отправки почты от клиента к серверу.

Почему подключение к порту 587 завершается по тайм-ауту?

Тайм-ауты обычно означают, что файрвол отбрасывает пакеты. Проверьте файрвол операционной системы, сетевой маршрутизатор или правила группы безопасности в облаке.

Если подключение через telnet прошло успешно, значит ли это, что письма будут отправляться?

Нет, это лишь подтверждает, что TCP-порт открыт. Для успешной отправки письма по-прежнему нужны действующие учётные данные для аутентификации и правильные SMTP-команды.

Безопасен ли порт 587?

Порт 587 безопасен при использовании STARTTLS, который шифрует обмен данными после установки начального соединения.

Первоисточники