我目前在家里运行服务器,但我有一个动态 IP。所以我订阅了动态 DNS 服务(dlinkddns.com)。我在自己的网络中进行了所有正确的设置,并且 IP 更新完美。
问题是我有一个域名(假设为“example.com”),我想将不带任何前缀的根域名(“example.com”)设置为我的 dlinkddns 域的 CNAME。但我的域名 DNS 主机说我不能这样做(“不允许”)。我可以对“www.example.com”等执行此操作,而且效果很好,但对根域名却不行。有人知道这个问题的解决方案吗?
答案1
您不能为根域(例如example.com
)设置 CNAME 记录,因为这会破坏RFC 1034 第 3.6.2 节,其中指出,
如果节点上存在 CNAME RR,则不应存在其他数据;这确保了规范名称和其别名的数据不会有所不同。
您不能这样做,example.com
因为example.com
还会有 NS 记录才能使其工作,这违反了不应存在其他数据的规则。
您可以拥有一个 CNAME 记录,www.example.com
因为这不是根域,因此很容易没有其他数据。
解决这个问题的唯一方法是
- 使用 www 前缀,或者
- 将域名停放在您希望 CNAME 记录指向的位置,并获取相关 IP 地址来设置 A 记录
example.com
。
我刚刚看到你正在使用动态 DNS。如果你将域名托管在他们的名称服务器上,一些动态 DNS 提供商可以处理你的域名:这样他们的动态 DNS 更新程序就可以更新 example.com 的 IP 地址,而你完全可以避免任何 CNAME 问题。据我所知,只有 dyndns 提供这项付费服务。
答案2
您不能在 CNAME 记录中设置裸域名。您必须在 CNAME 记录中仅对别名域(如 www.example.com、about.example.com 等)进行那些设置,并且必须在 A 记录中设置主域或根域,并且您必须提供主机的 IP 地址。首先从 CNAME 中删除有关裸域的设置并将其设置为“A 记录”,然后在 C 名称中对别名(如 www、about 或类似内容)进行设置。
这可能会帮助你:A 记录、CNAME、MX 记录:博客设置基础知识
答案3
我CNAME
通过记录找到了一个裸域名,@
如前所述这里对某些域名提供商不起作用。要解决这个问题,您可以考虑将您的名称服务器指向支持 或 的 DNSALIAS
提供商ANAME
。
关注 这一些 DNS 主机提供了CNAME
一种使用自定义记录类型在区域顶点(根域级别,对于裸域名)获取类似功能的方法。
这些记录包括:
ALIAS
在 DNSimpleANAME
DNS Made EasyANAME
在 easyDNSCNAME
在 CloudFlareALIAS
在 CloudDNS
对于每个提供商,设置都是类似的:将您的顶级域的ALIAS
或条目指向,就像您对记录所做的那样。ANAME
example.yourdomain.com
CNAME
ALIAS or ANAME or @ example.whateverdomain.com.