Postfix 是否可以进入某种条件或状态来阻止端口 25 上的连接?
我使用 Javamail 向 postfix 作为本地 MTA 发送邮件,大约 99% 的时间都有效。但是,我偶尔会看到以下异常:
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
nested exception is:
java.net.ConnectException: Connection refused
那么,是否有可能是队列已满导致这种情况?Postfix 是否可能处于主动拒绝本地连接的状态?
提前致谢!
答案1
如果连接被拒绝,你需要检查日志来找出原因为什么。
如果 99% 的时间都能正常工作,那么就不是防火墙的问题。Postfix 应该能够处理大多数负载而不会死机……如果这种情况间歇性地出现在日志中,那么它似乎正在恢复。我会查看失败连接的时间戳,并将其与 Postfix 中的日志进行匹配,看看那段时间发生了什么。
答案2
连接被拒绝通常意味着服务没有监听该端口。在您的情况下,当您看到该异常时,postfix 并未运行。
如果 postfix 太慢,您将收到超时异常。
当应用程序速度慢且正在监听时,TCP 子系统将建立 TCP 连接,内核将向应用程序发送请求。客户端将等待服务器应答,直到发生超时(应用程序中配置的超时)。