跳到主要内容

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.com、ns2.aliyun.com 等

步骤三:添加解析记录

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

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

步骤四:验证解析

使用 nslookup 或 dig 命令验证解析是否生效:

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. 使用 nslookup 或 dig 指定 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 安全传输。