错误:“IMAP Auth process broken 993”

错误“IMAP Auth process broken 993”通常意味着IMAP(端口 993 = IMAPS)的认证(auth)守护进程要么没有运行/无法响应,要么存在SSL/TLS、socket权限或服务被阻止的问题。下面是一个诊断清单和实际命令(用于Linux机器)— 请逐步执行,阅读输出,并根据说明进行修复。

1) 检查IMAP服务(例如:Dovecot, Courier)

如果您使用的是 Dovecot:

Bash

sudo systemctl status dovecot
sudo journalctl -u dovecot -n 200
sudo dovecot -n          # 显示 dovecot 配置(检查 auth, ssl, sockets)

如果您使用的是 Courier:

Bash

sudo systemctl status courier-authdaemon
sudo journalctl -u courier-authdaemon -n 200

目标: 看到服务是 active (running);如果它崩溃或频繁重启,请检查日志以了解原因。

2) 检查邮件日志以获取详细错误

常见日志文件:

Bash

sudo tail -n 200 /var/log/mail.log
sudo tail -n 200 /var/log/maillog
sudo grep -i "auth" /var/log/mail.log | tail -n 100

查找类似以下内容的行:auth: Fatal: ...imap-login: Disconnected ...auth: Error: ... — 如果需要在此处发布,请复制这些行。

3) 检查 Socket/认证权限(因为“auth process broken”通常是由于 socket 引起的)

Dovecot 示例:

Bash

sudo ls -l /var/run/dovecot/
sudo ls -l /var/run/dovecot/auth-client

或者:

Bash

sudo ls -l /var/run/dovecot/*auth*

如果 socket 不存在或权限错误 — dovecot-auth 无法通信。根据配置修复权限或所有者;所有者通常是 dovecot:dovecotroot:dovecot

4) 检查端口 993 监听和进程

Bash

ss -ltnp | grep :993
sudo lsof -iTCP:993 -sTCP:LISTEN -Pn

您必须看到进程(dovecotcourier-imapdcyrus-imapd)正在 0.0.0.0:993 或特定IP上 LISTENING。

5) 检查 SSL/TLS(损坏/过期的证书或不可读的密钥可能导致认证错误)

测试 TLS 握手:

Bash

openssl s_client -connect your.domain.tld:993 -crlf -servername your.domain.tld

观察: 是否显示了证书链?是否有类似 SSL routines:...handshake failure 的错误?如果证书错误/过期,请更换证书(Let’s Encrypt 或其他证书)并重新加载 dovecot。 相关的 Dovecot 配置:

Bash

sudo dovecot -n | grep -i ssl

检查配置中的 ssl_certssl_key 路径是否存在,以及 dovecot 用户是否具有读取权限。

6) 检查认证机制 (PAM, passwd-file, LDAP, SQL)

如果您使用 SQL/LDAP 进行认证,请尝试使用 doveadm 命令进行测试:

Bash

sudo doveadm auth test username@example.com password

结果将指示后端是响应还是失败。如果报告 DB/LDAP 连接错误 — 修复后端配置。

7) 检查 fail2ban / 防火墙 / SELinux

Fail2ban 可能正在阻止客户端 IP:

Bash

sudo fail2ban-client status
sudo fail2ban-client status dovecot

防火墙:

Bash

sudo iptables -L -n | grep 993
sudo ss -ltnp | grep 993

SELinux (CentOS/RHEL):检查审计日志或尝试临时禁用以进行测试:

Bash

sestatus
# (小心) sudo setenforce 0    # 仅用于测试

8) 如果认证因资源而崩溃,检查文件描述符 / ulimit

Bash

sudo cat /proc/$(pidof dovecot)/limits

如果进程因连接过多而被终止 — 调整服务/ulimits。

9) 安全重启和临时调试(如果需要)

在 dovecot 配置中启用调试(auth_debug=yesauth_debug_passwords=yes),然后重启以查看详细信息:

Bash

sudo sed -n '1,200p' /etc/dovecot/dovecot.conf   # 或 /etc/dovecot/conf.d/*
# 在 conf 中启用调试后:
sudo systemctl restart dovecot
sudo journalctl -u dovecot -f

注意: 不要长时间在生产环境上启用调试,因为它会记录密码。

10) “快速修复”命令(临时尝试)

Bash

sudo systemctl restart dovecot
sudo systemctl daemon-reload
sudo systemctl restart dovecot

(有时如果问题是进程挂起,只需重启即可修复)。但如果配置错误,重启将失败 — 立即检查 journalctl