DNS 配置 #

DNS 基础知识 #

什么是 DNS? #

DNS(Domain Name System)是将域名转换为 IP 地址的系统。

text
用户输入域名 → DNS 查询 → 返回 IP 地址 → 访问网站

DNS 记录类型 #

类型 全称 用途
A Address 域名指向 IPv4 地址
AAAA IPv6 Address 域名指向 IPv6 地址
CNAME Canonical Name 域名指向另一个域名
NS Name Server 指定域名服务器
MX Mail Exchange 邮件服务器
TXT Text 文本记录(验证等)

Netlify DNS 记录 #

A 记录(顶级域名) #

用于顶级域名(如 example.com):

text
类型: A
名称: @
值: 75.2.60.5
TTL: 3600(或默认)

Netlify 的 A 记录地址:

text
75.2.60.5

CNAME 记录(子域名) #

用于子域名(如 www.example.com):

text
类型: CNAME
名称: www
值: your-site.netlify.app
TTL: 3600(或默认)

配置方式对比 #

方式一:Netlify DNS(推荐) #

text
┌─────────────────────────────────────────────────────┐
│              使用 Netlify DNS                        │
├─────────────────────────────────────────────────────┤
│ 优点:                                              │
│ • 自动配置所有记录                                  │
│ • 免费 SSL 证书自动配置                             │
│ • 更快的 DNS 解析                                   │
│ • 集中管理                                          │
│                                                     │
│ 缺点:                                              │
│ • 需要更改 Nameservers                              │
│ • 邮件服务需要额外配置                              │
└─────────────────────────────────────────────────────┘

配置步骤:

  1. 添加域名到 Netlify

    text
    Team overview → Domains → Add or register domain
    
  2. 获取 Nameservers

    text
    dns1.p01.nsone.net
    dns2.p01.nsone.net
    dns3.p01.nsone.net
    dns4.p01.nsone.net
    
  3. 在域名注册商修改 Nameservers

    常见注册商操作路径:

    • GoDaddy: Domains → DNS → Nameservers
    • Namecheap: Domain List → Manage → Nameservers
    • 阿里云: 域名 → 解析 → DNS 修改
    • 腾讯云: 域名注册 → 我的域名 → DNS 修改
  4. 等待生效

    text
    通常需要几分钟到几小时
    最长可能需要48小时
    

方式二:外部 DNS #

text
┌─────────────────────────────────────────────────────┐
│              使用外部 DNS                            │
├─────────────────────────────────────────────────────┤
│ 优点:                                              │
│ • 保持现有 DNS 服务商                               │
│ • 邮件服务不受影响                                  │
│ • 更灵活的配置                                      │
│                                                     │
│ 缺点:                                              │
│ • 需要手动配置记录                                  │
│ • SSL 证书配置可能延迟                              │
└─────────────────────────────────────────────────────┘

配置步骤:

顶级域名:

text
类型: A
名称: @
值: 75.2.60.5

www 子域名:

text
类型: CNAME
名称: www
值: your-site.netlify.app

常见 DNS 配置场景 #

场景1:简单网站 #

text
example.com      → A 记录 → 75.2.60.5
www.example.com  → CNAME → your-site.netlify.app

场景2:多子域名 #

text
example.com       → A 记录 → 75.2.60.5
www.example.com   → CNAME → site1.netlify.app
blog.example.com  → CNAME → site2.netlify.app
docs.example.com  → CNAME → site3.netlify.app

场景3:保留邮件服务 #

使用外部 DNS 时保留邮件服务:

text
example.com       → A 记录 → 75.2.60.5
www.example.com   → CNAME → your-site.netlify.app
@                 → MX 记录 → mail.example.com

场景4:CDN 加速 #

text
example.com       → A 记录 → 75.2.60.5
www.example.com   → CNAME → your-site.netlify.app
cdn.example.com   → CNAME → cdn.provider.com

DNS 检查工具 #

命令行工具 #

dig 命令:

bash
# 检查 A 记录
dig example.com

# 检查 CNAME 记录
dig www.example.com CNAME

