我在 Ubuntu 服务器上,每分钟都会有大量行写入我的 /var/log/mail.log。这些行如下所示:
Mar 11 17:39:08 Ubuntu-1010-maverick-32-minimal postfix/qmgr[1085]: 75A8B17150: from=<[email protected]>, size=769, nrcpt=1 (queue active)
Mar 11 17:39:08 Ubuntu-1010-maverick-32-minimal postfix/qmgr[1085]: 7F70417129: from=<>, size=2900, nrcpt=1 (queue active)
Mar 11 17:39:08 Ubuntu-1010-maverick-32-minimal postfix/qmgr[1085]: 7BD0616D9D: from=<>, size=2819, nrcpt=1 (queue active)
Mar 11 17:39:08 Ubuntu-1010-maverick-32-minimal postfix/qmgr[1085]: 7A10716D88: from=<>, size=2841, nrcpt=1 (queue active)
Mar 11 17:39:08 Ubuntu-1010-maverick-32-minimal postfix/qmgr[1085]: 7AA5C107FC3: from=<[email protected]>, size=778, nrcpt=1 (queue active)
Mar 11 17:39:08 Ubuntu-1010-maverick-32-minimal postfix/qmgr[1085]: 7462F433F8: from=<>, size=2870, nrcpt=1 (queue active)
或者
Mar 11 17:54:26 Ubuntu-1010-maverick-32-minimal postfix/error[3500]: 729BE4CF6C: to=<[email protected]>, orig_to=<root>, relay=none, delay=134965, delays=134937/29/0/0, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to example.org[2606:2800:220:1:248:1893:25c8:1946]:25: Network is unreachable)
Mar 11 17:54:26 Ubuntu-1010-maverick-32-minimal postfix/error[3488]: 73FAB4D467: to=<[email protected]>, orig_to=<root>, relay=none, delay=55045, delays=55016/29/0/0, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to example.org[2606:2800:220:1:248:1893:25c8:1946]:25: Network is unreachable)
Mar 11 17:54:26 Ubuntu-1010-maverick-32-minimal postfix/error[3504]: 7B460870F2: to=<[email protected]>, orig_to=<root>, relay=none, delay=256705, delays=256676/29/0/0, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to example.org[2606:2800:220:1:248:1893:25c8:1946]:25: Network is unreachable)
问题是 - 我和我的 cronjob 都没有尝试发送任何东西。那么这里发生了什么?
答案1
您的邮件池中存在一些您不知道的内容,并且 Postfix 正在尝试使用 ipv6 将电子邮件传输到某个远程服务器,但该连接始终失败。如果主机上可用,Postfix 会优先使用 ipv6,但您的本地网络或远程主机可能尚不支持 ipv6。当我们首次在办公室网络上推出 ipv6 时,我在其中一台内部服务器上遇到了这个问题。
为了防止 postfix 使用 ipv6,请更新 postfix 配置以设置变量:
inet_protocols = ipv4
然后重新启动 postfix
service postfix restart
Postfix 现在将仅使用 ipv4 连接。在 Ubuntu 上,这在/etc/postfix/main.cf文件。
许多应用程序和服务都设置为向 root 发送有关错误的电子邮件,并且您的服务器上似乎至少有一封这样的电子邮件。要查看待处理的电子邮件,请使用
mailq
答案2
问题又出现了。因此我不能再接受user208998的答案了。
原因是 cron。我的一个 cronjobs 退出失败。我没有注意到这一点,因为实际任务执行正确。由于我没有设置MAILTO
环境变量,cron 尝试通过电子邮件通知用户 root。出于未知原因,cron 认为我的主机名是“example.org”。
给遇到类似问题的人的信息:找到问题的根源是偶然的。您可以确定尝试发送邮件的进程,当然是“postfix”。但是,我无法确定让 postfix 发送邮件的进程。
答案3
在我的案例中,fail2ban 由于暴力破解尝试而每分钟都会向 root 发送邮件,因此在这种情况下,请查看 /var/mail/ 目录,看看是否找到比其应有的更大的东西。