这看起来真的很简单,但我搞不懂。我使用 xname.org,因为它是免费的,而且我拥有许多分布在几个不同注册商的域名。
我想要的设置非常简单:一个将裸域名指向我的服务器的 A 记录,加上一个将所有子域名指向同一台服务器的通配符 CNAME 记录。
因此,如果用户访问 domain.com,它将把他们指向 285.24.435.75,如果他们访问 www.domain、blah.domain.com 或任何其他子域,他们将被发送到 285.24.435.75。
我在网上读到的所有关于设置 A 记录的示例都将 A 记录设置为子域,例如 www。WWW 已被弃用,因此我不想再使用它。目前我的 xname.org 区域如下所示:
$TTL 86400 ; Default TTL
domain.com. IN SOA ns0.xname.org. nbvfour.gmail.com. (
2010052503 ; serial
10800 ; Refresh period
3600 ; Retry interval
604800 ; Expire time
10800 ; Negative caching TTL
)
$ORIGIN domain.com.
IN NS ns2.xname.org.
IN NS ns0.xname.org.
IN NS ns1.xname.org.
@ IN A 65.49.73.148
* IN CNAME domain.com
'@' 符号是 godaddy 域名界面用来表示“这个根域”的符号,但是它可能特定于该界面,在这里没有意义。
之前我在 A rcords 中有一个“www”条目,它可以工作,因为我可以 ping“www.domain.com”并且它返回响应,但 ping 根域“domain.com”则返回“未找到主机”。
答案1
首先:@ 是标准的“主文件格式”。它的意思是“当前区域”。
你的问题很简单。在最后一行添加一个“。”。也就是说,你想要:
* IN CNAME domain.com.
名称末尾的“.”表示“不将当前来源名称附加到此处”
如果您将其关闭,您将获得(在本例中)“domain.com.domain.com”。
答案2
尽管 Michael 指出了尾随点错误,但我个人的偏好是不是指向CNAME
域本身的记录。
这样做的原因是它(无意中)暴露了所有这些新条目的任何MX
、NS
或SOA
(等)记录,这些记录可能潜在会产生意想不到的后果。
因此,我会将你的最后两行简单地写为:
@ IN A 65.49.73.148
* IN A 65.49.73.148