AWS EC2 上的另一个 telnet 到 25 无法正常工作

Yet another telnet to 25 on AWS EC2 not working

我检查了所有这些我可以在 SO 上找到的错误问题,并且我已经完成了看起来我应该做的所有事情。仍然,当我远程登录到端口 25

时,连接被拒绝

这是其他问题中要求的:

netstat-an | grep LISTEN
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:53045               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      
tcp        0      0 :::111                      :::*                        LISTEN      
tcp        0      0 :::80                       :::*                        LISTEN      
tcp        0      0 :::22                       :::*                        LISTEN      
tcp        0      0 :::443                      :::*                        LISTEN      
tcp        0      0 :::52266                    :::*                        LISTEN

所以,端口 25 正在侦听。接下来,我可以在本地主机上远程登录到 25 吗?是的。没问题。我可以做本地主机,我可以用 127.0.0.1 做,我可以用正确的 IP 地址做。只要我在机器上,我就可以远程登录到端口 25。

接下来,EC2 防火墙。有两个级别,iptables 和 EC2 安全区域。我确保关闭了 iptables 和 ip6tables。服务显示两者都是 "Firewall is not running"。我检查了 EC2 安全区域。它显示:

25  tcp  0.0.0.0/0

所以,它允许所有流量到端口 25。

仍然,当我 telnet 到端口 25 时,连接被拒绝。

我继续。我检查了 /etc/hosts.allow 和 /etc/hosts.deny。两者都是空的。

我继续。我查看了邮件文件夹。该域位于本地主机名中(这无关紧要,因为我从来没有达到输入收件人电子邮件地址的地步)。我没有看到任何关于阻止或允许主机的内容。也许神秘的 sendmail.cf 文件中埋藏着什么东西。所以,我想确保 sendmail 确实在监听

lsof -i :25
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sendmail 11457 root    4u  IPv4 830292      0t0  TCP *:smtp (LISTEN)

与 netstat 相同。侦听端口 smtp (25) 上的所有设备。

所以,我很茫然。为什么我会在端口 25 上拒绝连接?它不是无法到达服务器。不是它不听。明明是监听拒绝连接

这里的问题是有两个问题:

1) 许多 ISP 阻止出站端口 25 请求。因此,telnet somedomain.com 25 会失败并报告类似 "denied" 或 "unreachable."

的情况是很常见的

2) 在端口 25 上运行的正确程序是邮件程序。邮件程序旨在将电子邮件发送到您的电子邮件服务,然后该服务使用域名的 MX 记录来发送电子邮件。我发现,当您使用 Network Solutions 注册域名并将 "All" IP 地址设置为某个地址时,他们不会设置 MX 记录地址。这仍然设置为 Network Solutions 的邮件服务器。因此,如果有人使用适当的电子邮件程序访问您的域名,它将转到 mx.yourdomain.com,这可能不是您的服务器。

在我的例子中,我必须使用 Network Solutions 手动设置 mx 记录的 IP 地址。然后,我神奇地开始收到电子邮件。

对于那些不知道如何查看MX记录的人,在Linux中,您可以运行 dig domain.name MX。但是,重要的不是您的 MX 记录设置。这是您的邮件服务器的设置。例如,如果我的计算机显示 mx 记录是 12.34.56.78,而我使用 GMail,Google 显示 mx 记录是 p.ctmail.com,那么通过 GMail 发送电子邮件将失败。