域名解析绑定 (DNS Resolution & Binding)
1. 定义
域名解析绑定是指把域名映射到具体资源(IP、CNAME、服务、平台)的过程。 本质是往 DNS 系统里写一条记录,告诉查询者”这个域名该往哪里走”。
形象记法:DNS 是互联网的”通讯录”,域名是人名,IP 是电话号。绑定就是”在通讯录里登记:张三 → 138xxxx”。
2. 核心概念
| 概念 | 含义 | 备注 |
|---|---|---|
| 域名 Domain | 人类可读的地址,如 example.com | 从右往左分级:根 → TLD → 二级 |
| DNS 记录 | 一条”域名 → 值”的映射 | A / CNAME / MX / TXT 等 |
| DNS 服务器 | 存储/查询记录的服务器 | 权威服务器 / 递归服务器 |
| TTL (Time To Live) | 记录缓存时间(秒) | 越短切换越快,但查询压力越大 |
| 解析 Resolver | 帮用户查 DNS 的服务器 | 如 8.8.8.8、114.114.114.114 |
| 绑定 Binding | 把域名指向特定资源 | 通常在域名商或云厂商控制台操作 |
3. DNS 解析链路
浏览器输入 example.com
│
▼
本地 DNS 缓存 ─── 命中?返回 ────┐
│ 未命中 │
▼ │
操作系统配置的递归 Resolver │
(8.8.8.8 / 运营商 DNS) │
│ │
▼ │
根服务器 (.root) │
│ 指向 .com TLD │
▼ │
TLD 服务器 (.com) │
│ 指向权威服务器 │
▼ │
权威服务器 (example.com 的 NS) │
│ 返回 A / CNAME 记录 │
▼ │
浏览器拿到 IP,发起 HTTP 请求 ◄───┘
一次完整解析要走”根 → TLD → 权威”三跳,但每一级都有缓存,绝大多数查询都能在递归服务器命中,毫秒级完成。
4. 常见记录类型
| 记录类型 | 作用 | 例子 |
|---|---|---|
| A | 域名 → IPv4 地址 | example.com → 1.2.3.4 |
| AAAA | 域名 → IPv6 地址 | example.com → 2606:2800:: |
| CNAME | 域名 → 另一个域名(别名) | www.example.com → example.com |
| MX | 邮件服务器 | 指向处理该域邮件的服务器 |
| TXT | 任意文本,常用于所有权验证 | example.com → "google-site-verification=xxx" |
| NS | 该子域由哪台服务器解析 | 委托解析权时用 |
| SOA | 区域权威信息 | 主服务器、管理员邮箱、序列号 |
5. 常见绑定场景与命令
# ── 查询域名解析 ──
dig example.com # 默认查 A 记录
dig example.com A # 显式查 A
dig example.com CNAME # 查 CNAME
dig @8.8.8.8 example.com # 指定用 8.8.8.8 这个 resolver 查
dig +short example.com # 只看结果 IP,简洁输出
nslookup example.com # 老牌工具,跨平台
host example.com # 简洁版查询
# ── 看完整解析链路 ──
dig +trace example.com # 从根服务器一路追到权威服务器
# ── 本机覆盖绑定(测试用)──
# /etc/hosts (macOS/Linux)
# 127.0.0.1 myapp.local
# 编辑后立即生效,绕过 DNS,常用来本地绑定域名测试控制台绑定操作(以常见云厂商为例):进入域名管理 → 添加记录 → 选类型 (A/CNAME) → 填主机记录 (如
@、www) → 填值 (IP 或目标域名) → 设 TTL → 保存。DNS 全球生效通常几分钟到 48 小时。
6. 对比辨析表
| 对比项 | A 记录 | CNAME 记录 |
|---|---|---|
| 指向 | IPv4 地址 | 另一个域名 |
| 性能 | 少一跳解析 | 多一跳,要先解析目标域名 |
| 能否在根域用 | 能 | 不能,根域只能用 A/AAAA |
| 典型场景 | 直接指向服务器 IP | 别名指向云服务(CDN、对象存储、SaaS) |
| 改 IP 时 | 要改记录 | 改目标域名的解析即可 |
根域(zone apex,如
example.com本身)不能挂 CNAME 是 RFC 规定,因为根域还要承担 SOA、NS 等记录,CNAME 会”独占”域名。云厂商的 ALIAS/ANAME 记录是私有的折中方案。
7. 典型工作流
场景 A:域名绑定到自己的服务器
- 服务器拿到公网 IP(如
1.2.3.4) - 域名控制台加 A 记录:
@ → 1.2.3.4 - 加 www 别名:
www → example.com(CNAME)或直接www → 1.2.3.4(A) dig example.com +short确认返回该 IP
场景 B:域名绑定到云服务(如对象存储 / CDN / GitHub Pages)
- 云服务给你一个目标域名(如
xxx.cloudfront.net) - 域名控制台加 CNAME:
www → xxx.cloudfront.net - 在云服务控制台把
www.example.com加入”允许的域名”白名单 - 访问
www.example.com时,DNS 解析到云服务,云服务再据 Host 头返回内容
这是场景 B 的典型实战。云服务(Vercel)给目标域名
cname.vercel-dns.com,你在域名商(阿里云)加一条 CNAME 指过去,再回 Vercel 等验证。整个过程约 10 分钟。
实例:Vercel + 阿里云绑定子域名 tiktok.yyqtccc.top
第 0 步:域名实名认证(阿里云强制,未实名解析不生效)
- 控制台 → 域名列表 → 上传身份证,审核几小时到 1 天
第 1 步:Vercel 侧添加自定义域名
- 项目 Settings → Domains → 输入
tiktok.yyqtccc.top→ Add - 此时会显示 ⚠️ Invalid Configuration,并提示需要的 CNAME 记录:
Type: CNAME Name: tiktok Value: cname.vercel-dns.com
第 2 步:阿里云侧配置 DNS 解析
- 云解析 DNS → 添加记录:
| 字段 | 填什么 |
|---|---|
| 记录类型 | CNAME |
| 主机记录 | tiktok ← 只填子域前缀,不要填完整域名 |
| 解析线路 | 默认 |
| 记录值 | cname.vercel-dns.com |
| TTL | 默认(10 分钟) |
第 3 步:回 Vercel 等待验证
- 几分钟后点 Refresh,状态从 ⚠️ Invalid 变 ✅ Valid Configuration 即成功
- HTTPS 证书 Vercel 自动签发(再等几分钟)
- 访问
https://tiktok.yyqtccc.top与xxx.vercel.app内容一致;以后 git push 两地址自动同步,无需再改配置
验证命令
dig tiktok.yyqtccc.top +short # 能解析到 Vercel 地址即生效
ping tiktok.yyqtccc.top # 同样可验证想让根域
yyqtccc.top也能访问:Vercel Add 根域 → 加一条 A 记录(主机记录@,值通常是76.76.21.21);www同理加 CNAME,Vercel 可设自动跳转到主域。
实例常见坑
- 一直 Invalid Configuration:大概率 DNS 还没传播(等 10-30 分钟),或主机记录填成了完整的
tiktok.yyqtccc.top - 实名没过就配置:解析不生效,先等审核
- 根域不能用 CNAME(见第 6 节辨析),只能用 A 记录
场景 C:本地开发用域名测试
- 编辑
/etc/hosts:127.0.0.1 myapp.local - 浏览器访问
http://myapp.local直接走本地 - 改完立即生效,不依赖 DNS
8. 常见误区
- ❌ “改了 DNS 记录立刻全网生效” → 错,要看 TTL 和各 resolver 缓存;TTL 越短生效越快,但仍需时间
- ❌ “根域也能用 CNAME 指向云服务” → 错,根域不能挂 CNAME;云厂商用 ALIAS/ANAME 等私有方案绕过
- ❌ “解析不到 IP 一定是 DNS 坏了” → 不一定,可能是 NS 委托没配、本地
/etc/hosts覆盖、或 resolver 缓存了旧值 - ❌ “TTL 设得越短越好” → 不一定,TTL 短切换快但查询量大、解析慢;稳定期建议调长
- ❌ “
/etc/hosts和 DNS 是一回事” → 错,hosts 是本机静态覆盖,优先级高于 DNS,且不传播
8.5 关联知识点:IP 地理定位 (IP Geolocation)
和 DNS 同属”IP 相关”这条线,容易被误解,单独澄清一下。
判断一个 IP 属于哪个国家/城市,靠的是查表,不是任何入侵手段。
原理:
- IP 是公开、有规律地分配的:全球 IP 由 IANA 分给各大洲注册机构(亚太是 APNIC),再分给各国运营商。“哪段 IP 归哪国/哪运营商”是公开登记信息,任何人可查(WHOIS)。
- 有现成的 IP→地理位置数据库:如 MaxMind GeoIP、IP2Location,把”IP 段 ↔ 国家/城市”整理成表。服务端拿到来源 IP 查表即可,类似看电话区号猜城市。
- 来源 IP 是对方主动送上门的:任何 TCP 连接都自带源 IP(见
socket.md四元组),服务器本来就要知道往哪回数据,无需”获取”。
| IP 地理定位 | 网络入侵 | |
|---|---|---|
| 手段 | 查公开数据库(被动) | 利用漏洞(主动攻击) |
| 数据来源 | 对方连接时自带的源 IP | 突破防线去拿 |
| 合法性 | 完全合法、极常见 | 未授权即违法 |
类比:看来电显示的区号判断对方在哪,不是”入侵对方电话”。 网站按 IP 判断地区做限制(geo-blocking)、合规、反滥用是常规操作,和攻击无关。
注意:IP 定位只到国家/城市级、不精确,且能被 VPN/代理改变(看到的是出口 IP 的位置),它不追踪”你本人”。
9. 延伸阅读 / 关联概念
- ping / traceroute — 验证解析后的 IP 是否可达
- CDN — 通过 CNAME 接入,按用户位置返回最近节点 IP
- DNS over HTTPS (DoH) / DNS over TLS (DoT) — 加密 DNS 查询,防窃听和劫持
- HTTP 重定向 vs DNS 绑定 — 一个在应用层跳转,一个在网络层指向,作用层级不同
- RFC 1035 — DNS 协议规范,定义了记录类型和报文格式