A记录与CNAME:网站该用哪种DNS记录

A记录把域名指向IP地址,CNAME把域名指向另一个主机名。了解根域名限制规则、使用场景对照表,以及建站平台的实际配置示例。

常见问题

根域名可以设置CNAME吗?

按照标准DNS规则,不可以。CNAME不能与同名的任何其他记录并存,而域名根部始终带有NS和SOA记录。部分DNS服务商提供ALIAS、ANAME或CNAME拉平(CNAME flattening)功能来绕过这一限制:它的行为类似CNAME,但实际以A记录作答。不同服务商的叫法不一,请查阅你所用服务商的文档。

CNAME和A记录哪个解析更快?

对访问者来说,差别通常小到感觉不出来。解析器第一次跟随别名时,CNAME会多一次查询,之后的结果会按TTL缓存。选择时应以主机商的要求以及该名称是否为根域名为准,而不是看速度。

为什么主机商给www提供的是CNAME,给根域名提供的却是IP地址?

因为www是子域名,可以使用CNAME;而根域名是顶点(apex),不允许使用。为根域名提供固定IP的主机商,给的是A记录可以直接存放的内容。只提供主机名的主机商,则默认你在子域名上使用CNAME,或者在DNS服务商支持的情况下,在根域名上使用ALIAS类记录。

同一个名称下可以同时有A记录和CNAME吗?

不可以。一个名称一旦设置了CNAME,就不能再有A记录、MX记录、TXT记录或任何其他类型的记录。DNS面板可能会阻止你保存第二条记录,也可能保存成功但导致解析结果不可预测。添加新类型之前,请先删除旧记录。

修改根域名的记录会影响我的邮件吗?

修改根域名上的A记录不会影响邮件,因为邮件路由由MX记录负责。真正危险的是在根域名上添加CNAME,它会与邮件依赖的MX和TXT记录冲突。迁移网站时,请保留MX记录,只修改A或AAAA记录。

简短回答:A记录把一个名称直接映射到IPv4地址,而CNAME把一个名称映射到另一个主机名,由该主机名下的记录决定最终地址。根域名(example.com)请使用A记录;当主机商给你的是主机名而不是IP时,www、shop、blog这类子域名请使用CNAME。关键规则:CNAME不能放在域名的根部。

两种记录分别指向什么

A记录:名称指向IP地址

A记录回答的问题是“这个名称的IPv4地址是什么?”在区域文件中长这样:

`` example.com. 3600 IN A 192.0.2.10 ``

这个地址(来自文档专用保留段)就是浏览器要连接的服务器。如果你还有IPv6地址,可以再添加一条AAAA记录。如果服务器地址发生变化,你需要自己修改这条记录。

CNAME记录:名称指向另一个名称

CNAME(“规范名称”,canonical name)表示“这个名称是另一个名称的别名”。它从不包含IP地址:

`` www.example.com. 3600 IN CNAME sites.hostingprovider.example. ``

解析器看到别名后,会去查询目标名称,并使用那里的A或AAAA记录。好处是主机商更换服务器地址时,你无需改动自己的DNS。基础定义请参阅什么是CNAME,更多记录类型请参阅DNS记录类型详解。

根域名限制详解

根域名(也叫顶点域名、裸域名)是前面不带任何前缀的名称:example.com。DNS规则规定,设置了CNAME的名称不能再有其他类型的记录。而根域名上总是有其他记录:

  • 指明哪些服务器对该域名具有权威的NS记录
  • SOA记录
  • 通常还有用于邮件的MX记录,以及用于验证和SPF的TXT记录

在根域名上设置CNAME会与以上所有记录冲突。有些DNS面板会直接拒绝保存;另一些则会保存成功,却悄悄破坏邮件投递或域名验证,后果更糟。

子域名没有这个问题,因为www.example.com这个名称下通常没有其他记录。这就是主机商几乎总是让你用CNAME指向www的原因。

变通方案:ALIAS、ANAME与拉平

许多DNS服务商提供一种非标准记录,可在根域名上起到类似CNAME的作用。它们的叫法各不相同(ALIAS、ANAME或“CNAME拉平”):服务商在自己一侧解析目标主机名,再以普通A记录响应访问者。由于这些是服务商自己的功能,并不属于DNS标准,所以名称、行为以及是否包含在套餐内都各不相同。使用前请先查阅你的DNS服务商文档,切勿默认其他服务商的面板里也有同名的记录类型。

A记录与CNAME:何时用哪个

