Тайм-аут электронной почты вполне может быть из-за вашего демона сначала попробуй IPv6.
Реализация стека IPv6 по умолчанию имеет приоритет над стеком IPv4, поэтому, когда программы / демоны пытаются установить связь, они сначала будут пытаться использовать адрес IPv6, когда у места назначения есть как общедоступный IPv4, так и IPv6-адрес.
Даже если у вас нет общедоступного IPv6, у вас есть локальный IPv6 и локальные адреса связывания.
Это будет не первый, и, вероятно, не последний раз, когда я поймаю Интернет-демонов, пытающихся сначала локальный адрес ссылки в качестве исходного IP-адреса для связи с другим адресом, и только после отсчета времени. out, если у них еще есть выделенное время / попытки, они могут вернуться к отправке данных в пункт назначения IPv4. (В прошлом у меня уже были проблемы с DNS и электронной почтой из-за этого у провайдера, который я использовал.)
Итак, для exim вы можете отключить IPv6 на уровне приложения / демона, используя директиву disable_ipv6 = true
в /etc/exim4/exim4.conf.template
или /etc/exim4/update-exim4.conf.conf
в зависимости от того, используете ли вы неразделенный или схема раздельной конфигурации.
Из Exim Internet Mailer - Глава 14 - Основная конфигурация
disable_ipv6 Использование: main Тип: логическое По умолчанию: false
Если этот параметр установлен в true, даже если бинарный файл Exim поддерживает IPv6, никакие действия IPv6 не выполняются. Записи AAAA никогда не просматриваются, и любые IPv6-адреса , перечисленные в local_interfaces, данных для маршрутизатора manualroute, и т. Д., Игнорируются. Если IP-литералы включены, ipliteral-маршрутизатор отказывается обрабатывать буквальные адреса IPv6.
Альтернативный подход может также заключаться в привязке его только к адресам IPv4, , однако недостатком является необходимость жесткого кодирования адресов IPv4 в конфигурации :
local_interfaces = <; 127.0.0.1 ; \
192.168.23.65
Что касается самой системы, как вы не активно используют IPv6:
добавьте в качестве последней строки для присвоения приоритета IPv4 по умолчанию файл /etc/gai.conf
precedence ::ffff:0:0/96 100
Добавьте в /etc/sysctl.conf
для отключения по умолчанию стека IPv6 (настройка поддерживается начиная с ядра 3):
net.ipv6.conf.all.disable_ipv6=1
sysctl будет применяться во время загрузки. Чтобы активировать его перед загрузкой, выполните:
sudo sysctl -p
Пока они называют это деактивацией IPv6, модуль все еще загружен, и хотя интерфейсы больше не имеют адресов IPv6, вы все равно можете видеть приложения, подключенные к их сокетам IPv6. Вы также можете передать ядру параметр отключения IPv6, и модуль ядра IPv6 не будет загружен.Отредактируйте / etc / default / grub
:
GRUB_CMDLINE_LINUX="ipv6.disable=1"
А затем примените его, если у вас есть grub (ваш раздел grub может отличаться или у вас его может не быть; у меня его нет на моих серверах ARM, и вам придется отредактировать другой файл для параметров ядра):
sudo update-grub
sudo grub-install /dev/sda
Возможно, вам придется настроить тот или иной демон для отключения IPv6 на уровне приложения (из верхней части моей головы, xinetd
, если у вас есть он установлен).