所有外发邮件都显示“连接超时”的后缀

我一直在尝试使用GNU Mailman设置邮件列表,但是遇到了很多问题,完全是一场灾难。Postfix能够接收电子邮件,但无法发送出去,我查看了日志,发现了以下内容:
Mar 30 16:35:30 apott-server postfix/smtp[22572]: connect to gmail-smtp in.l.google.com[74.125.142.26]:25: Connection timed out
Mar 30 16:36:01 apott-server postfix/smtp[22572]: connect to alt1.gmail-smtp-in.l.google.com[173.194.76.27]:25: Connection timed out
Mar 30 16:36:31 apott-server postfix/smtp[22572]: connect to alt2.gmail-smtp-in.l.google.com[74.125.131.26]:25: Connection timed out
Mar 30 16:37:01 apott-server postfix/smtp[22572]: connect to alt3.gmail-smtp-in.l.google.com[173.194.67.27]:25: Connection timed out
Mar 30 16:37:31 apott-server postfix/smtp[22572]: connect to alt4.gmail-smtp-in.l.google.com[173.194.65.26]:25: Connection timed out
Mar 30 16:37:31 apott-server postfix/smtp[22572]: A0616100CCB: to=<example@gmail.com>, relay=none, delay=150, delays=0.06/0.01/150/0, dsn=4.4.1, status=deferred (connect to alt4.gmail-smtp-in.l.google.com[173.194.65.26]:25: Connection timed out)

很明显有些东西阻止了发件人的电子邮件发送,有没有人有任何建议来解决这个问题?
(服务器是一个Ubuntu Linux盒子)
感谢任何帮助。

3你使用的是哪种主机?这可能仅仅是因为你的机器连接到了一个不允许发送邮件的网络上的原因。 - kasperd
@kaspered 这是我自己的机器,连接在我自己的网络上。有进出邮件,我以前在不同的机器上都做过,但这个特定的机器似乎有些问题。 - APott
这可能是由于很多原因造成的,首先把您的邮件服务器IP输入到MXTOOLBOX 这里 进行查询。这可能发生在您的服务器使用家庭级宽带连接时,或者您的IP地址没有PTR记录,或者您的IP地址被列入黑名单。 - squareborg
@Shutupsquare 这里说没有任何问题。 - APott
你是用家庭宽带还是商业宽带服务? - squareborg
@Shutupsquare 回家 - APott
@APott 那就放弃直接发送电子邮件的尝试吧。大多数电子邮件服务器都会检查黑名单,而大多数家庭宽带IP地址都被列入黑名单,以帮助防止垃圾邮件。如果你的ISP没有阻止TCP:25端口,那么你可以使用智能主机来发送电子邮件。 - squareborg
就记录而言,我使用这个来确认我的电子邮件没有发送到服务器/通过网关,并再次打电话给ATT(第一次愚蠢的家伙说所有都是开放的)。再次致电并与二级进行交谈后,成功打开了端口,电子邮件顺利发送出去。谢谢! - user329869
3个回答

连接超时意味着您的TCP SYN数据包没有收到SYN-ACK回复。这意味着某些东西可能在阻塞SYN或SYN-ACK。
您可以使用traceroute来查找您的SYN数据包到达的距离。
traceroute -n -T -p 25 gmail-smtp-in.l.google.com

请注意,Ubuntu系统中存在不同的traceroute命令。上述命令适用于traceroute.db,但不适用于traceroute-nanog或inetutils-traceroute。
为了比较而言,使用端口80而不是端口25运行第二个traceroute可能会很有用。

3非常感谢你的回答。输出结果如下:追踪到 gmail-smtp-in.l.google.com (74.125.142.27),最多30个跳数,每个包60字节。1 192.168.1.254 3.567毫秒 20.770毫秒 20.768毫秒2 * * *3 * * *4 * * *5 * * *6 * * *7 * * *8 * * *9 * * *10 * * *11 * * *12 * * *13 * * *14 * * *15 * * *16 * * *17 * * *18 * * *19 * * *20 * * *21 * * *22 * * *23 * * *24 * * *25 * * *26 * * *27 * * *28 * * *29 * * *30 * * * - APott
5该输出显示SYN数据包无法离开您的网络。SYN数据包要么被192.168.1.254阻止,要么被路径上的下一个路由器阻止。您可以使用端口80将输出与另一个进行比较。 - kasperd
9对于在AWS EC2上的任何人来说,如果你发现这个问题:出站SMTP被故意限制速率(https://forums.cpanel.net/threads/intermittent-exim-gmail-smtp-connection-timeout.523911/),但是你可以要求放宽限制(https://aws.amazon.com/forms/ec2-email-limit-rdns-request)。 - msanford
1+1 路由器默认使用 SMTP 服务器白名单... - Willi Mentzel
我遇到了同样的问题,用80端口进行比较,traceroute的结果就会很清楚明了! - dustbuster

这可能与此无关,但我要在这里发布它,因为我很难找到我的问题的答案。通过编辑我的/etc/resolv.conf文件,将其设置为使用Google的域名服务器而不是设置为10.0.x.x IP地址,我成功地使vagrant虚拟机中的出站电子邮件正常工作。
sudo vi /etc/resolv.conf

更改域名服务器IP:
nameserver 8.8.8.8

然后你需要重新启动 postfix:
sudo /etc/init.d/postfix restart

这正是我在我的虚拟机上所寻找的。谢谢! - styks
2不是我的问题来接受。 - styks
1我认为这与traceroute能够将主机名解析为IP地址无关。我不认为postfix在DNS解析失败时会显示“连接超时”,因为那会产生误导。 - kasperd
@kasperd 我也遇到了“连接超时”的问题,这个方法对我也有效。我的DNS服务器有两个IPv6地址,然后是8.8.8.8 - 将这两个IPv6地址注释掉,只保留8.8.8.8 对我来说起作用。然而,这个文件是动态生成的,随时可能被覆盖,所以这不是最终解决方案,但至少它提供了一个很好的线索来继续解决问题。 - Izkata
看起来在我的设备上,gmail-smtp-in.l.google.com的IPv6地址超时了,但是相同的IPv4地址却可以正常工作。所以实际上我的设备与问题中的并不完全相同。 - Izkata
嗯,既然我知道要找什么了 - DigitalOcean封锁IPv6上的SMTP,对我来说这不是一个解决方案、网络或谷歌的问题。 - Izkata

在/etc/postfix/main.conf中设置一个中继主机到您的ISP SMTP服务器。
然后重新加载: sudo service postfix reload

21IT对于解释是有用的,比如relayhost设置,并且可能首先解释OP问题的原因:为了对抗垃圾邮件,许多消费者ISP会阻止发出邮件并强制用户使用他们的SMTP服务器。 - HBruijn