我最近安装了一个新的Debian服务器,
Reason : Connection timeout.
来自/var/log/mail.log的输出:
> May 6 02:42:53 k***** sm-mta[15070]: q465gjxF013677: > to=<*****@gmail.com>, ctladdr=<*****@*****.ca> (1001/1001), > delay=01:00:08, xdelay=00:00:00, mailer=esmtp, pri=300329, > relay=alt4.gmail-smtp-in.l.google.com., dsn=4.0.0, stat=Deferred: > Connection timed out with alt4.gmail-smtp-in.l.google.com.
netstat输出:
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 15069/sendmail: MTA tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 15069/sendmail: MTA
当从另一台计算机(telnet theserver.imworkingon.com 25)运行时,在25上运行Telnet也是成功的,但是如果我尝试从正在运行的服务器上运行它,则不能运行。 这是告诉我,不知怎的,出站端口25似乎被阻止…
有人有主意吗?
标准邮件故障排除步骤适用于此处…从日志中,我们看到您可以parsing您要发送到的gmail.com目的地的MX / DNSlogging。 所以这不是一个DNS或路由问题。
由于这是一个基本的SMTP传递,请尝试使用telnet到端口25,以确保您能够连接到目标主机…
我会遵循这个顺序:
dig mx gmail.com # Look for the mail destination IP in the output - "209.85.225.27" in this case telnet 209.85.225.27 25 # This is an attempt to telnet to port 25 (smtp) on the recipient's server...
你应该看到类似于:
Trying 209.85.225.27... Connected to iy-in-f27.1e100.net (209.85.225.27). Escape character is '^]'. 220 ***************************************
如果你没有看到上述内容,你的出站端口25 smtpstream量正在被机器级别(检查iptables等)或networking级别(检查networking防火墙或ISP策略)阻塞。
如果您看到类似的消息,那么您可以通过邮件,并且不应该收到超时错误。
连接超时到众所周知的服务通常意味着两件事之一:
1-您不能连接到任何SMTP服务器的25端口,因为您的ISP阻止了这一点。 检查您的ISP是否允许您的机器直接或通过中继发送电子邮件。 如果您的ISP /主机提供商提供了一个中继,请在/etc/mail/sendmail.mc文件的中间添加以下行:
define(`SMART_HOST', `[relay.your.isp.provides]')dnl
接下来以root身份运行sendmailconfig并检查是否可以正常工作。
2-可能出现您需要解决TCP窗口缩放问题。 这可以是任何东西从电缆,以太网卡驱动程序,卡本身,电缆,交换机和任何路由器之间,作为heisenbug它只能出现在您的具体configuration。 您可以尝试通过将以下行添加到/etc/sysctl.conf来绕过此操作:
net.ipv4.tcp_rmem = 4096 87380 174760 net.ipv4.tcp_wmem = 4096 16384 131072 net.ipv4.tcp_window_scaling = 0
接下来以root身份运行sysctl -p并再次检查是否解决了这个问题。
此外,您必须检查您的客户端选项是否禁止通过定义的接口发送邮件:
O ClientPortOptions = Addr = 1.2.3.4,Name = XXX
如果您的收件人在错误的networking中,则无法通过。