我有一台 Ubuntu+Virtualmin 服务器,上面有多个网站。网站运行正常,但不知何故“www.”和其他子域名无法解析。
我的服务器 IP 是 107.170.xxx.xx。如果我将此记录添加到本地计算机上的 /etc/hosts,则可以访问 www.site.com,因此 Apache2 正常运行:
107.170.xxx.xx www.site.com
nslookup:
> site.com
Server: 200.30.xxx.xx
Address: 200.30.xxx.xx#53
Non-authoritative answer:
Name: site.com
Address: 107.170.xxx.xx
> www.site.com
Server: 200.30.xxx.xx
Address: 200.30.xxx.xx#53
** server can't find www.site.com: NXDOMAIN
所有站点的 BIND9 记录都类似(我尝试过 CNAME,但没有成功):
$ttl 38400
@ IN SOA host-domain.com. root.host-domain.com. (
140xxx7595
10800
3600
604800
38400 )
@ IN NS host-domain.com.
site.com. IN A 107.170.xxx.xx
www.site.com. IN A 107.170.xxx.xx
ftp.site.com. IN A 107.170.xxx.xx
m.site.com. IN A 107.170.xxx.xx
localhost.site.com. IN A 127.0.0.1
webmail.site.com. IN A 107.170.xxx.xx
admin.site.com. IN A 107.170.xxx.xx
mail.site.com. IN A 107.170.xxx.xx
site.com. IN MX 5 mail.site.com.
site.com. IN TXT "v=spf1 a mx a:site.com ip4:107.170.xxx.xx ?all"
答案1
您必须逐个跟踪 DNS 查询,才能查看它在哪里崩溃。在您的 PC 上,尝试以下操作:
nslookup > 设置类型=ns > site.com
这将返回名称服务器列表。选择其中一个:
> 上面的服务器 ip_address_of_one_of_the_NS_servers_returned_above
那么该服务器应该有 www 记录。通过运行以下命令确认:
> 设置类型=a > www.site.com
答案2
其实问题很简单。我的网站托管在 Digital Ocean,而他们的 DNS 记录中只有非 www 域名。
我仍然不知道如何动态添加所有子域(不支持星号)但那是另一回事。