跳转至

02 - 域名与 DNS

本章核心: 理解域名系统工作原理,掌握 DNS 解析过程和记录类型


📖 章节导航

前序章节: 01-网络基础.md 后续章节: 03-服务器与 SSH.md 快速参考: 13-网络工具箱.md 第 1 章 故障排查: 11-故障排查手册.md 第 2 章


📚 目录

  1. 引言:为什么需要域名
  2. 域名结构
  3. DNS 系统
  4. DNS 记录类型
  5. DNS 解析过程详解
  6. 实战操作
  7. 域名注册与管理
  8. 常见问题

1. 引言:为什么需要域名

1.1 IP 地址的困扰

想象一下,如果你想访问某个网站,需要记住这样的地址:

Text Only
访问百度:110.242.68.66
访问谷歌:142.250.183.46
访问淘宝:47.246.43.14

😫 这太痛苦了! IP 地址是一串数字,既难记又容易出错。

1.2 域名的诞生

域名系统( Domain Name System , DNS )就是为了解决这个问题而诞生的:

Text Only
访问百度:www.baidu.com
访问谷歌:www.google.com
访问淘宝:www.taobao.com

✅ 简单、易记、有语义!

1.3 DNS 的核心作用

DNS 就像是互联网的电话簿

  • 人类使用:记住域名(如 www.example.com
  • 机器使用:识别 IP 地址(如 93.184.216.34
  • DNS 的作用:将域名翻译成 IP 地址
Text Only
用户输入域名 → DNS查询 → 获取IP地址 → 建立连接

2. 域名结构

2.1 域名层级结构

域名采用倒树状的层级结构,从右到左依次是:

Text Only
        . (根域名)
         |
    ┌────┴────┬────────┐
    |         |        |
   com       cn      net
    |         |        |
  example   baidu    google
    |         |        |
    www     www      mail

www.example.com 为例:

Text Only
www    .    example    .    com
 ↓          ↓           ↓
主机名    二级域名    顶级域名

2.2 域名层级详解

层级 名称 示例 说明
根域名 Root . 域名树的根,通常省略不写
顶级域名 TLD .com 最高级别的域名
二级域名 SLD example 用户注册的域名
三级域名 Subdomain www 二级域名下的子域名

2.3 域名示例解析

让我们分析几个常见的域名:

Text Only
www.baidu.com
├── www: 主机名(子域名)
├── baidu: 二级域名(百度注册的域名)
└── com: 顶级域名(商业机构)

mail.google.com
├── mail: 子域名(表示邮件服务)
├── google: 二级域名
└── com: 顶级域名

blog.example.org.cn
├── blog: 子域名
├── example: 二级域名
├── org: 顶级域名(组织)
└── cn: 国家代码顶级域名(中国)

2.4 常见顶级域名

通用顶级域名( gTLD )

域名 用途 示例
.com 商业机构 google.com
.org 非营利组织 wikipedia.org
.net 网络服务 sourceforge.net
.edu 教育机构 mit.edu
.gov 政府机构 usa.gov
.io 科技/初创公司 github.io
.dev 开发者 example.dev

国家代码顶级域名( ccTLD )

域名 国家/地区 示例
.cn 中国 baidu.cn
.us 美国 example.us
.jp 日本 yahoo.co.jp
.uk 英国 bbc.co.uk
.hk 香港 example.com.hk

新通用顶级域名( New gTLD )

近年来新增的顶级域名,更具语义化:

Text Only
.tech  - 科技类网站
.shop  - 电商平台
.blog  - 博客网站
.design - 设计相关
.xyz   - 通用域名

3. DNS 系统

3.1 DNS 的作用和重要性

DNS 是互联网基础设施的核心组成部分:

Text Only
🔑 核心作用:
1. 域名解析:域名 ↔ IP地址
2. 负载均衡:一个域名对应多个IP
3. 邮件路由:MX记录指定邮件服务器
4. 服务发现:SRV记录定位网络服务

没有 DNS 会怎样?

  • ❌ 无法通过域名访问网站
  • ❌ 无法发送电子邮件
  • ❌ 网络服务无法正常工作

3.2 DNS 服务器类型

DNS 系统由多级服务器组成,形成分布式数据库:

Text Only
┌─────────────────────────────────────────┐
│         用户设备(浏览器)                │
└──────────────┬──────────────────────────┘
               │ 查询
┌─────────────────────────────────────────┐
│      本地DNS解析器 / 递归服务器           │
│      (ISP提供的DNS或公共DNS)             │
└──────┬───────────────────────┬───────────┘
       │                       │
       ↓                       ↓
┌─────────────┐         ┌─────────────┐
│  根域名服务器 │         │ 缓存查询     │
│  (Root)     │         └─────────────┘
└──────┬──────┘
┌─────────────────────────────────────┐
│     顶级域名服务器 (TLD)              │
│     (.com, .cn, .net等)              │
└──────┬──────────────────────────────┘
┌─────────────────────────────────────┐
│     权威域名服务器                    │
│     (域名注册商管理的服务器)          │
└─────────────────────────────────────┘

各类服务器说明

服务器类型 数量 作用 示例
根域名服务器 13 组(逻辑上) DNS 系统的入口,指向 TLD 服务器 a.root-servers.net
顶级域名服务器 数百个 管理特定顶级域名 .com的 TLD 服务器
权威域名服务器 无数个 存储具体域名的 DNS 记录 example.com的权威服务器
递归解析器 无数个 代理用户查询,缓存结果 8.8.8.8, 114.114.114.114

3.3 DNS 解析流程

DNS 解析有两种查询方式:

递归查询( Recursive Query )

Text Only
客户端 → DNS服务器
       "请帮我查 www.example.com 的IP"
       DNS服务器自己完成所有查询
       返回最终结果给客户端

特点:客户端只发送一次请求,等待最终结果

迭代查询( Iterative Query )

Text Only
客户端 → 根服务器
       "请告诉我 www.example.com 的IP"
       根服务器:"我不知道,去问 .com 的服务器"
客户端 → .com 服务器
       "请告诉我 www.example.com 的IP"
       .com服务器:"我不知道,去问 example.com 的服务器"
客户端 → example.com 服务器
       "请告诉我 www.example.com 的IP"
       example.com服务器:"IP是 93.184.216.34"

特点:客户端需要多次请求,逐步接近目标


4. DNS 记录类型

DNS 记录是存储在 DNS 服务器上的数据,定义了域名与各种信息的映射关系。

4.1 A 记录( Address Record )

作用:将域名映射到 IPv4 地址

Text Only
示例:
www.example.com.  IN  A  93.184.216.34
api.example.com.  IN  A  93.184.216.35

实际应用

Text Only
访问 www.example.com → 解析到 93.184.216.34

4.2 AAAA 记录( IPv6 Address Record )

作用:将域名映射到 IPv6 地址

Text Only
示例:
www.example.com.  IN  AAAA  2606:2800:220:1:248:1893:25c8:1946

IPv6 地址特点: - 长度: 128 位( IPv4 是 32 位) - 格式: 8 组 4 位十六进制数 - 示例:2001:0db8:85a3:0000:0000:8a2e:0370:7334

4.3 CNAME 记录( Canonical Name Record )

作用:域名别名,指向另一个域名

Text Only
示例:
www.example.com.  IN  CNAME  example.com.
blog.example.com. IN  CNAME  example.com.

实际应用

Text Only
访问 www.example.com → 实际访问 example.com
访问 blog.example.com → 实际访问 example.com

使用场景: - 多个子域名指向同一服务器 - 使用 CDN 时指向 CDN 服务商的域名 - 域名迁移时的过渡

4.4 MX 记录( Mail Exchange Record )

作用:指定邮件服务器

Text Only
示例:
example.com.  IN  MX  10  mail1.example.com.
example.com.  IN  MX  20  mail2.example.com.

说明: - 数字( 10, 20 )表示优先级,数字越小优先级越高 - 可以配置多个 MX 记录实现邮件服务器冗余

实际应用

Text Only
发送邮件到 user@example.com
→ 查询 example.com 的MX记录
→ 得到 mail1.example.com
→ 连接邮件服务器投递邮件

4.5 TXT 记录( Text Record )

作用:存储文本信息,常用于验证和安全

Text Only
示例:
example.com.  IN  TXT  "v=spf1 include:_spf.google.com ~all"

常见用途

  1. SPF ( Sender Policy Framework )
Text Only
   "v=spf1 include:_spf.google.com ~all"
   指定哪些服务器可以发送该域名的邮件
   ```

2. **DKIM ( DomainKeys Identified Mail )**

```text
   "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC..."
   用于邮件签名验证
   ```

3. **域名验证**

```text
   "google-site-verification=abc123xyz"
   验证域名所有权(如Google Search Console)
   ```

### 4.6 NS 记录( Name Server Record )

**作用**:指定该域名的权威 DNS 服务器

```text
示例:
example.com.  IN  NS  ns1.example.com.
example.com.  IN  NS  ns2.example.com.

说明: - 通常配置多个 NS 记录实现冗余 - 域名注册商需要知道 NS 记录才能正确委托

4.7 其他重要记录

记录类型 名称 作用
PTR Pointer Record 反向 DNS 解析, IP 到域名
SRV Service Record 指定特定服务的服务器
SOA Start of Authority 域名的权威信息
CAA Certification Authority Authorization 指定哪些 CA 可以签发该域名的证书

5. DNS 解析过程详解

5.1 完整的查询流程图

Text Only
用户访问 www.example.com
┌─────────────────────────────────────┐
│  1. 检查浏览器缓存                   │
│     是否有该域名的DNS记录?          │
└──────────┬──────────────────────────┘
           │ 有:直接返回IP
           │ 无:继续
┌─────────────────────────────────────┐
│  2. 检查操作系统缓存                 │
│     /etc/hosts 或系统DNS缓存        │
└──────────┬──────────────────────────┘
           │ 有:直接返回IP
           │ 无:继续
┌─────────────────────────────────────┐
│  3. 查询本地DNS服务器(递归查询)    │
│     通常是ISP提供的DNS              │
└──────────┬──────────────────────────┘
           │ 有缓存:返回IP
           │ 无缓存:开始迭代查询
┌─────────────────────────────────────┐
│  4. 查询根域名服务器                 │
│     "告诉我 .com 的TLD服务器"        │
└──────────┬──────────────────────────┘
┌─────────────────────────────────────┐
│  5. 查询 .com 的TLD服务器           │
│     "告诉我 example.com 的权威服务器" │
└──────────┬──────────────────────────┘
┌─────────────────────────────────────┐
│  6. 查询 example.com 的权威服务器   │
│     "告诉我 www.example.com 的IP"    │
└──────────┬──────────────────────────┘
┌─────────────────────────────────────┐
│  7. 返回IP地址                       │
│     93.184.216.34                   │
└──────────┬──────────────────────────┘
    本地DNS缓存结果
    返回给用户浏览器
    建立TCP连接,访问网站

5.2 浏览器访问网站时的 DNS 解析步骤

让我们用实际例子说明:

场景:用户在浏览器输入 www.baidu.com

步骤 1 :浏览器检查缓存

Text Only
浏览器DNS缓存
├── 存储位置:浏览器内存
├── 存储时间:通常几分钟
└── 作用:快速响应重复访问

步骤 2 :操作系统检查

Text Only
Windows: C:\Windows\System32\drivers\etc\hosts
Linux/Mac: /etc/hosts

hosts文件示例:
93.184.216.34  www.example.com
127.0.0.1      localhost

步骤 3 :查询本地 DNS 服务器

Text Only
本地DNS服务器(递归解析器)
├── 位置:ISP提供或手动配置
├── 示例:8.8.8.8(Google DNS)
└── 作用:代理用户完成DNS查询

步骤 4-7 :迭代查询

Text Only
本地DNS → 根服务器 → TLD服务器 → 权威服务器
         ↓            ↓            ↓
      指向.com    指向baidu.com  返回IP

5.3 本地 DNS 缓存的作用

缓存层次结构

Text Only
┌─────────────────────────────────────┐
│  浏览器缓存(最快,但容量小)         │
│  TTL: 几分钟                         │
└──────────────┬──────────────────────┘
               │ 未命中
┌─────────────────────────────────────┐
│  操作系统缓存(hosts + DNS缓存)     │
│  TTL: 几小时                         │
└──────────────┬──────────────────────┘
               │ 未命中
┌─────────────────────────────────────┐
│  本地DNS服务器缓存(ISP DNS)         │
│  TTL: 根据记录的TTL设置               │
└──────────────┬──────────────────────┘
               │ 未命中
┌─────────────────────────────────────┐
│  权威DNS服务器(权威数据源)          │
└─────────────────────────────────────┘

TTL ( Time To Live )

TTL 决定了 DNS 记录的缓存时间:

Text Only
DNS记录示例:
www.example.com.  300  IN  A  93.184.216.34
                   TTL = 300秒(5分钟)

含义:
- 该记录可以被缓存300秒
- 300秒后必须重新查询
- TTL越短,DNS解析越实时,但查询越多

常见 TTL 值: - 300( 5 分钟):频繁变更的记录 - 600( 10 分钟):一般网站 - 3600( 1 小时):稳定的服务 - 86400( 24 小时):很少变更的记录


6. 实战操作

6.1 使用 nslookup 命令查询 DNS

nslookup 是 Windows 和 Linux 都支持的 DNS 查询工具。

基本用法

Text Only
# 查询域名的A记录
nslookup www.baidu.com

# 输出示例:
服务器:  UnKnown
Address:  192.168.1.1

非权威应答:
名称:    www.a.shifen.com
Addresses:  110.242.68.4
          110.242.68.3
Aliases:  www.baidu.com

查询特定记录类型

Text Only
# 查询MX记录(邮件服务器)
nslookup -type=MX gmail.com

# 输出示例:
gmail.com  MX preference = 5, mail exchanger = gmail-smtp-in.l.google.com
gmail.com  MX preference = 10, mail exchanger = alt1.gmail-smtp-in.l.google.com
gmail.com  MX preference = 20, mail exchanger = alt2.gmail-smtp-in.l.google.com
Text Only
# 查询NS记录(名称服务器)
nslookup -type=NS baidu.com

# 输出示例:
baidu.com     nameserver = ns7.baidu.com
baidu.com     nameserver = ns4.baidu.com
baidu.com     nameserver = ns3.baidu.com
baidu.com     nameserver = dns.baidu.com
Text Only
# 查询TXT记录
nslookup -type=TXT _dmarc.example.com

# 输出示例:
_dmarc.example.com text = "v=DMARC1; p=none; rua=mailto:dmarc@example.com"

指定 DNS 服务器查询

Text Only
# 使用Google的DNS服务器查询
nslookup www.example.com 8.8.8.8

# 使用阿里云的DNS服务器查询
nslookup www.example.com 223.5.5.5

6.2 使用 dig 命令查询 DNS

dig 是 Linux/macOS 上更强大的 DNS 查询工具。

基本用法

Text Only
# 查询A记录
dig www.baidu.com

# 输出示例:
; <<>> DiG 9.10.6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;www.baidu.com.         IN  A

;; ANSWER SECTION:
www.baidu.com.      5   IN  CNAME   www.a.shifen.com.
www.a.shifen.com.   5   IN  A   110.242.68.4
www.a.shifen.com.   5   IN  A   110.242.68.3

查询特定记录类型

Text Only
# 查询MX记录
dig MX gmail.com

# 查询TXT记录
dig TXT _dmarc.example.com

# 查询NS记录
dig NS baidu.com

# 查询SOA记录
dig SOA example.com

显示详细信息

Text Only
# 显示完整的DNS响应
dig +noall +answer www.example.com

# 只显示答案部分
dig +short www.example.com

# 追踪DNS解析过程
dig +trace www.example.com

6.3 查看本地 DNS 缓存

Windows 系统

Text Only
# 查看DNS缓存
ipconfig /displaydns

# 清除DNS缓存
ipconfig /flushdns

输出示例

Text Only
Windows IP 配置

    www.baidu.com
    ----------------------------------------
    记录名称. . . . . . : www.baidu.com
    记录类型. . . . . . : 1 (A)
    生存时间 . . . . . : 300
    数据长度 . . . . . : 4
    部分 . . . . . . . : 0
    记录标志. . . . . . : 0
    记录(CPU) . . . . . :
    记录(CPU) . . . . . :
    IP 地址 . . . . . : 110.242.68.4

Linux/macOS 系统

Bash
# 查看systemd-resolved缓存(Ubuntu 18.04+)
sudo systemd-resolve --statistics

# 清除systemd-resolved缓存
sudo systemd-resolve --flush-caches

# macOS清除DNS缓存
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

6.4 修改 hosts 文件

Windows 系统

文件位置C:\Windows\System32\drivers\etc\hosts

修改步骤: 1. 以管理员身份运行记事本 2. 打开文件:C:\Windows\System32\drivers\etc\hosts 3. 添加记录(格式:IP 域名

示例

Text Only
# 本地测试
127.0.0.1       localhost
127.0.0.1       test.local

# 屏蔽网站
0.0.0.0         www.example.com

# 指定IP
192.168.1.100   dev.example.com

注意: - 修改后可能需要清除 DNS 缓存 - hosts 文件优先级高于 DNS 查询

Linux/macOS 系统

文件位置/etc/hosts

修改步骤

Bash
# 编辑hosts文件
sudo nano /etc/hosts

# 或使用vim
sudo vim /etc/hosts

示例

Text Only
127.0.0.1       localhost
127.0.1.1       my-computer

# 本地开发
192.168.1.100   dev.example.com
192.168.1.101   test.example.com

6.5 配置 DNS 服务器

Windows 系统

通过图形界面配置: 1. 打开"控制面板" → "网络和共享中心" 2. 点击"更改适配器设置" 3. 右键点击网络连接 → "属性" 4. 选择"Internet 协议版本 4 (TCP/IPv4)" → "属性" 5. 选择"使用下面的 DNS 服务器地址"

常用公共 DNS 示例

Text Only
Google DNS:
主DNS: 8.8.8.8
备用DNS: 8.8.4.4

阿里云DNS:
主DNS: 223.5.5.5
备用DNS: 223.6.6.6

腾讯云DNS:
主DNS: 119.29.29.29
备用DNS: 182.254.116.116

114 DNS:
主DNS: 114.114.114.114
备用DNS: 114.114.115.115

通过命令行配置

Text Only
# 查看当前DNS配置
ipconfig /all

# 设置网络接口的DNS(需要管理员权限)
netsh interface ip set dns "以太网" static 8.8.8.8
netsh interface ip add dns "以太网" 8.8.4.4 index=2

Linux 系统

Ubuntu/Debian

Bash
# 编辑网络配置
sudo nano /etc/systemd/resolved.conf

# 添加DNS服务器
[Resolve]
DNS=8.8.8.8 8.8.4.4

# 重启服务
sudo systemctl restart systemd-resolved

CentOS/RHEL

Bash
# 编辑网络配置
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0

# 添加DNS配置
DNS1=8.8.8.8
DNS2=8.8.4.4

# 重启网络服务
sudo systemctl restart network

临时修改

Bash
# 编辑resolv.conf
sudo nano /etc/resolv.conf

# 添加nameserver
nameserver 8.8.8.8
nameserver 8.8.4.4

macOS 系统

Bash
# 通过系统偏好设置
1. 打开"系统偏好设置"  "网络"
2. 选择网络连接  "高级"
3. 切换到"DNS"标签
4. 点击"+"添加DNS服务器

# 通过命令行
sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4

7. 域名注册与管理

7.1 如何注册域名

域名注册商

国内常用域名注册商:

注册商 网址 特点
阿里云 wanwang.aliyun.com 国内主流,服务完善
腾讯云 dnspod.cloud.tencent.com 与微信生态结合
万网 www.net.cn 阿里云旗下
新网 www.xinnet.com 老牌注册商

国际常用域名注册商:

注册商 网址 特点
Namecheap namecheap.com 价格便宜,界面友好
GoDaddy godaddy.com 全球最大,促销多
Cloudflare dash.cloudflare.com 免费 DNS ,速度快

域名注册步骤

以阿里云为例:

步骤 1 :查询域名

Text Only
1. 访问 wanwang.aliyun.com
2. 输入想要注册的域名
3. 查询是否可注册

步骤 2 :选择域名

Text Only
示例:
- example.com    ✅ 可注册
- example.cn     ✅ 可注册
- example.net    ❌ 已被注册

步骤 3 :购买域名

Text Only
1. 选择注册年限(1-10年)
2. 填写域名所有者信息
3. 实名认证(国内要求)
4. 支付费用

步骤 4 :域名实名认证

Text Only
国内要求:
- 个人:身份证信息
- 企业:营业执照信息

认证后域名才能正常使用

域名价格参考

域名类型 首年价格 续费价格
.com ¥50-80 ¥60-90
.cn ¥30-50 ¥40-60
.net ¥60-90 ¥70-100
.org ¥60-90 ¥70-100
.io ¥300-500 ¥400-600

7.2 域名解析配置

阿里云 DNS 配置

步骤 1 :登录阿里云控制台

Text Only
1. 登录阿里云
2. 进入"域名" → "域名列表"
3. 找到你的域名,点击"解析"

步骤 2 :添加解析记录

A 记录配置

YAML
记录类型: A
主机记录: www
记录值: 192.168.1.100
TTL: 600(10分钟)

CNAME 记录配置

YAML
记录类型: CNAME
主机记录: blog
记录值: example.com
TTL: 600

MX 记录配置

Text Only
记录类型: MX
主机记录: @
记录值: mail.example.com
优先级: 10
TTL: 600

实际配置示例

Text Only
域名: example.com

记录列表:
┌──────────┬─────────┬─────────────────┬──────┬────────┐
│ 主机记录 │ 记录类型│ 记录值          │ TTL  │ 优先级 │
├──────────┼─────────┼─────────────────┼──────┼────────┤
│ @        │ A       │ 192.168.1.100   │ 600  │ -      │
│ www      │ A       │ 192.168.1.100   │ 600  │ -      │
│ blog     │ CNAME   │ example.com     │ 600  │ -      │
│ @        │ MX      │ mail.example.com│ 600  │ 10     │
│ @        │ MX      │ mail2.example.com│ 600 │ 20     │
│ @        │ TXT     │ v=spf1...      │ 600  │ -      │
│ _dmarc   │ TXT     │ v=DMARC1...    │ 600  │ -      │
└──────────┴─────────┴─────────────────┴──────┴────────┘

腾讯云 DNS 配置

步骤 1 :登录腾讯云控制台

Text Only
1. 登录腾讯云
2. 进入"DNSPod" → "我的域名"
3. 点击域名进入解析页面

步骤 2 :添加记录

界面与阿里云类似,配置方式相同。

DNSPod 配置(独立 DNS 服务)

如果使用 DNSPod 的独立服务:

Text Only
1. 注册DNSPod账号
2. 添加域名
3. 在域名注册商处修改NS记录为DNSPod的NS:
   - f1g1ns1.dnspod.net
   - f1g1ns2.dnspod.net
4. 在DNSPod中配置解析记录

7.3 域名备案(针对国内服务器)

为什么需要备案

根据中国法律法规,使用国内服务器托管网站必须进行 ICP 备案:

Text Only
国内服务器 → 必须备案
国外服务器 → 不需要备案

备案流程

步骤 1 :准备材料

Text Only
个人备案:
- 身份证正反面照片
- 手持身份证照片
- 备案核验单(签字)

企业备案:
- 营业执照
- 法人身份证
- 网站负责人身份证
- 备案核验单(盖章)

步骤 2 :提交备案申请

Text Only
1. 登录阿里云/腾讯云备案系统
2. 填写主体信息(个人或企业)
3. 填写网站信息
4. 上传材料
5. 提交申请

步骤 3 :管局审核

Text Only
时间:通常7-20个工作日
流程:
1. 服务商初审(1-3天)
2. 管局审核(5-15天)
3. 备案成功

步骤 4 :备案成功

Text Only
获得:
- 备案号(如:京ICP备12345678号)
- 备案密码

网站底部需要显示备案号

备案注意事项

Text Only
⚠️ 重要提示:
1. 备案期间网站无法访问
2. 备案信息必须真实准确
3. 备案后信息变更需重新备案
4. 未备案网站会被关停
5. 备案主体与域名所有者需一致

常见问题

Q :国外服务器需要备案吗?

Text Only
A:不需要。但访问速度可能较慢。

Q :个人可以备案几个域名?

Text Only
A:通常个人可以备案1-5个域名,具体看各地管局要求。

Q :备案需要多长时间?

Text Only
A:通常7-20个工作日,高峰期可能更长。

8. 常见问题

8.1 DNS 污染和劫持

DNS 污染

定义: DNS 污染是指恶意篡改 DNS 解析结果,将用户引导到错误的网站。

常见场景

Text Only
正常情况:
www.example.com → 93.184.216.34

DNS污染:
www.example.com → 1.2.3.4(恶意网站)

如何检测

Text Only
# 使用不同DNS服务器查询,对比结果
nslookup www.example.com 8.8.8.8
nslookup www.example.com 114.114.114.114

# 如果结果不同,可能存在DNS污染

如何防范

Text Only
1. 使用可信的DNS服务器(如8.8.8.8)
2. 启用DNS over HTTPS (DoH)
3. 使用VPN或代理
4. 配置本地hosts文件

DNS 劫持

定义: DNS 劫持是指攻击者控制用户的 DNS 查询,将用户引导到钓鱼网站。

攻击方式

Text Only
1. 路由器劫持:修改路由器DNS设置
2. 恶意软件:感染设备,修改DNS配置
3. 中间人攻击:拦截DNS查询

防范措施

Text Only
1. 定期检查路由器DNS设置
2. 使用强密码保护路由器
3. 安装杀毒软件,定期扫描
4. 使用DNS over TLS (DoT)

8.2 DNS 缓存如何清除

Windows 系统

Text Only
# 清除DNS缓存
ipconfig /flushdns

# 输出示例:
Windows IP 配置

已成功刷新 DNS 解析缓存。

Linux 系统

Bash
# Ubuntu/Debian (systemd-resolved)
sudo systemd-resolve --flush-caches

# 检查缓存统计
sudo systemd-resolve --statistics

# CentOS/RHEL (nscd)
sudo systemctl restart nscd

# 清除dnsmasq缓存
sudo systemctl restart dnsmasq

macOS 系统

Bash
# macOS 10.12 (Sierra) 及更高版本
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

# macOS 10.11 (El Capitan) 及更低版本
sudo discoveryutil mdnsflushcache
sudo discoveryutil udnsflushcaches

浏览器清除 DNS 缓存

Chrome 浏览器

Text Only
1. 访问 chrome://net-internals/#dns
2. 点击"Clear host cache"

Firefox 浏览器

Text Only
1. 访问 about:networking#dns
2. 点击"Clear DNS Cache"

8.3 为什么有时需要等待 DNS 生效

DNS 传播时间

DNS 记录修改后,全球生效需要时间,这称为 DNS 传播。

原因

Text Only
1. TTL未过期:各地的DNS缓存还在有效期内
2. 分布式系统:全球DNS服务器数量庞大
3. 更新延迟:不同服务器更新时间不同

传播时间

Text Only
TTL = 600秒(10分钟)
→ 最快:立即(部分用户)
→ 最慢:10分钟(所有用户)

TTL = 86400秒(24小时)
→ 最快:立即
→ 最慢:24小时

如何加快 DNS 生效

Text Only
1. 修改前降低TTL
   - 提前几天将TTL改为300秒
   - 修改记录后再改回原来的TTL

2. 使用低TTL
   - 开发环境:60-300秒
   - 生产环境:600-3600秒

3. 清除本地缓存
   - 清除浏览器、操作系统、本地DNS缓存

检查 DNS 是否生效

Text Only
# 使用不同DNS服务器查询
nslookup www.example.com 8.8.8.8
nslookup www.example.com 114.114.114.114

# 使用在线工具
- https://www.whatsmydns.net/ <!-- ⚠️ 可能需要登录 -->
- https://dnschecker.org/

8.4 什么是 CDN 与 DNS 的关系

CDN ( Content Delivery Network )简介

CDN 是内容分发网络,通过在多个区域部署边缘节点,通常用于缩短静态内容的访问路径并提升可用性。

Text Only
用户访问网站
DNS解析到较优的可用CDN节点
CDN节点返回内容(有缓存)
用户快速获得响应

DNS 在 CDN 中的作用

智能 DNS 解析

Text Only
传统DNS:
www.example.com → 192.168.1.100(固定IP)

CDN DNS:
www.example.com → 根据用户位置返回不同IP
  - 北京用户 → 1.2.3.4(北京节点)
  - 上海用户 → 5.6.7.8(上海节点)
  - 海外用户 → 9.10.11.12(海外节点)

CNAME 配置

Text Only
使用CDN时,需要配置CNAME记录:

www.example.com  CNAME  example.com.cdn.cloudflare.net

实际流程:
1. 用户访问 www.example.com
2. DNS查询返回CNAME
3. 查询 example.com.cdn.cloudflare.net
4. CDN 的 DNS 返回较优的可用节点 IP

CDN 工作流程图

Text Only
用户请求 www.example.com
┌─────────────────────────────────────┐
│  1. DNS查询                          │
│     www.example.com → CNAME          │
│     example.com.cdn.cloudflare.net   │
└──────────┬──────────────────────────┘
┌─────────────────────────────────────┐
│  2. CDN智能DNS                       │
│     根据用户IP、地理位置、负载情况    │
│     返回最近的CDN节点IP               │
└──────────┬──────────────────────────┘
┌─────────────────────────────────────┐
│  3. 访问CDN节点                      │
│     北京用户 → 北京节点              │
│     上海用户 → 上海节点              │
└──────────┬──────────────────────────┘
┌─────────────────────────────────────┐
│  4. 返回内容                         │
│     节点有缓存 → 直接返回            │
│     节点无缓存 → 回源获取            │
└─────────────────────────────────────┘

常见 CDN 服务商

服务商 DNS 配置 特点
Cloudflare CNAME 到 *.cdn.cloudflare.net 等服务域名 提供免费档,全球覆盖较广
阿里云 CDN 控制台分配的 CNAME 国内业务资料较多,便于与阿里云产品联动
腾讯云 CDN 控制台分配的 CNAME 与腾讯云生态联动较方便
Akamai 控制台分配的 CNAME 企业级场景中较常见

CDN 与 DNS 的常见稳妥做法

Text Only
1. 使用CNAME记录
   - 不要直接使用A记录
   - CNAME指向CDN服务商的域名

2. 配置合理的 TTL
   - CDN 域名:通常使用较短 TTL,便于切换和排障
   - 源站域名:通常使用更长 TTL,减少重复解析

3. 优先启用 HTTPS
   - 在 CDN 与源站两侧分别确认证书与回源配置
   - 是否支持 HTTP/2、HTTP/3 取决于具体平台和套餐

4. 监控 DNS 解析
   - 使用 DNS 监控工具
   - 确认解析结果、节点状态与回源链路正常

📝 总结

核心要点

  1. DNS 是互联网的电话簿
  2. 将域名转换为 IP 地址
  3. 分布式、层次化的系统

  4. 域名采用倒树状结构

  5. 根域名 → 顶级域名 → 二级域名 → 子域名
  6. 示例: www.example.com

  7. DNS 解析有缓存机制

  8. 浏览器缓存 → 操作系统缓存 → 本地 DNS → 权威 DNS
  9. TTL 决定缓存时间

  10. DNS 记录类型多样

  11. A/AAAA : IP 地址
  12. CNAME :别名
  13. MX :邮件服务器
  14. TXT :文本信息

  15. 实战操作必备

  16. nslookup/dig :查询 DNS
  17. hosts 文件:本地解析
  18. 配置 DNS 服务器: 8.8.8.8 、 114.114.114.114

  19. 域名管理要点

  20. 注册域名:阿里云、腾讯云
  21. 配置解析: A 记录、 CNAME 、 MX 记录
  22. 国内服务器需要 ICP 备案

  23. 常见问题处理

  24. DNS 污染/劫持:使用可信 DNS
  25. DNS 缓存:定期清除
  26. DNS 生效:等待 TTL 过期
  27. CDN 加速:通过 CNAME 配置

学习建议

Text Only
🎯 初学者:
1. 理解DNS的基本概念
2. 掌握nslookup命令
3. 学会配置hosts文件

🎯 进阶者:
1. 理解DNS解析流程
2. 掌握dig命令的高级用法
3. 学习域名解析配置

🎯 高级者:
1. 理解DNS安全(DNSSEC、DoH)
2. 掌握CDN与DNS的配合
3. 学习自建DNS服务器

推荐资源

Text Only
📚 文档:
- RFC 1034/1035:DNS协议标准
- Cloudflare DNS Learning Center

🛠️ 工具:
- nslookup:Windows/Linux内置
- dig:Linux/macOS内置
- DNSChecker:在线DNS查询

🌐 在线资源:
- https://www.whatsmydns.net/ <!-- ⚠️ 可能需要登录 -->
- https://dnschecker.org/

恭喜!你已经掌握了域名与 DNS 的核心知识! 🎉

现在你可以: - ✅ 理解域名系统的运作原理 - ✅ 配置和管理 DNS 记录 - ✅ 排查 DNS 相关问题 - ✅ 优化 DNS 解析性能

继续学习网络知识,成为一名优秀的开发者!💪

⚠️ 核验说明(2026-04-03):本页已完成当前目录下的人工复核,重点检查了 DNS 原理、排障命令与外部服务时效性说明。若文中涉及外部模型、API、版本号、价格或第三方产品名称,请以官方文档和实际运行环境为准。


最后更新日期: 2026-04-03