Appearance
第03章 域名与DNS
本章目标
学习完成后,你可以:
- 理解为什么互联网需要域名,而不是只用 IP 地址
- 拆解一个域名的完整结构(主机名 / 二级域 / 顶级域 / 根)
- 说清楚 DNS 是什么,以及它在「人」和「机器」之间扮演的角色
- 描述浏览器打开网站时,一次 DNS 查询从本地到全球服务器走过的全过程
- 分辨常见 DNS 记录类型(A / AAAA / CNAME / MX / TXT)各自用在什么场景
- 理解 Cloudflare 为什么总是从「DNS」这一步开始,为后续 SSL、CDN、Zero Trust 打基础
本章是进入「互联网基础设施核心」的第一块基石。第 01 章我们知道 IP 是门牌号,第 02 章知道家里用的是内网门牌;本章解决另一个根本问题——人怎么用名字找到那串门牌号。后面的 Cloudflare、SSL/TLS、CDN、Zero Trust、VPS 部署,全都建立在「能正确解析域名」之上。
1. 为什么互联网需要域名
计算机之间通信,靠的是 IP 地址——一串数字编号,用来在网络里唯一定位一台设备。例如:
192.168.1.1(你家路由器的内网地址)8.8.8.8(Google 的公共 DNS 服务器)104.18.32.7(某个网站服务器的公网地址)
但对人来说,IP 地址有三个大问题:
- 难记忆:没人能背下几十个
104.18.x.x这样的数字; - 可能变化:服务器搬家、换机房、换运营商,IP 就会变;
- 不适合人类使用:一堆数字对人类毫无语义,你看不出它代表什么。
打个最生活化的比方:
- IP 地址 = 真实的电话号码(比如
138-0013-8000) - 域名 = 通讯录里联系人的名字(比如「老王」)
你不会每次打电话都去背老王的号码,你只需要在通讯录里点「老王」,手机自动把名字翻译成号码拨出去。域名就是这个「名字」,DNS 就是那个自动翻译的通讯录。
所以:
输入: www.example.com ← 人记得住的名字
远比
输入: 93.184.216.34 ← 一串难记的数字
更符合人的习惯。域名让「访问网站」这件事,从「背号码」变成了「叫名字」。
2. 什么是域名
域名(Domain Name)就是互联网中用来标识一个站点、服务的「地址名称」。
仍以 www.example.com 为例,把它拆开来看:
www.example.com
│ │ │
│ │ └── com 顶级域名(TLD)
│ └── example 注册域名(二级域,你买下的主体)
└── www 主机名 / 子域名(具体哪台机器/哪个服务)从右往左读,层级逐级放大,就像地址从「门牌 → 楼栋 → 小区 → 城市」:
根 (.) ← 所有域名的起点,看不见但永远存在
│
顶级域 (com) ← 类型:com / net / org / cn ...
│
二级域 (example) ← 你注册拥有的名字
│
子域名 (www) ← 这台主机提供什么服务用「小区地址」比喻:
- 根 = 整个国家的地址体系(一切的起点)
- 顶级域
com= 城市,比如「北京市」 - 二级域
example= 具体小区,比如「幸福小区」 - 子域
www= 小区里哪栋楼/哪个入口,比如「3 栋」
于是 www.example.com 就相当于「北京市 · 幸福小区 · 3 栋」——一层套一层,全球唯一,谁都不会认错。
补充:你买域名,买的是中间的「二级域 + 顶级域」组合(即
example.com这个主体);www这类前缀是你自己在里面随便开的「子入口」,不额外花钱。
3. 什么是 DNS
DNS(Domain Name System,域名系统)就是互联网的「电话簿」。
它的唯一核心任务:把人类能记住的域名,翻译成计算机要找的 IP 地址。
还是用电话簿来比:
电话簿(人名 → 号码) DNS(域名 → IP)
───────────────────── ─────────────────────
联系人:张三 ──┐ 网站名:www.example.com ──┐
│ 翻译 │ 翻译
手机号码:138… ──┘ 服务器 IP:93.184.216.34 ──┘一句话记住:
- 人记名字(域名)
- 机器找号码(IP)
- DNS 负责在两者间做翻译
没有 DNS,你就得手动输入 93.184.216.34 才能打开网站——回到「背电话号码」的黑暗时代。DNS 让整个互联网对人类变得可用。
4. 当你打开一个网站时,DNS 发生了什么
这是本章最重要的部分。当你在浏览器输入 www.example.com 并回车,背后其实跑了一场「从你电脑到全球服务器」的接力赛。
完整流程如下:
用户输入:www.example.com
│
▼
① 浏览器缓存 ← 浏览器自己记过这个域名吗?
│ (没命中)
▼
② 操作系统 DNS 缓存 ← 本机 hosts / 系统缓存里有吗?
│ (没命中)
▼
③ 路由器缓存 ← 家里路由器记过吗?
│ (没命中)
▼
④ 本地 DNS 服务器 ← 运营商/公共 DNS(如 8.8.8.8)接手查询
│ (它也不直接知道)
▼
⑤ 根 DNS 服务器 ← 告诉我:.com 该问谁?
│
▼
⑥ 顶级域 DNS 服务器 ← (.com 服务器)告诉我:example.com 的权威是谁?
│
▼
⑦ 权威 DNS 服务器 ← (example.com 自己的服务器)答案在这:
│ IP = 93.184.216.34
▼
⑧ 返回 IP 地址 ← 沿原路层层返回,最终回到浏览器
│
▼
⑨ 浏览器连接服务器 ← 拿到 IP,正式发起 HTTP/HTTPS 请求逐段解释每一步在干什么:
- ① 浏览器缓存:浏览器为了快,会短期记住最近访问过的域名。命中的话,连网都不用上,直接拿 IP。
- ② 操作系统缓存:如果浏览器没记,系统层(以及本机
hosts文件)可能记过。 - ③ 路由器缓存:家用路由器也会顺手缓存,全家共用。
- ④ 本地 DNS 服务器:前面的缓存都没命中,请求才真正「出门」,到达运营商或你设置的公共 DNS(如
8.8.8.8、1.1.1.1)。它代表你去问外面。 - ⑤ 根服务器:本地 DNS 先问「根」——根不直接知道
www.example.com的 IP,但它知道「.com这类事该去问谁」,于是返回一个指向。 - ⑥ 顶级域服务器(.com):
.com服务器也不知道具体 IP,但它知道「example.com的管家(权威服务器)是谁」,再返回一个指向。 - ⑦ 权威 DNS 服务器:这是
example.com真正「自己人」的服务器,域名主人把解析记录存在这里。它给出最终答案:93.184.216.34。 - ⑧ 返回 IP:这个答案沿 ⑦→⑥→⑤→④→③→②→① 原路返回,并被各层顺手缓存起来(这就是 TTL 的作用,见第 7 节)。
- ⑨ 连接服务器:浏览器终于拿到 IP,向
93.184.216.34发起真正的网页请求,页面开始加载。
为什么需要「多级」DNS?为什么不能把所有域名放一台服务器?
这是两个很自然、也很重要的疑问。
1)量级问题:全球有上十亿个域名,每秒钟数亿次查询。一台服务器根本存不下、也扛不住——就像不可能让全国所有人的电话簿都塞进一本小册子。
2)职责分离(谁的地盘谁管):
- 根服务器只管「大方向」(去哪个顶级域问);
- 顶级域服务器只管「这一类」(
.com名下的域名列表); - 权威服务器才管「具体某个人家的门牌」(你买的
example.com指向哪台服务器)。
这就像查地址:先确定国家 → 再确定城市 → 最后查小区物业。每一级只懂自己那一层,层层下放,既分散了压力,也让每个域名主人能随时改自己家的解析,而不影响别人。
3)缓存与就近:因为查询被拆成多级,每一级都能缓存结果,绝大多数请求在「本地 / 运营商」这一层就被拦下回答了,不必每次都惊动根服务器。这正是 DNS 又快又稳的秘诀。
5. DNS 服务器体系
把第 4 节的「多级」展开,DNS 服务器分为三类角色:
根域名服务器(Root Server)
- 作用:全球只有 13 组逻辑根服务器(实际由上千台镜像分担),它们是整棵 DNS 树的「树顶」。
- 它不保存具体网站 IP,只回答「
.com去问 A、.cn去问 B、.org去问 C」。 - 比喻:国家地址总局——它不认识「张三」,但能告诉你「张三在北京市,去北京市局查」。
顶级域服务器(TLD Server)
- 负责管理某一类顶级域,例如:
com—— 商业机构net—— 网络组织org—— 非营利组织cn—— 中国国家域
- 它知道「
example.com的权威管家在哪」,但不直接存www.example.com的 IP。 - 比喻:北京市局——它掌握「幸福小区归哪个物业管」,但不掌握每户门牌。
权威 DNS 服务器(Authoritative Server)
- 真正保存你域名解析记录的地方,由域名主人(或其 DNS 服务商,如 Cloudflare)提供。
- 你添加的每一条 A、CNAME、MX 记录都存在这里。
- 只有它给出的 IP,才是「标准答案」。
- 比喻:幸福小区的物业——只有它手里有每户的真实门牌号,外人问来问去,最后都得回到它这拿答案。
整个体系就是一层「逐级问路」:根 → 顶级域 → 权威。你(本地 DNS)拿着名字上路,每到一个路口问一次,最终在权威服务器拿到 IP 回家。
6. 常见 DNS 记录类型
域名主人要在「权威服务器」上登记各种记录(Record),告诉 DNS「这个名字对应什么」。最常见的几种:
A 记录(Address,IPv4 地址)
把域名指向一个 IPv4 地址。
example.com A 1.2.3.4含义:example.com 这台服务器在 IP 1.2.3.4。最常用、最基础——绝大多数「域名 → 服务器」的映射都是 A 记录。
AAAA 记录(IPv6 地址)
和 A 记录作用一样,但指向 IPv6 地址(因为 IPv6 地址更长,用四个 A 表示)。
example.com AAAA 2001:db8::1当你启用 IPv6 时,浏览器会通过 AAAA 记录拿到 IPv6 地址去连接。
CNAME 记录(别名,Canonical Name)
把一个域名起个别名,指向另一个域名(而不是 IP)。
www.example.com CNAME server.example.net含义:访问 www.example.com 时,DNS 会再去查 server.example.net 的 IP。常用于:
- 把
www指向主站; - 把业务域名指向云厂商提供的长域名(如
xxx.cloudprovider.net),这样云厂商换 IP 你无需改动。
注意:CNAME 指向的是「另一个名字」,不是 IP;最终还是要靠那个名字的 A/AAAA 记录拿到 IP。
MX 记录(邮件交换,Mail eXchange)
告诉世界「这个域名的邮件该送到哪台服务器」。
example.com MX 10 mail.example.com没有 MX 记录,别人就无法给你这个域名发邮件。10 是优先级,数字越小越优先。
TXT 记录(文本记录)
存放任意文本信息,常用于验证和声明:
- 域名所有权验证:证明「这个域名确实归你管」(各大平台接入时让你加一条特定 TXT);
- SPF 邮件验证:声明「哪些服务器被允许以本域名发邮件」,防止伪造。
example.com TXT "v=spf1 include:_spf.example.com ~all"记忆口诀:A/AAAA 指向机器(IP),CNAME 指向名字,MX 管邮件,TXT 写说明。
7. 什么是 TTL
TTL(Time To Live,生存时间) 决定一条 DNS 记录被缓存多久才过期重查,单位通常是秒。
继续用「小区公告」比喻:物业贴出一张公告「3 栋门牌改为 502」,并写上「本通知 24 小时内有效」。这 24 小时就是 TTL:
- 在有效期内,邻居都按旧通知办事,不再去物业问;
- 过期后,大家重新去物业确认,拿到新门牌。
TTL 长(例如 86400 秒 = 1 天)
- 优点:DNS 查询次数少、解析快、服务器压力小;
- 缺点:你改了 IP 之后,旧缓存要等一天才失效,修改生效很慢。
TTL 短(例如 60 秒 = 1 分钟)
- 优点:IP 一改,最多 1 分钟后全球基本更新,改动快速生效;
- 缺点:每次都更频繁地回源查询,DNS 查询量上升、略慢一点。
实践建议:平时用较长 TTL 图稳定;当你准备换服务器 IP 前,先把 TTL 调短(如 60–300 秒),等变更完成、稳定后再调回长值。这样既能快速生效,又不长期牺牲性能。
8. 公共 DNS 服务
你的设备「去问谁」并不是固定的——它用路由器/系统里配置的 DNS 地址。常见的几类:
- 运营商 DNS:办宽带时自动分配,省心但有时慢、可能被劫持或注入广告;
- Cloudflare DNS:地址
1.1.1.1,主打快 + 隐私(承诺不卖数据); - Google DNS:地址
8.8.8.8,覆盖广、稳定。
为什么用户会在意「选哪个 DNS」?因为 DNS 是上网的第一道关口,它直接影响:
- 解析速度:更近、更快的 DNS,打开网页更快;
- 稳定性:公共大厂 DNS 比某些小运营商 DNS 更可靠;
- 安全性:优质 DNS 可拦截钓鱼/恶意域名,部分还支持加密查询(DoH/DoT),防止被窃听篡改。
对个人来说,把设备 DNS 改成
1.1.1.1或8.8.8.8,往往是「免费又立竿见影」的上网体验提升。
9. 为什么 Cloudflare 从 DNS 开始
这是承上启下、连接后续所有课程的关键一节。
Cloudflare 今天提供的远不止 DNS,它是一条完整的能力链:
DNS ← 流量入口:先把域名解析到 Cloudflare
│
▼
SSL/TLS ← 在入口处加密,给网站发证书、开启 HTTPS
│
▼
CDN ← 在入口处缓存静态资源,让访问更快
│
▼
安全防护 ← 在入口处挡住攻击(DDoS、恶意请求)
│
▼
Zero Trust ← 在入口处做身份验证,保护内部资源为什么一切都从 DNS 开始? 因为 DNS 是互联网流量的总入口。
- 用户访问任何网站,第一步永远是「域名解析出 IP」;
- 谁能接管解析,谁就站在了流量的第一道关隘上;
- Cloudflare 把你的域名解析「接过来」之后,后续所有的加密、加速、防护、零信任,都可以在这同一个入口上叠加完成。
所以你会看到:无论后面学 SSL/TLS、CDN、安全还是 Zero Trust,第一步几乎都是「把域名接入 Cloudflare」。理解本章的 DNS,就理解了后面每一章的出发点。
10. 实战理解:购买域名之后发生什么
把前面知识串成一条真实的操作链路。当你买下一个域名,想用它建网站,典型流程是:
① 购买域名
│ 在域名注册商(如阿里云、Namecheap)付款,获得 example.com 的所有权
▼
② 域名注册商
│ 记录「这个域名归你」,并提供默认的 DNS 设置
▼
③ 修改 Nameserver(NS)
│ 把域名的「管家」从注册商改成 Cloudflare 的服务器
│ 例如:dns1.cloudflare.com / dns2.cloudflare.com
▼
④ Cloudflare 接管 DNS
│ 从此,example.com 的解析权威交给 Cloudflare
▼
⑤ 添加 DNS 记录
│ 在 Cloudflare 后台加 A 记录:example.com → 你的服务器 IP
│ 开不开「代理模式(橙色云)」决定流量是否经过 Cloudflare
▼
⑥ 访问网站
用户解析 example.com → Cloudflare → 你的服务器,网站打开为什么很多网站部署的第一步都是「把域名接入 Cloudflare」? 因为一旦 Nameserver 指向 Cloudflare:
- DNS 解析由它负责(稳定、快、可配记录);
- 开启代理后,SSL、CDN、防护自动跟上(对应第 9 节那张能力链);
- 后续第 04–07 章要做的,本质上就是在这条已接好的 DNS 上,继续开启各项能力。
也就是说,Nameserver 一改,你就站到了那张能力链的起点。
本章总结
- 域名解决「人记地址」的问题:用
www.example.com代替难记易变的 IP,让互联网对人类可用。 - DNS 解决「域名找到服务器」的问题:它是互联网的电话簿,把名字翻译成 IP。
- 一次访问的 DNS 查询是多级接力:浏览器/系统/路由器缓存 → 本地 DNS → 根 → 顶级域 → 权威,最终拿回 IP。
- 多级架构的意义:分散压力、职责分离、便于缓存,所以不可能、也不该把所有域名放一台服务器。
- 常见记录:A/AAAA 指向机器,CNAME 指向名字,MX 管邮件,TXT 写验证。
- TTL 控制缓存时长:长则稳而慢变,短则快变而多查。
- 公共 DNS 影响速度、稳定与安全;Cloudflare(
1.1.1.1)、Google(8.8.8.8) 是常见选择。 - DNS 是流量入口,因此 Cloudflare 从 DNS 起步,并由此延伸出 SSL、CDN、安全、Zero Trust。
形成一条清晰的知识链:
用户
│ 输入名字
▼
域名
│ DNS 翻译
▼
IP 地址
│ 实际连接
▼
服务器下一章预告
本章我们把「域名 → IP」的翻译成了肌肉记忆。下一章将真正动手——第04章 Cloudflare DNS 实战 会带你:
- 注册 Cloudflare 账号
- 添加并验证你的域名
- 修改 Nameserver 把解析接管过来
- 创建 A / CNAME 等 DNS 记录
- 理解并开启「代理模式(橙色云)」
从「懂原理」走向「能操作」,正式进入 Cloudflare 实战。