使用 CNAME 指向另一个域以节省 IP 地址

wow*_*ows 41 domain-name-system cname-record

我有一台服务器,我在上面托管了一些站点。

目前,每个站点都有一个由独立提供商托管的域,每个站点都有一个指向服务器 IP 地址的 A 记录。

但是如果我以后想更改服务器,我将不得不回去更新每个 DNS 记录中的每个 IP 地址。

是否可以在每个域上使用 CNAME 记录指向我直接控制的另一个域?

这样我就可以自己在 1 个地方更新 IP 地址,而不必让所有这些其他 DNS 提供商单独更新他们的记录?

Aln*_*tak 29

根据 Farseeker 的回答,是的,这就是(某种程度上)CNAME记录的用途。

但是同时,你可以用它来点www.example.netwww.example.com,你不能用它来指向example.net其自身(即不带www前缀)到别的东西。

这是因为example.net还必须有一个SOA记录和NS记录,并且在 DNS 中CNAME与任何其他记录(DNSSEC 密钥除外)位于树的同一部分是不合法的。

上面的“某种”限定符是因为严格来说CNAME记录引入了“左侧”作为记录目标的别名CNAME,其中该目标实际上是“规范名称”。

因此,如果您看到例如:

www.example.net IN CNAME www.example.com.
Run Code Online (Sandbox Code Playgroud)

这是不是说,www.example.net应该是“重定向”对www.example.com,它说的www.example.net另一个名字 www.example.com

  • +1 这是一个很好的观点,也是最大的缺陷之一(也是为什么我的网站都不能使用 www-less 的原因,因为这些域也需要 MX 记录,禁止这样做)。 (5认同)
  • “example.net 也必须有 SOA 记录”。有些人作弊:看看 lrnskls.com。 (2认同)

Mar*_*son 28

这正是 CNAME 的意义所在。CNAME 不需要指向同一区域中的 DNS,它可以指向在任何名称服务器上注册的任何 DNS 名称。

对于您的客户来说,这意味着在 NS 上为另一台主机进行额外的 DNS 查找,但这对于 Internet 上的大多数网站来说是一个很小的代价。