Gitlab не отправляет сообщения. Errno::EHOSTUNREACH (No route to host - connect(2) for "ip" port 25)

Доброго времени суток.

В общем поставили мне задачу перенести gitlab на новый сервер(на виртуалку centos 8). Сделал всё по инструкции т.е. установил такую же версию на новый сервер, сделал бекап, восстановил на новом, полностью скопировал каталог "config" и обновил до последней версии. Gitlab работает как и на старом, всё ок за исключением того, что не отправляются сообщения.

Gitlab устанавливался в Docker.

Настройки для внешнего SMTP в gitlab.rb:

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "ip внешнего smtp"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_domain'] = "ip внешнего smtp"
gitlab_rails['smtp_authentication'] = false
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
gitlab_rails['gitlab_email_from'] = '[email protected]'

Через rails console пробую отправить тестовое сообщение:

Notify.test_email('[email protected]', 'Hello World', 'This is a test message').deliver_now

и получаю ошибку:

Errno::EHOSTUNREACH (No route to host - connect(2) for "ip внешнего smtp" port 25)

на старом такой проблемы не было.

firewall:

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: cockpit dhcpv6-client http https ssh
  ports: 3389/tcp 3389/udp 25/tcp 25/udp 22/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
    rule family="ipv4" source address="172.18.0.0/16" accept
    rule family="ipv4" source address="172.27.0.0/16" accept
    rule family="ipv4" source address="172.18.0.1/16" accept
    rule family="ipv4" source address="172.17.0.1/16" accept
    rule family="ipv4" source address="172.17.0.2/32" accept
    rule family="ipv4" source address="10.144.0.0/16" accept

хотя на старом я не добавлял ни 25 порт ни правила.

Установил "mailx" и попробовал через него отправить, так:

echo "Test text" | mail -s "Test title" -S smtp="ip внешнего smtp:25" [email protected]

письмо приходит!

Возможно проблема в docker'е, но документация уверяет, что проблем с внешним миром не должно быть. В gitlab'е я не знаю что ещё можно настроить. Возможно для виртуалки какие то доп настройки нужны.

Любая информация приветствуется. Спасибо!


Ответы (1 шт):

Автор решения: ASTyurin

Нужно добавить 25 порт к публикуемым портам gitlab при разворачивании gitlab в контейнере:

docker run --detach --hostname <ip сервера> \
--publish 25:25 \
--publish 443:443 \
--publish 80:80 \
--publish 10022:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:13.3.5-ce.0
→ Ссылка