【从0开始学习计算机网络】| DNS -记录类型详解

🌈个人主页 :一条泥憨鱼(欢迎各位大佬莅临)

🎬精选专栏传送门:

❄️《数据结构》 ❄️《AI与Agent那些事》

❄️《从0开始学计算机网络》 ❄️《后端开发》

前言:

假设你昨天刚花几十块钱买了一个域名,比如 `my-cool-site.com`。你兴冲冲地跑到域名注册商的后台,想让它能打开你的网站。结果一看,后台密密麻麻全是表单,里面有一个词你听都没听过------DNS 记录

A 记录、CNAME、MX......这些是什么鬼?该填哪个?

别慌。这篇文章就把最常见的六种 DNS 记录类型挨个讲明白,保证你看完就知道该怎么填,也看得懂别人在说什么。

先搞懂 DNS 到底在干嘛

在讲"记录类型"之前,我们得先弄清楚 DNS 本身是个啥。

你可以把互联网想象成一个巨大的城市,每台服务器就是城市里的一栋房子。每栋房子都有一个门牌号,这个门牌号就是IP 地址。比如 `104.21.55.12` 就是一栋"房子"的门牌号。

但问题来了------正常人谁记得住 `104.21.55.12` 这种数字?你只会记得 `google.com` 这个"名字"。

DNS(Domain Name System,域名系统) 就是干这个的:它是一本巨大的电话簿,专门负责把"名字"翻译成"门牌号"。你在浏览器里输入 `google.com`,DNS 就帮你查一下这本电话簿,找到对应的 IP 地址,然后你的电脑才能连上那台服务器。

那么,DNS 记录是什么?

就是这本电话簿里的一行行条目。每一条记录,就是一条"名字 → 地址"的映射规则。不同的记录类型,就是不同格式的"条目"------有的记录是告诉你"这个名字对应哪个 IP",有的是告诉你"这个名字对应另一个名字",还有的是告诉你"这个域名管邮件的是谁"。

接下来我们逐个看。

A 记录和 AAAA 记录------最基础的两兄弟

先来说最基础、最常用的两种:A 记录AAAA 记录

刚才说了,IP 地址 是服务器的"门牌号"。但门牌号有两种格式

  • IPv4:长这样 `104.21.55.12`,是四组数字,每组 0~255。这是最老牌的门牌号格式,用了好几十年。但问题是,全球的 IPv4 地址快用完了,不够分。

  • IPv6:长这样 `2606:4700:4700::1111`,是一长串十六进制字符。这是新一代门牌号格式,数量多到几乎用不完。

A 记录(Address Record) 就是把一个域名指向一个IPv4地址。比如:

复制代码
my-cool-site.com.  3600  IN  A  104.21.55.12

意思是:如果有人访问 `my-cool-site.com`,请带他去 `104.21.55.12` 这台服务器。

AAAA 记录(Quad-A Record) 则是指向IPv6 地址。注意,不是"4A"而是"AAAA"------因为 IPv6 地址是 IPv4 的四倍长,所以名字里也带了四个 A。

复制代码
my-cool-site.com.  3600  IN  AAAA  2606:4700:4700::1111

怎么查一个域名有没有 A 记录?用 `dig` 命令(macOS / Linux 自带,Windows 可以装一个):

bash 复制代码
$ dig google.com A



;; ANSWER SECTION:

google.com.     300 IN  A   142.250.72.14

```

看到 `A` 那一行了吗?那就是 Google 的 IPv4 地址。再查一下 AAAA:

bash 复制代码
$ dig google.com AAAA



;; ANSWER SECTION:

google.com.     300 IN  AAAA    2404:6800:4008:c06::8a

```

实际使用中,绝大多数网站只需要 A 记录就够了。如果你买的主机只给你一个 IPv4 地址,那就只填 A 记录。如果你的服务器同时支持 IPv6,那可以两条都填上,这样 IPv6 用户访问你的网站时就不用绕路。

CNAME 记录------起外号的技巧

接下来是 CNAME 记录(Canonical Name Record,规范名称记录)

