Dovecot은 포트가 사용 중이라고 주장하지만 netstat는 이에 동의하지 않습니다.

Dovecot은 포트가 사용 중이라고 주장하지만 netstat는 이에 동의하지 않습니다.

비둘기장을 시작하려고 하면 다음과 같은 결과가 나타납니다.

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를 확인하고 해당 파일을 범위에서 제거합니다(예: ~로 이름 바꾸기). 또는 dovecot init 스크립트에 portrelease를 추가하여 dovecot을 시작하기 직전에 필요한 포트를 해제할 수 있습니다.

이 정오표는 주목할 가치가 있습니다(https://access.redhat.com/errata/RHSA-2020:1062) 이 버그 보고서로 연결됩니다("Dovecot은 NFSv4 마운트와의 포트 충돌을 피하기 위해 portrelease를 사용해야 합니다.")https://bugzilla.redhat.com/show_bug.cgi?id=1570283). 이는 NFSv4에 의해 반대되는 portreseve 결함에 더 가깝게 연결되는 것으로 보입니다. 버그 보고서는 일부 컨텍스트와 해결 방법만 제공하기 때문에 정오표가 실제로 문제를 해결하는지 확실하지 않습니다.

나는 이것이 비둘기장 측에서 고칠 수 없다고 생각합니다. 그리고 portreserve를 고치면 이 문제가 고쳐질 것입니다. SUNRPC는 rpc 포트 665-1023을 무작위로 할당하는 것의 단점을 알고 있습니다(완전히 무작위는 아닙니다. 이는 특정 시스템의 993/995 포트에 정기적인 문제를 일으키는 6XX+pid와 유사합니다). 따라서 NFSv4가 제자리에 있고 고정 포트가 할당되지 않은 경우 임의로 993/995 포트를 사용할 수 있습니다.

관련 정보