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 │
│ • 邮件服务需要额外配置 │
└─────────────────────────────────────────────────────┘
配置步骤:
-
添加域名到 Netlify
textTeam overview → Domains → Add or register domain -
获取 Nameservers
textdns1.p01.nsone.net dns2.p01.nsone.net dns3.p01.nsone.net dns4.p01.nsone.net -
在域名注册商修改 Nameservers
常见注册商操作路径:
- GoDaddy: Domains → DNS → Nameservers
- Namecheap: Domain List → Manage → Nameservers
- 阿里云: 域名 → 解析 → DNS 修改
- 腾讯云: 域名注册 → 我的域名 → DNS 修改
-
等待生效
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小时 |
加速传播 #
-
降低 TTL 值
text更改前将 TTL 设置为较低值(如 300) 更改后等待旧 TTL 时间 再将 TTL 恢复正常 -
使用 Netlify DNS
textNetlify 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