DNS 配置 #
DNS 基础 #
什么是 DNS? #
DNS(Domain Name System)是将域名转换为 IP 地址的系统:
text
┌──────────────────────────────────────────────────────┐
│ │
│ 用户输入域名 │
│ │ │
│ ▼ │
│ ┌─────────┐ │
│ │ DNS 查询 │ │
│ └────┬────┘ │
│ │ │
│ ▼ │
│ ┌─────────┐ │
│ │ 返回 IP │ → 76.76.21.21 │
│ └────┬────┘ │
│ │ │
│ ▼ │
│ ┌─────────┐ │
│ │ 访问网站 │ │
│ └─────────┘ │
│ │
└──────────────────────────────────────────────────────┘
DNS 记录类型 #
| 类型 | 用途 | 示例 |
|---|---|---|
| A | 指向 IPv4 地址 | @ → 76.76.21.21 |
| AAAA | 指向 IPv6 地址 | @ → 2606:4700::1 |
| CNAME | 指向另一个域名 | www → cname.vercel-dns.com |
| TXT | 文本记录 | _vercel → vc-domain-verify=xxx |
| MX | 邮件服务器 | @ → mail.example.com |
| NS | 域名服务器 | @ → ns1.vercel-dns.com |
Vercel DNS 配置 #
Vercel DNS 服务器 #
text
ns1.vercel-dns.com
ns2.vercel-dns.com
两种配置方式 #
text
┌─────────────────────────────────────────┐
│ DNS 配置方式 │
├─────────────────────────────────────────┤
│ 方式一:修改 Nameservers │
│ → 将域名 DNS 完全托管给 Vercel │
│ │
│ 方式二:添加 DNS 记录 │
│ → 在原 DNS 服务商添加记录指向 Vercel │
└─────────────────────────────────────────┘
方式一:Nameservers 配置 #
适用场景 #
- 希望完全托管 DNS
- 需要使用 Vercel 的 DNS 功能
- 简化 DNS 管理
配置步骤 #
1. 获取 Nameservers
text
Project Settings → Domains → Nameservers
text
┌─────────────────────────────────────────┐
│ Nameservers │
├─────────────────────────────────────────┤
│ ns1.vercel-dns.com │
│ ns2.vercel-dns.com │
└─────────────────────────────────────────┘
2. 修改域名注册商设置
以阿里云为例:
text
域名管理 → 域名列表 → 管理 → DNS 修改
├── DNS 服务器 1: ns1.vercel-dns.com
└── DNS 服务器 2: ns2.vercel-dns.com
3. 等待生效
text
DNS 传播时间:通常 24-48 小时
实际生效时间:通常 1-2 小时
验证配置 #
bash
dig example.com NS
text
;; ANSWER SECTION:
example.com. 3600 IN NS ns1.vercel-dns.com.
example.com. 3600 IN NS ns2.vercel-dns.com.
方式二:DNS 记录配置 #
顶级域名配置 #
A 记录:
text
类型: A
主机记录: @
记录值: 76.76.21.21
TTL: 3600
AAAA 记录(IPv6):
text
类型: AAAA
主机记录: @
记录值: 2606:4700:3033::6815:1a01
TTL: 3600
子域名配置 #
CNAME 记录:
text
类型: CNAME
主机记录: www
记录值: cname.vercel-dns.com
TTL: 3600
验证记录配置 #
A 记录验证:
bash
dig example.com A
text
;; ANSWER SECTION:
example.com. 3600 IN A 76.76.21.21
CNAME 记录验证:
bash
dig www.example.com CNAME
text
;; ANSWER SECTION:
www.example.com. 3600 IN CNAME cname.vercel-dns.com.
各平台配置指南 #
Cloudflare #
text
┌─────────────────────────────────────────┐
│ Cloudflare DNS 配置 │
├─────────────────────────────────────────┤
│ 重要:关闭代理(灰色云朵) │
│ │
│ 类型 名称 内容 代理 │
│ A @ 76.76.21.21 关闭 │
│ CNAME www cname.vercel-dns.com 关闭│
└─────────────────────────────────────────┘
SSL/TLS 设置:
text
SSL/TLS → 加密模式 → 完全(严格)
阿里云 #
text
┌─────────────────────────────────────────┐
│ 阿里云 DNS 配置 │
├─────────────────────────────────────────┤
│ 记录类型 主机记录 记录值 │
│ A @ 76.76.21.21 │
│ CNAME www cname.vercel-dns.com
└─────────────────────────────────────────┘
腾讯云 DNSPod #
text
┌─────────────────────────────────────────┐
│ DNSPod 配置 │
├─────────────────────────────────────────┤
│ 记录类型 主机记录 记录值 │
│ A @ 76.76.21.21 │
│ CNAME www cname.vercel-dns.com
└─────────────────────────────────────────┘
Namecheap #
text
┌─────────────────────────────────────────┐
│ Namecheap DNS 配置 │
├─────────────────────────────────────────┤
│ Type Host Value │
│ A @ 76.76.21.21 │
│ CNAME www cname.vercel-dns.com │
└─────────────────────────────────────────┘
GoDaddy #
text
┌─────────────────────────────────────────┐
│ GoDaddy DNS 配置 │
├─────────────────────────────────────────┤
│ 类型 名称 值 │
│ A @ 76.76.21.21 │
│ CNAME www cname.vercel-dns.com │
└─────────────────────────────────────────┘
DNS 传播 #
检查传播状态 #
在线工具:
命令行检查:
bash
dig example.com @8.8.8.8
dig example.com @1.1.1.1
加速传播 #
text
┌─────────────────────────────────────────┐
│ 加速 DNS 传播 │
├─────────────────────────────────────────┤
│ 1. 降低 TTL 值(修改前) │
│ 2. 等待原 TTL 过期 │
│ 3. 修改 DNS 记录 │
│ 4. 等待新配置生效 │
└─────────────────────────────────────────┘
TTL 设置 #
TTL 值建议 #
| 场景 | 建议 TTL |
|---|---|
| 稳定配置 | 3600(1小时)或更长 |
| 即将变更 | 300(5分钟) |
| 调试阶段 | 60(1分钟) |
TTL 影响 #
text
TTL 过短:
├── 优点:变更快速生效
└── 缺点:增加 DNS 查询量
TTL 过长:
├── 优点:减少 DNS 查询量
└── 缺点:变更生效慢
常见问题排查 #
域名无法访问 #
排查步骤:
bash
1. 检查 DNS 解析
dig example.com
2. 检查域名状态
vercel domains inspect example.com
3. 检查 DNS 传播
# 使用在线工具检查全球传播状态
4. 检查防火墙
# 确保没有阻止 Vercel IP
CNAME 与其他记录冲突 #
text
问题:CNAME 不能与其他记录共存
解决方案:
├── 使用 A 记录代替 CNAME
├── 使用 ALIAS/ANAME 记录(如果支持)
└── 分离邮件服务到子域名
Cloudflare 代理问题 #
text
问题:开启代理后无法访问
解决方案:
├── 关闭 Cloudflare 代理(灰色云朵)
├── 或正确配置 SSL 模式
└── 或使用 Cloudflare Workers
DNS 缓存问题 #
清除本地缓存:
bash
macOS:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
Windows:
ipconfig /flushdns
Linux:
sudo systemd-resolve --flush-caches
清除浏览器缓存:
text
Chrome: chrome://net-internals/#dns
Firefox: about:networking#dns
DNS 安全 #
DNSSEC #
text
┌─────────────────────────────────────────┐
│ DNSSEC 配置 │
├─────────────────────────────────────────┤
│ 1. 在域名注册商启用 DNSSEC │
│ 2. 获取 DS 记录 │
│ 3. 配置到 Vercel │
└─────────────────────────────────────────┘
防止 DNS 劫持 #
text
最佳实践:
├── 启用域名锁定
├── 启用双因素认证
├── 定期检查 DNS 记录
└── 使用 DNSSEC
下一步 #
DNS 配置完成后,接下来学习 SSL 证书管理 了解 HTTPS 配置!
最后更新:2026-03-28