公众号旧文

大部分人都知道 DNS,但可能很少有人知道还有反向 DNS(rDNS)

作者:胖子阅读 —

很多人对 DNS(域名系统)已经不陌生了。

当你在浏览器里输入一个域名,比如 example.com,DNS 会帮你把这个域名解析成服务器的 IP 地址,例如 93.184.216.34。

这个过程叫做正向解析(Forward DNS)。

简单来说就是域名 → IP 地址

但其实还有一个相反的过程:

IP 地址 → 域名

这就是今天要说的主角:反向 DNS(Reverse DNS,rDNS)。

一、什么是 rDNS?

反向 DNS(rDNS)就是通过 IP 地址查出对应的域名。

举个例子:

8.8.8.8 → dns.google

也就是当拿到一个 IP 地址时,可以通过 rDNS 查询出这个 IP 的名字。

这个名字通常被称为Hostname(主机名)

例如:

IP地址 Hostname
8.8.8.8 dns.google
1.1.1.1 one.one.one.one
17.253.144.10 apple.com

这些名字并不是 DNS 自动生成的,而是由 IP 地址的拥有者主动设置的。

二、rDNS 是怎么实现的?

在 DNS 系统里,实现反向解析依靠一种特殊的记录类型:

PTR 记录(Pointer Record)

PTR 记录的作用就是指定一个 IP 地址对应的域名。

例如:

8.8.8.8 → PTR → dns.google

当服务器查询这个 IP 的反向 DNS 时,DNS 就会返回 dns.google。

三、为什么 rDNS 的域名长得很奇怪?

如果你用工具查询 rDNS,例如在 Linux 上执行:

host 8.8.8.8

你会看到类似这样的结果:

图片

很多人第一次看到都会疑惑:

为什么 IP 会变成 8.8.8.8.in-addr.arpa?

原因是 DNS 系统是按域名结构设计的,而 IP 地址不是域名,因此需要一种特殊的转换方式。

规则是:

  1. 把 IP 地址倒过来
  2. 加上后缀 .in-addr.arpa

四、谁负责设置 rDNS?

和 DNS 不同,rDNS 不由域名持有人控制,而由 IP 地址持有人控制。

也就是说:

资源 谁控制
域名解析(A记录) 域名所有者
反向DNS(PTR记录) IP地址拥有者

举个例子:

如果你租了一台云服务器,IP 属于云厂商,比如:

  • AWS
  • 阿里云
  • 腾讯云

那么 PTR 记录默认是云厂商控制的。

有些云服务允许用户自定义 rDNS,但很多服务商是不允许随便改的。

五、rDNS 有什么用?

很多人以为 rDNS 没什么意义,但实际上它在互联网中非常重要。

1.邮件服务器反垃圾

这是 rDNS 最重要的用途。

很多邮件服务器都会检查:

  • IP 的 PTR 记录
  • Hostname 是否存在
  • Hostname 是否能正向解析回 IP

如果这些检查不通过,邮件很可能被判定为垃圾邮件。

典型检查流程:

IP → PTR → hostname
hostname → A记录 → IP

如果两个 IP 不一致,就会被怀疑是伪造邮件服务器。

2.网络日志和安全分析

很多服务器日志里都会显示 Hostname。

例如:

crawl-66-249-66-1.googlebot.com

通过 rDNS,管理员可以更容易识别访问来源。

例如:

Hostname 可能来源
googlebot.com Google爬虫
amazonaws.com AWS服务器
cloudflare.com Cloudflare节点

3.网络诊断

很多网络工具也会自动查询 rDNS,例如:

  • ping
  • traceroute
  • whois
  • host

这样在排查网络问题时更容易识别节点。

六、一个 IP 可以有多个 PTR 吗?

理论上 可以配置多个 PTR,但在实际互联网中通常只设置一个。

因为很多系统只会读取第一个结果。

七、rDNS 是互联网身份证

可以这样理解:

内容 类比
IP地址 电话号码
域名 联系人名字
rDNS 反查通讯录

DNS 是输入名字找电话。

而 rDNS 是输入电话找名字。

虽然普通用户几乎感觉不到它的存在,但在互联网基础设施里,rDNS 是非常重要的一环。

很多网络系统、邮件系统、安全系统,都依赖它来判断一台服务器是否可信。

请在微信客户端打开