我正在尝试使用 telnet(debian lenny 5.0.2)来检查 postfix 安装的行为,但我无法 telnet 到 smtp。
telnet localhost smtp
telnet: Unable to connect to remote host: Connection refused
telnet 到端口 25 也不行。我可以 telnet 到端口 110 和 pop3。
我应该如何调试这个问题?
更新:命令 ps aux|grep 'postfix' 显示 postfix 未运行。检查 /var/log/mail.err 和 /etc/postfix/main.cf 发现 main.cf 中有一个拼写错误。更正后,postfix 运行正常。
请注意,“postfix start”返回一条消息,报告 postfix 正在启动。当 postfix不是启动时,没有返回任何错误消息或警告。
答案1
- 首先:检查 Postfix 是否正在运行:
ps aux | grep postfix
- 第二步:检查是否有人在监听 25 端口:
netstat -lnp | grep :25
- 第三:如果以上所有情况均正常,那么可能是系统防火墙阻止您打开此类连接;使用查看其配置
iptables -L
。
答案2
对于这个问题的未来搜索者来说,postfix(或任何其他服务器)可能正在运行,但具体不监听本地主机。它可以绑定到非本地主机的单个地址。
如果 netstat 的输出不是 *.25 或 0.0.0.0:25,则很有可能您已绑定到正在运行的任何接口,并且您必须 telnet 到该 IP(仍然是本地的!)
换句话说,localhost 和你机器上运行的 IP 不一样。