Skip to content

第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.81.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.18.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 实战。