Ошибка тайм-аута во всех моих приложениях для каждого звонка на SMTP-серверы

На моем VPS ( http://www.tophost.it/ "TopServer" с Ubuntu 12.04 LTS) несколько дней назад все мои приложения не могли отправлять электронные письма. Все, что я мог извлечь из журналов, это то, что каждый запрос проходит тайм-аут.

Я тогда попытался просто позвонить из терминала telnet smtp.gmail.com 587 и я заметил следующую аномалию: в то время как на любом другом хорошо работающем сервере ответ занимает всего несколько мс, и он просто

Trying 173.194.65.109...
Connected to gmail-smtp-msa.l.google.com.

На VPS в вопросе ответ вместо

Trying 2a00:1450:4013:c01::6c...

... и только примерно через одну минуту (в течение которого приложения собираются в тайм-аут, я полагаю)... он, наконец, говорит:

Trying 74.125.136.108...
Connected to smtp.gmail.com.

Так что здесь происходит? Почему он пытается с IPv6 до и только через несколько секунд с правильным IPv4? Как я могу исправить это поведение, чтобы избежать ошибок тайм-аута?

2 ответа

Решение

Я нашел временное исправление, отключающее IPv6. Я добавил следующие строки: /etc/sysctl.conf:

#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Затем либо перезапустите, либо дайте команду sysctl для перезагрузки. Теперь приложения могут отправлять электронные письма снова, без первоначальной задержки.

Вы всегда можете узнать, включен ли IPv6, запустив

cat /proc/sys/net/ipv6/conf/all/disable_ipv6

от терминала. Два возможных ответа: 0 => IPv6 включен; 1 => IPv6 отключен.

По крайней мере, пока я жду, пока поставщик услуг решит проблему, я узнал что-то новое.

(Бесстыдно скопировано с https://stackoverflow.com/a/29939735/32453)

Вы можете настроить Ubuntu для предпочтения IPv4 над IPv6. Таким образом, вы сможете отправлять электронные письма и получать доступ к сайтам только с IPv6. Отредактируйте /etc/gai.conf и раскомментируйте следующую строку:

precedence ::ffff:0:0/96 100
Другие вопросы по тегам