# 检查 Nameservers
dig example.com NS

# 指定 DNS 服务器
dig @8.8.8.8 example.com

nslookup 命令:

bash
# Windows/Linux/macOS
nslookup example.com

# 指定类型
nslookup -type=CNAME www.example.com

host 命令:

bash
host example.com
host -t CNAME www.example.com
host -t NS example.com

在线工具 #

DNS 传播 #

什么是 DNS 传播? #

DNS 更改后,全球 DNS 服务器需要时间同步更新,这个过程叫 DNS 传播。

text
┌──────────────┐
│  更改 DNS    │
└──────┬───────┘
       │
       ▼
┌──────────────┐     ┌──────────────┐
│  DNS 服务器1  │ ──▶ │  DNS 服务器2  │
│  (已更新)   │     │  (未更新)   │
└──────────────┘     └──────────────┘

传播时间 #

情况 时间
大多数情况 几分钟到几小时
极端情况 最长48小时
Nameservers 更改 最长48小时

加速传播 #

  1. 降低 TTL 值

    text
    更改前将 TTL 设置为较低值(如 300)
    更改后等待旧 TTL 时间
    再将 TTL 恢复正常
    
  2. 使用 Netlify DNS

    text
    Netlify DNS 传播速度更快
    

TTL 设置 #

什么是 TTL? #

TTL(Time To Live)是 DNS 记录的缓存时间。

text
TTL = 3600 秒 = 1 小时

推荐设置 #

场景 TTL
稳定运行 3600(1小时)或更长
计划更改 300(5分钟)
测试阶段 300(5分钟)

DNS 故障排查 #

问题1:域名无法解析 #

检查步骤:

bash
# 1. 检查 DNS 记录
dig example.com

# 2. 检查 Nameservers
dig example.com NS

# 3. 检查传播状态
# 使用在线工具检查

可能原因:

  • DNS 记录配置错误
  • Nameservers 未正确设置
  • DNS 传播未完成

问题2:域名解析到错误地址 #

检查步骤:

bash
dig example.com +short

解决方法:

  • 确认 A 记录值为 75.2.60.5
  • 确认 CNAME 值为正确的 Netlify 域名
  • 清除本地 DNS 缓存

清除本地 DNS 缓存:

bash
# macOS
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

# Windows
ipconfig /flushdns

# Linux
sudo systemd-resolve --flush-caches

问题3:子域名无法访问 #

检查步骤:

bash
dig www.example.com CNAME

解决方法:

  • 确认 CNAME 记录存在
  • 确认 CNAME 值正确
  • 确认子域名已在 Netlify 添加

问题4:邮件服务受影响 #

原因: 使用 Netlify DNS 后,邮件记录需要重新配置。

解决方法: 在 Netlify DNS 添加 MX 记录:

text
类型: MX
名称: @
值: mail.example.com
优先级: 10

Netlify DNS 管理 #

添加 DNS 记录 #

text
Team overview → Domains → 选择域名 → DNS records → Add record

支持的记录类型 #

  • A
  • AAAA
  • CNAME
  • MX
  • TXT
  • NS
  • SRV
  • CAA

删除 DNS 记录 #

text
Team overview → Domains → 选择域名 → DNS records → 删除记录

DNS 安全 #

DNSSEC #

Netlify DNS 支持 DNSSEC(DNS 安全扩展)。

启用方式:

text
Team overview → Domains → 选择域名 → DNSSEC → Enable

CAA 记录 #

限制哪些 CA 可以为域名颁发证书:

text
类型: CAA
名称: @
值: 0 issue "letsencrypt.org"

最佳实践 #

1. 使用 Netlify DNS #

简化配置,自动管理。

2. 合理设置 TTL #

  • 稳定期:较长 TTL
  • 变更期:较短 TTL

3. 监控 DNS 状态 #

定期检查 DNS 解析状态。

4. 保留邮件记录 #

迁移到 Netlify DNS 时,记得配置邮件相关记录。

下一步 #

DNS 配置完成后,继续学习 SSL 证书管理 为你的站点启用 HTTPS!

最后更新:2026-03-28