DNS 记录类型详解

# DNS 记录类型详解(人话版)

> 把 DNS 想成「通讯录」  
> 域名 = 人名,记录类型 = 联系方式种类,记录值 = 号码,TTL = 有效期

---

## 1. A 记录(Address)
- **作用**:绑定 **IPv4 地址**
- **示例**  
  ```text
  example.com.    300    IN    A    93.184.216.34
  • 场景:浏览器访问 http://example.com 时先查到这条 A 记录
  • 注意
    • 可多条,做负载均衡
    • TTL 越小,故障切换越快,但查询量增加

2. AAAA 记录(Quad-A)

  • 作用:绑定 IPv6 地址
  • 示例
    example.com.    300    IN    AAAA    2606:2800:220:1:248:1893:25c8:1946
    
  • 场景:用户网络支持 IPv6 时优先使用 AAAA;无则回退到 A
  • 注意:与 A 共存,互不影响

3. CNAME 记录(Canonical Name)

  • 作用:给域名起「别名」,指向另一个域名
  • 示例
    www.example.com.    600    IN    CNAME    example.github.io.
    
  • 场景
    • www 指向 GitHub Pages
    • CDN 把 static.example.com CNAME 到 cdn.cloudflare.com.
  • 注意
    • 不能与其它记录并存(根域通常禁止 CNAME)
    • 解析会多一跳,延迟略高

4. ALIAS / ANAME(虚拟 CNAME)

  • 作用:在根域实现「类似 CNAME」的效果,又能直接返回 A/AAAA
  • 示例(Cloudflare)
    example.com.    300    IN    A    104.16.133.229
    
    背后其实是 ALIAS 到 foo.herokuapp.com
  • 场景:裸域托管到 Heroku / Vercel / GitHub Pages
  • 注意:各厂商私有实现,用户不感知 CNAME 链

5. MX 记录(Mail eXchange)

  • 作用:告诉发件人「邮件应送到哪个服务器」
  • 示例
    example.com.    3600    IN    MX    10 aspmx.l.google.com.
    example.com.    3600    IN    MX    20 alt1.aspmx.l.google.com.
    
  • 场景:企业用 Google Workspace / 腾讯企业邮
  • 注意
    • 数字越小优先级越高
    • 必须能解析到对应 A/AAAA

6. TXT 记录(Text)

  • 作用:存任意文本,常做「域名所有权验证」
  • 示例
    example.com.    300    IN    TXT    "v=spf1 include:_spf.google.com ~all"
    example.com.    300    IN    TXT    "google-site-verification=abcde..."
    
  • 场景:SPF、DKIM、各种平台域名验证

7. NS 记录(Name Server)

  • 作用:声明「子域由谁来托管」
  • 示例
    sub.example.com.    86400    IN    NS    ns1.cloudflare.com.
    
  • 场景:把子域交给 Cloudflare 等第三方托管

8. PTR 记录(Pointer)

  • 作用:IP → 域名的反向解析
  • 示例
    34.216.184.93.in-addr.arpa.  3600  IN  PTR  mail.example.com.
    
  • 场景:邮件服务器自证清白,防垃圾邮件

速查表

记录 面向 值类型 能否共存 典型用途
A IPv4 1.2.3.4 Web 服务器
AAAA IPv6 2001:db8::1 Web 服务器
CNAME 域名 target.example.com 别名、CDN
ALIAS/ANAME 域名 同上 根域名指向 CDN
MX 邮件服务器域名 10 mail.example.com 收邮件
TXT 任意字符串 "k=v" SPF、DKIM、验证
NS 权威 DNS 域名 ns1.xxx.com 子域托管
PTR 域名 mail.example.com 反向解析

实战问答

问题 一句话答案
根域想托管到 Vercel,但只给 CNAME? ALIAS/ANAME 指到 cname.vercel-dns.com.
CNAME 链会让解析变慢吗? 主流递归 DNS 会缓存整条链,日常无感
A 与 AAAA 并存,浏览器怎么选? Happy Eyeballs:并发查,IPv6 超时 250 ms 就回退 IPv4
dig 看不到 CNAME,只看到 A? CDN 做了 CNAME 展平,隐藏中间链

口诀总结

  • 浏览器要地址 → A / AAAA
  • 想偷懒、让 IP 可变 → CNAME
  • 根域名想偷懒 → ALIAS / ANAME
  • 收邮件 → MX + A/AAAA
  • 证明自己 → TXT
  • 子域交给别人 → NS
  • 邮件服务器不被当垃圾 → PTR
posted @ 2025-07-29 19:51  Timskt  阅读(53)  评论(0)    收藏  举报