跳到主要内容

DNS 解析配置

DNS 解析是将域名指向服务器 IP 地址的关键步骤。正确配置 DNS 解析,用户才能通过域名访问你的网站。本章将详细介绍 DNS 解析的原理、记录类型和配置方法。

DNS 解析原理

DNS(Domain Name System,域名系统)是互联网的核心基础设施之一,负责将人类可读的域名转换为机器可读的 IP 地址。

为什么需要 DNS?

互联网上的每台设备都有一个唯一的 IP 地址,如 142.250.185.78(IPv4)或 2607:f8b0:4004:800::200e(IPv6)。然而,这些数字地址难以记忆和使用。DNS 就像互联网的电话簿,将易记的域名映射到 IP 地址。

当你在浏览器输入 www.google.com 时,DNS 系统会将其解析为对应的 IP 地址,浏览器才能建立连接并获取网页内容。

DNS 解析过程

DNS 解析是一个递归查询的过程,涉及多个层级的 DNS 服务器:

  1. 客户端查询:用户在浏览器输入域名,浏览器首先检查本地缓存
  2. 本地 DNS 服务器:如果本地缓存没有记录,向配置的本地 DNS 服务器发起查询
  3. 根域名服务器:本地 DNS 服务器向根域名服务器查询顶级域名服务器地址
  4. 顶级域名服务器:根域名服务器返回负责该顶级域的服务器地址,本地 DNS 服务器继续查询
  5. 权威域名服务器:顶级域名服务器返回负责该域名的权威服务器地址,本地 DNS 服务器向权威服务器查询
  6. 返回结果:权威域名服务器返回域名对应的 IP 地址,本地 DNS 服务器缓存结果并返回给客户端

整个解析过程通常在几十毫秒内完成,用户几乎感知不到延迟。

DNS 缓存机制

为了提高解析效率,DNS 采用多级缓存机制:

  • 浏览器缓存:浏览器会缓存 DNS 解析结果,缓存时间由 TTL(Time To Live)决定
  • 操作系统缓存:操作系统也会缓存 DNS 记录
  • 本地 DNS 服务器缓存:ISP 提供的 DNS 服务器会缓存解析结果

缓存机制大大减少了对 DNS 服务器的查询压力,但也意味着修改 DNS 记录后需要等待缓存过期才能生效。

DNS 记录类型详解

DNS 支持多种记录类型,每种类型用于不同的解析场景。

A 记录

A 记录(Address Record)将域名指向一个 IPv4 地址,是最常用的记录类型。

使用场景:将域名指向服务器 IP 地址

配置示例

主机记录记录类型记录值TTL
@A123.45.67.89600
wwwA123.45.67.89600
blogA123.45.67.90600

说明

  • @ 表示主域名本身,如 example.com
  • www 表示 www.example.com
  • blog 表示 blog.example.com

AAAA 记录

AAAA 记录将域名指向一个 IPv6 地址。随着 IPv6 的普及,这个记录类型越来越重要。

使用场景:支持 IPv6 访问的网站

配置示例

主机记录记录类型记录值
@AAAA2001:db8::1

CNAME 记录

CNAME 记录(Canonical Name Record)将域名指向另一个域名,即创建域名别名。

使用场景

  • www 子域名指向主域名
  • 使用 CDN 或云服务时指向服务商提供的域名

配置示例

主机记录记录类型记录值
wwwCNAMEexample.com
staticCNAMEcdn.example.com

注意事项

  • CNAME 记录不能与其他记录共存(同一主机记录)
  • CNAME 记录不能用于主域名(@),只能用于子域名
  • CNAME 链不宜过长,会影响解析效率

MX 记录

MX 记录(Mail Exchange Record)指定邮件服务器,用于接收发往该域名的邮件。

使用场景:配置域名邮箱

配置示例

主机记录记录类型记录值优先级
@MXmx1.qq.com10
@MXmx2.qq.com20

说明

  • 优先级数值越小,优先级越高
  • 可以配置多个 MX 记录,实现邮件服务器冗余

TXT 记录

TXT 记录存储文本信息,常用于域名验证、SPF 记录、DKIM 签名等。

使用场景

  • SPF 记录:防止邮件伪造
  • 域名验证:验证域名所有权
  • DKIM 记录:邮件签名验证

配置示例

主机记录记录类型记录值
@TXTv=spf1 include:_spf.google.com ~all
_dmarcTXTv=DMARC1; p=quarantine; rua=mailto:dmarc@example.com

NS 记录

NS 记录(Name Server Record)指定域名的权威 DNS 服务器。

使用场景:将域名解析委托给其他 DNS 服务商

配置示例

主机记录记录类型记录值
@NSns1.aliyun.com
@NSns2.aliyun.com

说明:通常在域名注册商处配置,不需要手动添加

SRV 记录

SRV 记录(Service Record)指定特定服务的服务器地址和端口。

使用场景:IMAP、SMTP、LDAP 等服务

配置示例

主机记录记录类型记录值
_sip._tcpSRV10 60 5060 sipserver.example.com

格式优先级 权重 端口 目标域名

DNS 解析配置实践

阿里云 DNS 配置

阿里云提供免费的云解析 DNS 服务,支持丰富的解析功能。

步骤一:添加域名

登录阿里云控制台,进入"云解析 DNS"产品,点击"添加域名",输入你的域名。

步骤二:修改 DNS 服务器

