跳转到内容

为自己的IP设置反向DNS:为什么没有PTR记录邮件会被当作垃圾邮件

更新与新闻  ·   ·   ·  5 分钟 阅读时间

重点摘要
  • PTR记录将IP地址反向解析为主机名——是普通A记录的对应项。
  • 许多邮件服务器会拒绝没有PTR记录的IP发来的邮件,或将其视为强烈的垃圾邮件信号。
  • PTR记录由IP地址段的所有者设置,如果是租用的服务器,也就是主机服务商——而不是你自己在区域文件中设置。
  • 关键不仅在于PTR记录是否存在,还在于它是否与正向解析相匹配(FCrDNS)。

邮件发出去了,没有报错,但收件人那边始终收不到——不是进了垃圾箱,而是根本没有到达。这通常不是你邮件服务器本身的问题,而是发信IP地址的问题。准确地说:它缺少反向解析。

PTR记录到底是做什么的

A记录回答的问题是“这个名称对应哪个IP?”。PTR记录回答的是相反的问题:“这个IP对应哪个名称?”。从技术上讲,它不在你常规的区域中,而是位于该IP地址所属的in-addr.arpa区域中——由IP地址段的分配对象来管理。

这对邮件服务器很重要,因为它在建立连接时会通过HELO/EHLO用一个名称来自报身份。接收端服务器随后会检查:发信IP是否能解析出一个名称?这个名称反过来解析是否又指向同一个IP(正向确认反向DNS,即FCrDNS)?只要缺少其中一项,或两者对不上,对垃圾邮件过滤器来说就是一个信号——足以导致拒收。

情况许多邮件服务器的处理方式典型结果
不存在PTR记录连接被判定为可疑,或直接被拒绝邮件始终无法到达收件人,通常没有明确的错误提示
PTR指向通用的服务商名称(例如host-123-45.provider.example)不构成硬性拒收标准,但信誉较差邮件常常被打入垃圾箱
PTR与主机名匹配,且正向解析予以确认(FCrDNS)满足可信发件人的一项基本标准邮件在这一项检查上顺利通过
从技术上讲,PTR记录不属于你的域名,而是属于IP地址。如果你租用的是服务器,反向区域由主机服务商管理——你无法自己在区域文件中添加它,而必须向服务商申请修改,例如通过客户面板或工单。

分步指南:为你的IP设置PTR记录

  1. 检查当前的PTR记录。首先查看你的IP目前设置了什么。
    dig -x 203.0.113.10 +short
    如果没有返回结果,说明目前不存在PTR记录。
  2. 确定合适的主机名。选择一个你也会将其设置为A记录的名称——常见的做法是使用子域名,例如mail.deinedomain.de,或者你平时用于SSH等用途的服务器名称。
  3. 为这个名称设置正向记录(A记录),以便日后能够确认反向解析。
    mail.deinedomain.de.  IN  A  203.0.113.10
  4. 向主机服务商申请修改PTR记录。由于反向区域归服务商所有,你在这里只需提供想要的主机名,记录由服务商在服务器端设置。
    主题:203.0.113.10 的PTR记录申请
    请将PTR设置为 mail.deinedomain.de。
  5. 调整邮件服务器中的HELO/EHLO主机名,使其与PTR和A记录现在提供的名称完全一致——否则FCrDNS检查仍然会不一致。
最常见的错误:PTR设置好了,却缺少对应的A记录——或者邮件服务器通过HELO又用了第三个完全不同的名称。对FCrDNS而言,PTR、A记录和HELO名称必须三者一致,否则单独设置PTR记录几乎起不到什么作用。
PTR的主机名不必一定使用你的主域名,可以用一个技术性名称,例如mail.deinedomain.deserver1.deinedomain.de。这样可以把“服务器叫什么名字”和“上面运行哪个网站”区分开来,即使在同一台带自建邮件服务器的Root服务器上运行多个域名,也能保持清晰易维护。
PTR记录是入场券,不是保证——它消除了一项硬性排除标准,但不能替代SPF、DKIM和DMARC。

需要注意的是:PTR记录是必要条件,但不是充分条件。即使PTR设置正确,邮件仍可能因为缺少SPF记录、没有DKIM签名或IP信誉不佳而被打入垃圾箱。在租用的Root服务器上运行自建邮件服务器的人,应该把PTR、SPF和DKIM作为一个整体来看待,而不是逐项勾选了事。

如何检查设置是否生效

服务商完成修改后,你可以自己核实一切是否匹配:

# 1. 查询PTR记录
dig -x 203.0.113.10 +short
# 预期结果: mail.deinedomain.de.

# 2. 检查该名称的正向解析
dig mail.deinedomain.de +short
# 预期结果: 203.0.113.10

# 3. 用自己的IP测试邮件服务器的HELO名称
telnet mail.deinedomain.de 25

如果PTR的返回结果和A记录的返回结果一致,就满足了FCrDNS。反向区域的DNS更改在全网生效可能需要一些时间——如果第一次查询仍显示旧状态,几个小时后再测一次是正常的。

如果你对DNS服务器本身及其运维更感兴趣,比如自己的区域运行在自建的域名服务器上,也可以参考BIND DNS服务器安全漏洞一文中的背景介绍——一旦不只是邮件服务器,连自己的DNS基础设施也需要关注,这篇文章就很有参考价值。

如果服务商不允许修改PTR记录

并非每份主机合同都允许客户自由设置PTR记录——有些IP地址段是与通用名称固定绑定的。因此,在专门为发送邮件预订服务器之前,值得先问清楚是否可以设置个性化的PTR记录。这一点足够重要,它对后续送达率的影响,比邮件服务器本身几乎任何其他设置都更大。

常见问题

我能自己在自己的DNS区域里设置PTR记录吗?
不能。PTR记录位于该IP地址的反向区域中,归IP地址段的所有者管理——如果是租用的服务器,也就是主机服务商。你只能申请想要的主机名,记录本身由服务商在服务器端设置。
只要PTR记录正确,我的邮件就不会再被打入垃圾箱了吗?
不是的,它只是消除了一项硬性排除标准。此外通常还需要匹配的SPF记录、DKIM签名,以及随时间积累起来的良好IP信誉。
FCrDNS具体是什么意思?
即正向确认反向DNS(Forward-Confirmed reverse DNS):该IP的PTR记录给出一个主机名,随后查询这个主机名的A记录又得到同一个IP。只有两个方向都吻合,这项检查才算通过。
PTR记录的修改需要多久才能生效?
这取决于服务商以及反向区域的TTL设置。通常几个小时内就能通过dig或host查询到修改后的结果;如果在申请后立即查询,第一次可能仍会显示旧值。
运行自建邮件服务器,是否必须要有一个带独立PTR的专属IP?
要想稳定送达,是的。如果这个IP由多个发件人共用,或者无法设置个性化PTR,那么你的送达率就会取决于同一IP上其他发件人的信誉——这一点几乎无法控制。
Prepaid-Host.com 本身即为服务器、虚拟主机与域名服务商,在此报道的正是自己所处的市场。我们如何处理这一点,见利益披露说明