PTR 记录是 DNS 里的反向记录,作用是把一个 IP 地址指回一个主机名,方向正好与 A 记录相反。在自己的 VPS 或云服务器上发邮件,发件 IP 要有 PTR 记录,PTR 指向的主机名还要通过 A 或 AAAA 记录解析回同一个 IP。Gmail 的发件人指南把这一点列为所有发件人都要满足的要求。
PTR 记录是什么,反向解析怎样工作
PTR 记录回答的是“这个 IP 对应哪个主机名”。PTR 是 pointer(指针)的缩写。A 记录由域名查到 IP,属于正向解析;PTR 记录由 IP 查回主机名,所以叫反向解析,英文常写作 rDNS。
反向记录不在你的域名下面,而是放在专门的反向域里。IPv4 地址归在 in-addr.arpa 之下,查询时把四段数字倒过来写。以假设的地址 203.0.113.25 为例,它对应的反向记录名是 25.113.0.203.in-addr.arpa,这条 PTR 记录的值可以是 mail.example.com。IPv6 地址归在 ip6.arpa 之下,原理相同,只是按十六进制逐位倒序,名字会长很多。
这种结构也决定了 PTR 由谁来改。in-addr.arpa 下的记录跟着 IP 地址走,通常由管理这段 IP 的一方维护,在你自己的域名 DNS 面板里一般加不了。
ip反查为什么只显示一个主机名
“ip反查”这个说法其实指两件不同的事,查到的内容自然不一样。一种是查 PTR 记录,结果是这个 IP 自己登记的主机名;另一种是找“同一个 IP 上还有哪些网站”,这种列表来自第三方汇总的数据库,并不是 DNS 直接给出的。
| 对比项 | PTR 反向解析 | 同 IP 网站列表 |
|---|---|---|
| 回答的问题 | 这个 IP 登记的主机名是什么 | 还有哪些域名解析到这个 IP |
| 数据来源 | DNS 反向域(in-addr.arpa 或 ip6.arpa) | 第三方收集整理的数据库 |
| 典型结果 | 一个主机名 | 一串域名 |
| 常见用途 | 检查邮件服务器配置,排查网络问题 | 了解一台服务器上托管了哪些站点 |
| Digily 的反向IP地址查询 | 支持 | 不支持 |
反向IP地址查询是 Digily Link(我们的产品)提供的工具。它在服务器端调用 PHP 的 gethostbyaddr 函数,只返回一个主机名。DNS 本身允许一个 IP 有多条 PTR 记录,所以这个结果也不能用来判断是否配置了多条。它不会列出同一服务器上的所有网站。它也不做正向校验,不会再去查这个主机名的 A 或 AAAA 记录是否指回原来的 IP。
所以结果只有一行是正常的。这一行告诉你反向的那一半是什么,正向的那一半要靠后面检查步骤中的第二步来确认。
邮件服务器为什么要设置 PTR 记录
邮件服务器需要 PTR 记录,是因为 Gmail 把有效的正向和反向 DNS 写进了发件人要求。截至 2026 年 10 月 29 日,Gmail 帮助中心的电子邮件发件人指南在面向所有发件人的部分写道,“确保发件人网域或 IP 具有有效的正向和反向 DNS 记录,也称为 PTR 记录。”在面向每天发送 5000 封及以上邮件的发件人的部分,这句话又出现了一次。按该页面的说明,这些规则自 2024 年 2 月 1 日起适用于所有向 Gmail 账号发送邮件的发件人,日发送量超过 5000 封的发件人要求更严。
指南也说明了怎样才算“有效”。页面写道,“发送邮件的 SMTP 服务器的公共 IP 地址必须具有可解析为主机名的相应 PTR 记录。”这个主机名本身还要有 A 记录(IPv4)或 AAAA 记录(IPv6),并且解析回邮件服务器所使用的同一个公共 IP。页面最后归结为一句,“发件人 IP 地址必须与指针 (PTR) 记录中指定的主机名的 IP 地址一致。”
把这几句连起来看,就是一条首尾相接的链。
- 发件服务器的公网 IP,例如假设的 203.0.113.25。
- 查这个 IP 的 PTR 记录,得到主机名 mail.example.com。
- 查 mail.example.com 的 A 记录;如果发件 IP 是 IPv6 地址,就查 AAAA 记录。
- 查到的结果是 203.0.113.25,回到起点,链条闭合。
只要有一环断开,比如 IP 没有 PTR,或者 PTR 指向的主机名解析到了别的 IP,就不满足这条要求,发往 Gmail 的邮件可能被拒收或受到限制。Google 列出的是必须满足的条件,并没有承诺满足之后邮件一定进收件箱。
正反向一致的做法,运维界很早就有人建议。1996 年 2 月发布的 RFC 1912 第 2.1 节写道 “Make sure your PTR and A records match.”,也就是让 PTR 记录和 A 记录相互对应,并建议每个 IP 地址都在 in-addr.arpa 域里有一条与之匹配的 PTR 记录。RFC 1912 属于 Informational(信息类)文档,是运维建议,并非强制标准。Gmail 指南则把同样的思路写成了收信方的具体要求。
一台服务器有多个 IP 时
RFC 1912 还建议,一台机器有多个 IP 地址时,每个 IP 都应有 PTR 记录,不能只给第一个配置。如果邮件可能从其中任何一个地址发出,就要对每个地址分别做一遍下面的检查。
PTR 只是 Gmail 发件要求中的一项。同一份指南还要求所有发件人设置 SPF 或 DKIM;每天向 Gmail 账号发送超过 5,000 封邮件的发件人则要同时设置 SPF 和 DKIM,并设置 DMARC。这里的 Gmail 账号指以 @gmail.com 或 @googlemail.com 结尾的个人账号。具体内容请参阅上面链接的 Google 页面。
怎样检查 PTR 记录和 A 记录是否一致
检查分两步,先反向查出主机名,再正向查这个主机名是否指回同一个 IP。
- 确认发件 IP。你要查的是发送邮件的那台 SMTP 服务器的公网 IP,可以在服务器控制台或服务商后台找到。打开反向IP地址查询时,输入框里默认填的是你当前上网所用的 IP,一般是办公室或家里的出口地址,而不是服务器的地址,请先换成服务器的公网 IP。
- 查 PTR。在反向IP地址查询里提交这个 IP。查询在 Digily 的服务器端进行,相当于从外部看你的 IP 登记了什么名字。如果页面提示“我们无法获取您提供的IP的任何详细信息”,说明输入的不是有效 IP,检查一下是否多了空格或少了一段数字。
- 查正向记录。把返回的主机名复制到 DNS记录查询,发件 IP 是 IPv4 就看 A 记录,是 IPv6 就看 AAAA 记录。
- 对比两个 IP。如果 A 或 AAAA 记录里出现了你的发件 IP,链条就闭合了。如果查不到记录,或者查到的是别的地址,就按后面“找谁修改”一节处理。
刚改过的记录可能因为 DNS 缓存,暂时还显示旧值。遇到这种情况,过一段时间再查一次。
查询结果显示原来的 IP 是什么意思
结果显示的仍是你输入的 IP,通常说明没有查到可用的 PTR 记录,并不代表服务器离线。原因在于工具所用的 gethostbyaddr 函数。根据 PHP 官方手册,这个函数成功时返回主机名,失败时原样返回传入的 IP,输入格式错误时返回 false。
落到工具页面上,你会看到三种情况。
- 显示一个主机名,通常说明反向解析成功,接下来还要做正向核对。
- 显示的就是你输入的 IP,通常说明没有 PTR 记录,或者暂时没有查到。
- 显示“我们无法获取您提供的IP的任何详细信息”,说明输入的内容不是有效的 IP 地址。
反向查询不会去连接你的服务器,因此既说明不了服务器是否在线,也说明不了邮件服务是否在运行。反过来,查到主机名也不等于检查通过。工具不做正向校验,第二步不能省。
三种检查结果的对照示例
下表的例子是虚构的。IP 取自专门用于文档示例的地址段 198.51.100.0/24 和 203.0.113.0/24,主机名同样是假设的。
| 场景 | 发件 IP | 反向IP地址查询结果 | 主机名的 A 记录 | 结论 |
|---|---|---|---|---|
| 正确 | 203.0.113.25 | mail.example.com | 203.0.113.25 | PTR 与 A 一致 |
| 缺少 PTR | 203.0.113.26 | 203.0.113.26(原样返回) | 没有主机名可查 | 联系 IP 所属服务商添加 PTR |
| 不一致 | 198.51.100.7 | host7.provider.example | 198.51.100.70 | 改 PTR 或 A,使两者指向同一 IP |
第一行是目标状态,反向和正向都指向 203.0.113.25。
第二行的反向查询拿不到主机名,第二步也就无从做起。要解决这个问题,通常要请管理该 IP 的服务商加一条 PTR 记录。
第三行最容易看漏。反向查询确实返回了主机名,看上去没有问题,做完第二步才发现 A 记录指向的是 198.51.100.70,比发件 IP 多了一位数字。host7.provider.example 这类名字如果属于服务商,你无权修改它的 A 记录。更可行的办法是请服务商把 PTR 改成你自己的主机名,例如 mail.example.com,再在你的域名 DNS 里把这个主机名的 A 记录指向 198.51.100.7。
PTR 记录找谁修改
PTR 记录由管理这段 IP 地址的一方修改,通常是你的主机商、云服务商或网络运营商,而不是你的域名 DNS 服务商。你在域名 DNS 面板里能管理的是 A、AAAA、CNAME 这类正向记录。给邮件服务器主机名添加 A 或 AAAA 记录时,要填写实际发件服务器的公网 IP。
有的服务商可能在控制台里提供反向解析的设置入口,有的可能需要提交工单或联系客服,具体以服务商的说明为准。共享主机上多个用户共用同一个 IP,这个 IP 的 PTR 可能改不成你的域名。如果要自己发信,可以考虑使用独立的 VPS 或云服务器。如果邮件是通过第三方邮件服务商发出的,要核对的是该服务商的发件 IP,应向服务商确认 PTR 配置。
联系服务商之前,先准备好以下信息。
- 需要设置 PTR 的发件 IP;服务器有多个发件 IP 时逐个列出。
- 希望 PTR 指向的主机名,例如 mail.example.com。
- 确认这个主机名的 A 记录(IPv6 则为 AAAA 记录)已经指向该 IP。
先配好正向记录,服务商那边一改好 PTR,链条就能直接闭合,对方也更容易核实你提出的主机名确实归你管理。
Gmail 退信提到 PTR 时怎么排查
先弄清实际发信的是哪个 IP,再对这个 IP 把上面的两步检查做一遍。如果退信里给出了发件 IP,就以它为准,不要凭印象去查服务器的某个地址。下面几处最容易出问题。
- 查错了 IP。服务器有多个公网 IP,或者邮件经别的服务器转发出去,实际发件地址可能不是你查的那个。
- 漏查了 IPv6。服务器同时有 IPv6 地址时,邮件可能经 IPv6 发出。这时 IPv6 地址需要有自己的 PTR,主机名也需要有对应的 AAAA 记录。
- PTR 还是服务商的默认名字。默认名字本身不一定有问题。要看这个名字的 A 或 AAAA 记录是否指回发件 IP;指不回来,就是对照表里的第三种情况。
- 改动尚未生效。刚请服务商改过 PTR 或刚改过 A 记录,缓存过期前查到的可能还是旧结果。
- PTR 本身没问题。正反向都一致却仍被退信,就去核对 Google 指南里的其他要求,例如 SPF 或 DKIM。
想先看看发件 IP 现在登记的是什么主机名,可以用反向IP地址查询查看发件 IP 的 PTR 记录,再把查到的主机名放进 DNS记录查询,核对它的 A 或 AAAA 记录是否指回同一个 IP。