场景使用原因
根域名(example.com),主机商提供IP地址A(若提供IPv6则加AAAA)根域名可以存放A记录
根域名,主机商只提供主机名若DNS服务商支持则用ALIAS/ANAME/拉平;否则迁移DNS或改用主机商的域名服务器根域名不允许使用标准CNAME
www子域名,主机商提供主机名CNAME主机商服务器迁移时自动跟随
子域名,主机商提供IP地址ACNAME没有可指向的目标
指向SaaS工具的子域名(help、status、shop)CNAME目标由服务商维护
同时需要MX或TXT记录的名称A、AAAA或ALIAS类记录,绝不用CNAMECNAME不能与其他记录并存
把一个名称指向你自己管理的另一个名称CNAME只需在一处更新
邮件服务记录(DKIM选择器)仅当邮件服务商要求时才用CNAME因服务商而异,按其说明操作

关于邮件路由,请参阅MX记录的工作原理和TXT记录的作用。

建站平台配置示例

大多数建站平台和主机商属于以下两种模式之一。你的后台会显示你属于哪一种。

模式一:主机商同时提供IP和主机名

很多主机商两者都会列出。典型设置如下:

主机(名称)类型值
@(根域名)A主机商列出的IP地址
wwwCNAME主机商列出的主机名

在大多数DNS面板中,@代表根域名。请严格使用主机商显示的值。不要照抄博客文章(包括本文)中的IP地址,因为主机商会更换它们。

模式二:主机商只提供主机名

有些平台不使用固定IP。这时你有三个选择:

  1. 用CNAME指向www,并通过域名注册商的转发功能把根域名重定向到www。
  2. 如果DNS服务商支持,在根域名上使用ALIAS/ANAME/拉平记录。
  3. 把域名的域名服务器切换为主机商的,或切换到支持根域名别名的DNS服务商。

方案一的通用性最好,因为所有注册商都能做重定向,不过访问裸域名的用户会多一次跳转。

分步操作:把域名指向建站平台

  1. 查找主机商的DNS说明,通常在域名或自定义域名设置中。留意它列出的是IP、主机名,还是两者都有。
  2. 打开你的DNS面板,位置在域名注册商或DNS服务商处(以你的域名服务器指向的地方为准)。
  3. 删除冲突记录。同一名称下旧的A或CNAME记录(通常是注册商的停放页面)必须先删除。
  4. 添加根域名记录。使用指向主机商IP的A记录,或指向主机商主机名的ALIAS类记录。
  5. 添加www记录。使用CNAME指向主机商提供的主机名。
  6. 不要动MX和TXT记录,除非你有意更改邮件设置。
  7. 等待旧记录的TTL过期,然后在浏览器中检查域名。在变更前一天把TTL调低,可以让切换更快生效。
  8. 确认主机商显示域名已连接,并且HTTPS证书已签发。主机商通常要求DNS先正确解析,才能签发证书。

快速排查清单

  • [ ] 同一名称下没有同时存在CNAME和其他记录
  • [ ] 根域名上没有CNAME(除非是服务商特有的ALIAS类记录)
  • [ ] CNAME目标是真实的主机名,而不是http://网址或路径
  • [ ] A记录里只有IPv4地址,没有其他内容(不带端口,不带https://)
  • [ ] 没有指向旧服务器的过期AAAA记录
  • [ ] 你修改记录的地方,确实是域名服务器所指向的地方
  • [ ] 如果该域名使用邮件,MX记录仍然保留

常见错误

  • 为了“修好”www而在根域名上放CNAME。这会破坏邮件和验证记录。请改用A记录或ALIAS方案。
  • 照抄旧的IP地址。如果可以用CNAME,它能让你与主机商保持同步。如果必须使用A记录,出问题时请回主机商后台重新核对IP。
  • 把网址当作目标粘贴进去。DNS的值只能是主机名或IP,不带https://,也不带路径。
  • 忘记AAAA。遗留的IPv6记录可能把部分访问者引到你已不再使用的服务器。

如果你还在选择平台,We.Inc的免费方案允许你用现成模板发布最多三个网站;通过提示词生成网站草稿的AI建站功能,则从Starter方案起步,价格为每月$20。你可以在这里免费开始,并按后台提示的记录类型连接域名。

免费开始 · 无需信用卡

Umair Ali Sadaqat

We.Inc 创始人

Umair 是 We.Inc 的创始人。他撰写有关 AI 建站、代理机构以及经营网站工作室的文章。

准备好打造出色的作品了吗?

加入 15,000+ 家使用 We.Inc 在一个平台上完成上线、增长和自动化的企业。

免费开始

无需信用卡 · 联系销售

相关内容: 博客

产品

适用对象

功能

资源

公司

网站地图