我在数百名用户使用的邮件服务器上运行 postfix。一名用户在尝试发送邮件时在 Outlook 中收到“连接中断”错误。我还没有收到其他人关于此问题的报告。
关闭/重新打开 Outlook 无法解决问题。重新启动我这边的 Postfix 守护进程可以解决问题。好像连接没有被彻底关闭,从而触发了设置为 8 的 smtpd_client_connection_count_limit。用户的病毒扫描程序可能正在抓取 SMTP 流量,并且无法正确终止会话...
有什么方法可以查看 Postfix 服务当前“打开的连接”列表,以及源 IP 地址和用于验证的用户名?我想查看此用户的连接数是否会随着时间的推移而增加。
我意识到我可以使用 netstat -pt | grep smptd 来查找到 smtpd 守护程序的开放连接并显示远程 IP 地址。我正在寻找更多详细信息,其中可能包括用户名,因为有多个用户从与问题用户相同的 IP 地址进入我们的服务器。
感谢任何信息。
谢谢
答案1
通过在邮件服务器上运行 lsof,我可以获取当前活动的 Postfix SMTP 连接列表:
sudo lsof -i TCP:smtp -i TCP:submission
该lsof
命令列出打开的文件,包括网络连接。这两个-i
开关使其显示到端口 25(SMTP)和端口 587(SMTP 提交端口)的 TCP 连接。如果您使用不同的端口,则需要编辑-i
示例中开关的参数,提供适当的服务名称或端口号。
lsof 命令应该适用于任何 UNIX 类型的操作系统。有关 lsof 命令的更多信息,请参见此处:https://lsof.readthedocs.io/en/stable/