它解决的是一个很常见的需求:给域名起别名

举个例子。你的主域名是 `my-cool-site.com`,但你希望用户输入 `www.my-cool-site.com` 也能打开你的网站------毕竟大家都习惯敲 `www`。

你有两个选择:

  1. 再建一条 A 记录,把 `www.my-cool-site.com` 也指向同一个 IP。

  2. 建一条 CNAME 记录,让 `www.my-cool-site.com` **指向** `my-cool-site.com`,剩下的让 DNS 系统自己去查。

第二种就是 CNAME 的用法:

bash 复制代码
```

www.my-cool-site.com.  3600  IN  CNAME  my-cool-site.com.

```

你可以把它理解成"公司前台转接":别人打 `www` 这个分机,前台(CNAME)直接把电话转给主号码(`my-cool-site.com`)去处理。

CNAME 最常见的用途有两个:

  • 统一入口:就像上面这样,把 `www` 指向主域名,或者反过来。

  • CDN 加速:很多 CDN 服务商会给你一个类似 `xxx.cloudfront.net` 的域名,你只要用 CNAME 把你的域名指过去,CDN 就自动帮你分发内容了。

但 CNAME 有个大坑,新手特别容易踩:

CNAME 不能指向 IP 地址,只能指向另一个域名。

什么意思?你不能写:

bash 复制代码
www.my-cool-site.com.  3600  IN  CNAME  104.21.55.12   # ❌ 错误

CNAME 的目标必须是一个域名。另外,CNAME 不能和 MX 记录同时存在( 下一节讲 MX),因为CNAME 会把所有查询都"转交"出去,邮件服务器就找不着方向了。

MX 记录------让邮件找到你家邮箱

假设你用 `my-cool-site.com` 这个域名来收发邮件,邮箱地址是 `hello@my-cool-site.com`。

那么问题是:当别人给你发邮件时,他怎么知道这封邮件该送到哪台服务器?

答案是看 MX 记录(Mail Exchange Record,邮件交换记录)

你可以把 MX 记录想象成小区的收发室。别人给你寄信,地址写的是"XX 小区 3 栋 502",但邮递员不知道 502 具体在哪------他只需要把信交给收发室(MX 服务器),收发室自然会分拣到你家。

MX 记录长这样:

bash 复制代码
my-cool-site.com.  3600  IN  MX  10  mail.my-cool-site.com.

注意中间那个 `10`,这叫优先级数字越小,优先级越高。如果你配置了两条 MX 记录:

bash 复制代码
my-cool-site.com.  3600  IN  MX  10  mail1.my-cool-site.com.

my-cool-site.com.  3600  IN  MX  20  mail2.my-cool-site.com.

那么发件服务器会优先尝试`mail1`,如果 `mail1` 挂了,再尝试 `mail2`。这就像收发室有两个窗口,优先找 1 号窗口,没人再去 2 号。

配置 MX 记录时,需要把目标指向你实际的邮件服务器域名。如果你用的是企业邮箱服务(比如腾讯企业邮、阿里企业邮),服务商会给你一串 MX 记录值,你照着填就行。

这里有个很容易搞混的点:MX 记录的目标不能是 IP 地址,必须是域名 。而且,目标域名本身需要有一条 A 记录,否则邮件服务器也找不到它。

NS 记录和 PTR 记录------管事的和反查的

最后两个相对冷门,但面试和排查问题时经常会碰到。

NS 记录(Name Server Record,域名服务器记录) ------它的作用是委派

"委派"这个词听起来有点官腔,换个说法:NS 记录就是告诉全世界"这块地归谁管"

举个例子。你有一个域名 `example.com`,它的所有 DNS 记录都托管在某个 DNS 服务商那里。那么 `example.com` 的 NS 记录就会指向那个服务商的域名服务器,比如:

bash 复制代码
example.com.  3600  IN  NS  ns1.dnsprovider.com.

example.com.  3600  IN  NS  ns2.dnsprovider.com.

