Dovecot 声称端口正在使用中,但 netstat 不同意

Dovecot 声称端口正在使用中,但 netstat 不同意

尝试启动 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 init 脚本中,以便在启动 dovecot 之前释放必要的端口。

值得注意的是这个勘误表(https://access.redhat.com/errata/RHSA-2020:1062)导致了这个错误报告(“Dovecot 应该使用 portrelease 来避免与 NFSv4 挂载的端口冲突”https://bugzilla.redhat.com/show_bug.cgi?id=1570283)。这些似乎与 NFSv4 所反对的 portreseve 缺陷更接近。我不清楚勘误表是否真的修复了问题,因为错误报告仅提供了一些背景信息和可能的解决方法。

我不认为这个问题可以在 dovecot 端修复 - 修复 portreserve 应该可以解决这个问题。SUNRPC 已知随机分配 rpc 端口 665-1023 的缺点(当然 - 不是完全随机 - 它类似于 6XX+pid,这会导致某些系统上 993/995 端口经常出现问题)- 因此当 NFSv4 到位并且没有分配静态端口时,它可以随机消耗 993/995 端口。

相关内容