添加域名后,需要将域名的 DNS 服务器修改为阿里云提供的地址:

  • 在域名管理控制台找到域名
  • 点击"管理" → "DNS 修改"
  • 修改为阿里云 DNS 服务器:ns1.aliyun.comns2.aliyun.com

步骤三:添加解析记录

在云解析 DNS 控制台,点击域名进入解析设置页面,添加解析记录:

记录类型:A
主机记录:@
解析路线:默认
记录值:123.45.67.89
TTL:10 分钟

步骤四:验证解析

使用 nslookupdig 命令验证解析是否生效:

nslookup example.com
dig example.com

腾讯云 DNS 配置

腾讯云提供 DNSPod 解析服务,功能强大且免费版功能足够个人使用。

步骤一:添加域名

登录 DNSPod 控制台,点击"添加域名",输入域名。

步骤二:修改 DNS 服务器

在域名注册商处修改 DNS 服务器为 DNSPod 提供的地址:

  • f1g1ns1.dnspod.net
  • f1g1ns2.dnspod.net

步骤三:添加解析记录

在 DNSPod 控制台添加解析记录,界面友好,操作简单。

Cloudflare DNS 配置

Cloudflare 提供免费的 DNS 解析服务,同时提供 CDN 和安全防护功能。

步骤一:添加站点

注册 Cloudflare 账号,点击"添加站点",输入域名。

步骤二:修改 DNS 服务器

Cloudflare 会扫描现有 DNS 记录,然后提供两个名称服务器地址,需要在域名注册商处修改。

步骤三:配置解析记录

在 Cloudflare 控制台配置解析记录,可以开启 CDN 代理(橙色云朵图标)。

高级解析功能

智能解析

智能解析根据用户的地理位置、运营商等条件,返回不同的解析结果。

应用场景

  • 国内多线路解析:电信用户返回电信 IP,联通用户返回联通 IP
  • 全球加速:海外用户返回海外节点 IP
  • 负载均衡:将流量分配到多台服务器

配置方法(以阿里云为例):

添加解析记录时,选择不同的"解析线路":

  • 默认:所有未匹配的线路
  • 电信:电信用户
  • 联通:联通用户
  • 移动:移动用户
  • 海外:海外用户

负载均衡

通过配置多条相同类型、不同记录值的记录,实现简单的负载均衡。

配置示例

主机记录记录类型记录值权重
wwwA192.0.2.150
wwwA192.0.2.250

DNS 会按照权重比例返回不同的 IP 地址,实现流量分配。

URL 转发

URL 转发可以将一个域名重定向到另一个 URL。

显性转发:返回 301 或 302 重定向,浏览器地址栏显示目标 URL

隐性转发:使用 iframe 框架嵌入目标页面,浏览器地址栏保持原域名

注意:URL 转发需要在域名注册商或 DNS 服务商处配置,不是标准的 DNS 功能。

TTL 设置策略

TTL(Time To Live)决定 DNS 记录的缓存时间,单位为秒。

TTL 对解析的影响

  • TTL 越长,缓存时间越长,解析效率越高,但修改后生效时间越长
  • TTL 越短,缓存时间越短,修改后生效越快,但解析效率降低

推荐设置

  • 稳定的生产环境:3600 秒(1 小时)或更长
  • 需要频繁变更的环境:300-600 秒(5-10 分钟)
  • 计划变更前:提前将 TTL 调低,变更后再调高

DNS 故障排查

解析不生效

检查步骤

  1. 确认 DNS 服务器是否正确修改
  2. 使用 nslookupdig 指定 DNS 服务器查询:
nslookup example.com 8.8.8.8
dig @8.8.8.8 example.com
  1. 清除本地 DNS 缓存:

Windows:

ipconfig /flushdns

macOS:

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Linux:

sudo systemd-resolve --flush-caches

解析结果错误

可能原因

  • DNS 记录配置错误
  • DNS 缓存未更新
  • DNS 劫持或污染

排查方法

使用在线 DNS 检测工具,如 DNS Checker,查看全球不同地区的解析结果。

域名无法访问

排查步骤

  1. 检查域名是否过期
  2. 检查 DNS 解析是否正确
  3. 检查服务器是否正常运行
  4. 检查防火墙和安全组是否开放端口

DNS 安全

DNSSEC

DNSSEC(DNS Security Extensions)通过数字签名验证 DNS 数据的真实性,防止 DNS 欺骗攻击。

启用 DNSSEC 需要在域名注册商和 DNS 服务商处配置,主流 DNS 服务商都支持 DNSSEC。

DNS over HTTPS/TLS

DNS over HTTPS(DoH)和 DNS over TLS(DoT)加密 DNS 查询,防止 DNS 劫持和隐私泄露。

主流浏览器和操作系统已支持 DoH/DoT,可以在设置中开启。

防止 DNS 劫持

  • 使用可信的 DNS 服务器,如 8.8.8.8、1.1.1.1
  • 开启 DNSSEC
  • 定期检查 DNS 记录是否被篡改
  • 使用 HTTPS 防止网站被劫持

小结

DNS 解析是连接域名和服务器的桥梁。本章详细介绍了 DNS 解析的原理、各种记录类型的用途和配置方法,以及智能解析、负载均衡等高级功能。掌握 DNS 配置技能,你就可以灵活管理域名的解析策略。

下一章,我们将学习 SSL 证书的申请和配置,为网站启用 HTTPS 安全传输。