这就像你买了一块地,立了个牌子写着"这片地归 XX 物业管理处管"。别人想知道这块地的任何信息(比如 A 记录、MX 记录),都要去问那个物业管理处。

NS 记录还有一个常见场景:把子域名委派出去。比如你想把 `blog.example.com` 单独交给另一个 DNS 服务商管理,就可以在 `example.com` 上加上:

bash 复制代码
blog.example.com.  360

这样一来,`blog.example.com` 的查询就会交给另一家服务商处理,而 `example.com` 的其他记录不受影响。

**PTR 记录(Pointer Record,指针记录)**则是反着来的。

A 记录解决的是"域名 → IP"的查询,PTR 记录解决的是"IP → 域名"的查询 。这叫做反向解析

什么时候会用到?最常见的是邮件服务器的反垃圾邮件验证。很多邮件服务器收到邮件时,会反向查一下发件 IP 是否有对应的域名,如果没有,可能直接判为垃圾邮件。

怎么查 PTR 记录?用 `nslookup`:

bash 复制代码
$ nslookup 142.250.72.14

14.72.250.142.in-addr.arpa  name = maa03s26-in-f14.1e100.net.

```

看到没?它把 IP 反查回了域名 `maa03s26-in-f14.1e100.net`------这是 Google 的服务器。

注意 PTR 记录不是你想配就能配的。因为 IP 地址是运营商或云服务商分配给你的,PTR 记录通常需要向 IP 的所有者申请才能配置,一般用户接触不到。

总结

最后,把今天讲的六种记录类型汇总成一张对照表:

| 记录类型 | 作用 | 类比 | 常用人群 |

| A | 域名 → IPv4 地址 | 门牌号 | 所有人 |

| AAAA | 域名 → IPv6 地址 | 新门牌号 | 支持 IPv6 的站点 |

| CNAME | 域名 → 另一个域名(别名) | 前台转接 | 有 CDN / 多子域名 |

| MX | 指定邮件服务器 | 小区收发室 | 用域名收发邮件 |

| NS | 指定域名由谁管理(委派) | 物业牌子 | 域名托管 / 子域名拆分 |

| PTR | IP → 域名(反向查询) | 门牌号查户主 | 邮件服务器、反垃圾 |

初学者最常碰到的就是 A、CNAME、MX 三种。买完域名,先配一条 A 记录指向你的服务器,网站就能开了;想加 `www`,加一条 CNAME;想用域名收邮件,配 MX。NS 和 PTR 了解就好,遇到问题再深入。

最后给你一个建议:装个 `dig` 工具(macOS / Linux 自带,Windows 可以装 WSL 或下载 Windows 版),没事就 `dig example.com A` 查一查,再 `dig example.com MX` 查一查。看多了这些输出,DNS 记录对你来说就不再是玄学了。

毕竟,DNS 就像互联网的通讯录,而记录类型,就是通讯录里不同的字段。搞懂了它们,你的域名就真正"听你指挥"了。

相关推荐
u1301304 小时前
GitHub 热榜项目:日榜(2026-08-21)
驱动开发·github
MicrosoftReactor6 小时前
技术速递|GitHub Copilot App 入门指南:管理你的工作
ai·github·copilot·agent
阿里嘎多学长7 小时前
2026-08-20 GitHub 热点项目精选
开发语言·程序员·github·代码托管
小妖同学学AI7 小时前
AI视频生成难在提示词?这个Claude插件让Seedance 2.0效率翻倍,附超全示例!
人工智能·开源·github·音视频
Bioinfo Guy10 小时前
DeepSeek Harness 最强的,可能不是模型,而是插件
github·skill·deepseek
慕容引刀10 小时前
或许你真的需要这个Git神器:让团队提交文案终于对齐了
人工智能·git·vscode·自然语言处理·github
桌角的眼镜10 小时前
5\.28文章改写:用 Claude Code 接入 GLM\-5\.1:从安装到终端实战的完整配置指南
后端·程序员·github·开发工具·效率工具
峰向AI10 小时前
⭐Drawnix:唯一做到 思维导图+流程图+自由画笔 一体化的免费开源工具
github