Попытка запустить dovecot выдает следующее:
Apr 28 13:37:00 master: Error: service(pop3-login): listen(*, 110) failed: Address already in use
Apr 28 13:37:00 master: Error: service(pop3-login): listen(*, 995) failed: Address already in use
Apr 28 13:37:00 master: Error: service(imap-login): listen(*, 143) failed: Address already in use
Apr 28 13:37:00 master: Error: service(imap-login): listen(*, 993) failed: Address already in use
А «netstat -tulpn» отображает это:
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 3369/master
tcp 0 0 0.0.0.0:52125 0.0.0.0:* LISTEN 2396/rpc.statd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 3244/mysqld
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2375/rpcbind
tcp 0 0 :::22 :::* LISTEN 2562/sshd
tcp 0 0 :::25 :::* LISTEN 3369/master
tcp 0 0 :::443 :::* LISTEN 3390/httpd
tcp 0 0 :::39631 :::* LISTEN 2396/rpc.statd
tcp 0 0 :::111 :::* LISTEN 2375/rpcbind
tcp 0 0 :::80 :::* LISTEN 3390/httpd
udp 0 0 0.0.0.0:68 0.0.0.0:* 2236/dhclient
udp 0 0 0.0.0.0:111 0.0.0.0:* 2375/rpcbind
udp 0 0 10.0.82.190:123 0.0.0.0:* 2589/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 2589/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 2589/ntpd
udp 0 0 0.0.0.0:43243 0.0.0.0:* 2396/rpc.statd
udp 0 0 0.0.0.0:854 0.0.0.0:* 2375/rpcbind
udp 0 0 127.0.0.1:876 0.0.0.0:* 2396/rpc.statd
udp 0 0 :::111 :::* 2375/rpcbind
udp 0 0 :::854 :::* 2375/rpcbind
udp 0 0 :::54504 :::* 2396/rpc.statd
Есть идеи, что я здесь упускаю?
ОБНОВЛЯТЬ:
selinux отключен, а дистрибутив — AWX Linux:
$ getenforce
Disabled
$ uname -a
Linux ip-10-0-82-190 4.14.268-139.500.amzn1.x86_64 #1 SMP Wed Mar 2 18:48:10 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
решение1
dovecot, по-видимому, не знает о (совместимости) portreserve.
Проверьте /etc/portreserve на наличие файлов конфигурации, которые резервируют нужные вам порты, и удалите их из области видимости (например, переименуйте их с помощью ~). В качестве альтернативы вы можете добавить portrelease в свои скрипты инициализации dovecot, чтобы освободить необходимые порты непосредственно перед запуском dovecot.
Стоит отметить эту опечатку (https://access.redhat.com/errata/RHSA-2020:1062), что приводит к этому отчету об ошибке («Dovecot должен использовать portrelease, чтобы избежать конфликтов портов с монтированиями NFSv4»https://bugzilla.redhat.com/show_bug.cgi?id=1570283). Это, по-видимому, связывает его ближе к дефекту portreseve, который противостоит NFSv4. Мне не ясно, действительно ли исправление исправляет проблему, поскольку отчет об ошибке предоставляет только некоторый контекст и, возможно, обходной путь.
Я не думаю, что это можно исправить на стороне dovecot - и исправление portreserve должно это исправить. SUNRPC известен недостатком случайного назначения портов rpc 665-1023 (ну - не совсем случайного - это что-то вроде 6XX+pid, что приводит к регулярным проблемам с портами 993/995 в определенных системах) - таким образом, когда NFSv4 установлен и ему не назначены статические порты, он может использовать случайный порт 993/995.