有人可以解释一下 Gmail 的这种行为吗?
root@mx0:# telnet gmail-smtp-in.l.google.com 25
Trying 173.194.71.26...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP f7si526563lbe.161 - gsmtp
QUIT
221 2.0.0 closing connection f7si526563lbe.161 - gsmtp
Connection closed by foreign host.
root@mx0:# telnet 176.9.118.232 25
Trying 176.9.118.232...
Connected to 176.9.118.232.
Escape character is '^]'.
Connection closed by foreign host.
root@mx0:# telnet mx.google.com 25
Trying 176.9.118.232...
Connected to mx.google.com.
Escape character is '^]'.
Connection closed by foreign host.
???
答案1
mx.google.com和176.9.118.232显然是同一个IP地址,而gmail-smtp-in.l.google.com却不一样。
导致此方法无法使用的原因可能有很多,但首先,我大胆猜测它是安全的。仅仅因为他们的一台 SMTP 服务器在端口 25 上接受不安全的请求并不意味着所有服务器都会这样做。事实上,当我通过简单的 NSLOOKUP 查找他们的 MX 服务器时,我没有找到 mx.google.com。这可能是因为它根本不是邮件服务器,甚至根本不存在。
答案2
[~] host mx.google.com
Host mx.google.com not found: 3(NXDOMAIN)
[~] host 176.9.118.232
232.118.9.176.in-addr.arpa domain name pointer master.rejector.ru.
您的 DNS 已损坏。(或者有某种 NXDOMAIN 通配符,在我看来是已损坏)。mx.google.com 不存在,您访问的不是 google。至于您尝试访问 mx.google.com 的原因则是另一回事。mx 是从“mx”类型记录的 DNS 查询返回的。不需要有名为 mx 的主机。
-编辑-
啊,我看到服务器 ID 本身是 mx.google.com。这只是服务器的主机名。它不必全局存在,甚至不必有效。最佳做法是,在发送电子邮件时,该主机名存在并与 ip 的 ptr 匹配,但在接收电子邮件时,它不会用于任何事情。