Очередь Exim растёт после блокировки исходящего порта 25

  • Обновлено
  • Чтение ≈ 4 минуты
  • Нужны права администратора

Краткий ответ

Прежде чем просить открыть исходящий порт, следует исключить ошибочный MX, DNS, маршрут и блокировку конкретного удалённого адресата. Порт 587 с авторизацией служит для отправки через предоставленный релейный SMTP-сервер; он не заменяет прямое соединение с произвольным MX на порту 25.

В этой статье
  1. Что произошло и как распознать неисправность
  2. Причины и отличительные признаки
  3. Пошаговая диагностика и исправление
  4. Как проверить результат и что делать при неуспехе

#Что произошло и как распознать неисправность

На сервере Linux Exim принимает сообщения от сайтов и пользователей, но не может доставить их внешним доменам. Очередь exim -bp растёт, а в журнале встречаются Connection timed out, Network is unreachable или Connection refused при попытке соединиться с MX по TCP 25. Частая причина — блокировка исходящего порта 25 провайдером VPS, облаком или сетевой политикой. Прежде чем просить открыть исходящий порт, следует исключить ошибочный MX, DNS, маршрут и блокировку конкретного удалённого адресата. Порт 587 с авторизацией служит для отправки через предоставленный релейный SMTP-сервер; он не заменяет прямое соединение с произвольным MX на порту 25.

#Причины и отличительные признаки

Возможная причинаКак узнатьЧто делать
Провайдер ограничил исходящие соединения к TCP 25Многие VPS-провайдеры применяют ограничения для борьбы со спамом.С нескольких внешних MX нет TCP-соединения 25, но DNS и остальные сервисы работают.Попросить провайдера подтвердить и согласованно снять ограничение или использовать доверенный relay.
Межсетевой экран сервера блокирует исходящий трафикСобственное правило nftables/iptables запрещает исходящий TCP 25.В журнале фильтрации виден drop/reject, другие соединения работают.Исправить только неверное исходящее правило после проверки политики.
Проблема маршрута или IPv6Exim выбирает недоступный IPv6-адрес, хотя IPv4 соединяется.В журнале network unreachable для IPv6; с IPv4 путь доступен.Настроить корректную сеть, а не отключать IPv6 глобально.
Временный отказ конкретного MXУдалённый сервер или его политика ограничивают доставку независимо от провайдера.Сбой только для одного домена, другие MX принимают письма.Следовать коду удалённого SMTP и штатным повторным попыткам Exim.

#Пошаговая диагностика и исправление

  1. Сохраните состояние очереди и не очищайте еёПодключитесь по SSH как администратор к серверу Exim. Выполните sudo exim -bp, оцените число сообщений и их возраст. Не запускайте команды удаления сообщений и не переносите spool вручную: очередь может содержать важные письма. Запишите исходный размер и несколько идентификаторов для последующей проверки.
  2. Найдите настоящую причину задержки одного письмаВыберите идентификатор из exim -bp и выполните sudo exim -Mvl ID_СООБЩЕНИЯ, подставив реальный ID. Это показывает историю попыток выбранного письма; команда не доставляет и не удаляет его. Запишите реальный MX, IP, порт и сетевую ошибку. Если журнал уже показывает 550 permanent rejection, причина не в исходящем блокировании 25.
  3. Убедитесь, что DNS разрешает MXНа сервере выполните dig MX example.net +short для домена получателя и dig A имя-MX +short, используя реальные значения. Если MX вообще не определяется, сначала разберите проблемы DNS. Если разрешается IPv6, проверьте, что сервер действительно имеет рабочий IPv6-маршрут. Не редактируйте /etc/hosts ради случайного MX.
  4. Проверьте TCP 25 в сторону двух разных MXВ терминале выполните nc -vz -w 5 mail.example.net 25, подставив реальное имя почтового MX, полученное из DNS. Флаг -z проверяет соединение без отправки писем, -v показывает результат, -w 5 ограничивает ожидание пятью секундами. Повторите для второго разрешённого MX другого домена. Если nc отсутствует, попросите администратора воспользоваться доступным штатным сетевым инструментом; не устанавливайте дополнительные пакеты на критичный сервер без согласования.
  5. Сопоставьте сетевые ошибки с правилами провайдераПосмотрите панель VPS и сведения поставщика о блокировке исходящего SMTP. Если несколько MX недоступны, а DNS и другие порты работают, откройте обращение с исходящим IP, временными метками и обезличенными ошибками. Не сканируйте чужие адреса массово, не пытаясь обойти провайдера случайными портами.
  6. Проверьте локальные правила и IPv6В Linux под администратором проверьте активный набор правил sudo nft list ruleset (если используется nftables) и маршруты ip route, ip -6 route. Ищите выходящие запреты TCP 25 и отсутствие маршрута для фактически выбранного семейства. Нельзя сбрасывать весь брандмауэр ради теста; при подтверждённом ошибочном правиле исправьте точечное правило с сохранением предыдущего набора.
  7. Используйте разрешённый релейный сервер, если прямой 25 закрытЕсли провайдер не снимает ограничение, настройте Exim на отправку через доверенный SMTP relay, который предоставляет порт 587 с STARTTLS и обязательной аутентификацией. Получите точные настройки и учётные данные в личном кабинете провайдера релея. Секреты храните с ограниченными правами; перед изменением сохраните конфигурацию и проверьте синтаксис Exim по документации вашей версии. Не открывайте анонимный почтовый ретранслятор.
  8. Проверьте доставку постепенно и сохраните возможность откатаПосле исправления сделайте одиночную проверку соединения, затем дайте Exim штатно повторить отправки. Следите за очередью по exim -bp и логами нескольких конкретных сообщений. Не запускайте на большой очереди массовые принудительные повторы -qff, чтобы не нарушить лимиты SMTP relay и не вызвать новый 421. Если поток снова застрял, верните прежний маршрут и обратитесь к провайдеру с новыми ошибками.
  9. Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
    Выберите подходящий вариант — это не команды для последовательного выполнения
    Вариант 1Просмотр почтовой очереди Exim.
    Linux · Терминал (Bash)КомандаНужен sudo
    Просмотр почтовой очереди Exim. Обычно требует sudo и не изменяет состояние сообщений.
    sudo exim -bp
    Вариант 2Пробное TCP-соединение к одному согласованному MX; замените имя реальным почтовым узлом.
    Linux · Терминал (Bash)Команда
    Пробное TCP-соединение к одному согласованному MX; замените имя реальным почтовым узлом. Команда не отправляет письмо, работает без sudo, не служит доказательством блокировки всей сети при одной ошибке.
    nc -vz -w 5 mail.example.net 25
    Вариант 3Читает действующие правила nftables, обычно нужен sudo.
    Linux · Терминал (Bash)КомандаНужен sudo
    Читает действующие правила nftables, обычно нужен sudo. Не используйте команду сброса/очистки правил.
    sudo nft list ruleset

#Как проверить результат и что делать при неуспехе

Успешное исправление — Exim устанавливает исходящие соединения либо работает через авторизованный релейный сервер, ранее задержанные письма доставляются и очередь уменьшается. Если провайдер сохраняет блокировку, необходимы его разрешённый SMTP relay либо согласованное изменение тарифа/сети; обход ограничений небезопасен.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.