有些人无法连接到我的名称服务器托管的域名

有些人无法连接到我的名称服务器托管的域名

我已使用 bind9 为我的 VPS 服务设置了名称服务器。我的服务器已安装 Ubuntu 10.04LTS。

我面临的问题是,一些人,他们根本无法连接到我的服务器。我认为这与 DNS 设置有关。

为了测试该问题,我进行了以下测试。假设我的服务器为服务器 A(名称服务器)。

从随机服务器 B,如果我dig到托管在我服务器 A 上的一个域,它总是会发现返回“NoError”结果。(这意味着成功)

但是,对于随机服务器 C,如果我dig访问我服务器上托管的其中一个域,大约一半的时间会返回SERVFAIL结果,另一半时间会返回“NoError”。这真的很奇怪,因为 Dig 几秒前还成功,怎么会失败呢?

使用我的名称服务器(绑定)的域名之一如下所示。

$TTL    604800
@       IN      SOA     ns.xxxx.net. admin.xxxx.net. (
                        20110120        ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.xxx.net.
@       IN      A       xxx.xxx.xxx.78
ns      IN      A       xxx.xxx.xxx.78
www     IN      A       xxx.xxx.xxx.78

有什么异常情况可能导致问题吗?有人说 TTL 604800 太长了……是吗?

答案1

首先,如果您最近更改了域的名称服务器,则传播可能是原因之一。无论如何,以下测试应有助于确定配置是否正确。

测试 1:确定为您的域配置的 DNS 服务器。运行以下命令并记录其结果:

$ whois domain.com- 显示 WHOIS 记录列出的您的名称服务器(是的,对于大多数 *nix 系统,这可以通过命令行完成)

$ dig +trace ns domain.com- 将 WHOIS 上列出的 NS 与 DNS 服务器所说的内容进行交叉引用(+trace提供执行查询时被访问的服务器的详细视图,而“ns”查询域的 NS 记录)。理想情况下,您希望在服务器 B 和服务器 C 上运行此操作并比较结果

$ dig +trace domain.com- 为了保险起见,看看 dig 查询对域本身的说明。再次在两台机器上进行此测试。

注意:我相信您很可能在这里看到故障。听起来您的某个名称服务器由于某种原因没有响应。这可能是由于您的某个 DNS 服务器设置或传播不正确造成的。

测试2:直接查询您的名称服务器,以确保它们都设置正确

理想情况下,您应该为您的域名配置两个名称服务器,托管在两台不同的机器上。许多人不这样做(我认为如果他们的名称服务器发生故障,他们的域名无法解析,这没什么大不了的)。我们将查询这两个名称服务器,以确保返回正确的 IP 地址。使用以下命令执行此操作:

$ dig @ns1.domain.com domain.com- 将“ns1.domain.com”替换为您的 DNS 服务器的 IP 地址或主机名(IP 地址以便更好地衡量)。

同样,测试第二个名称服务器并确保它给出正确的值:

$ dig @ns2.domain.com- 再次,将“ns2.domain.com”替换为您的 DNS 服务器的 IP 地址或主机名(为了更好的衡量,请使用 IP 地址)。

这些测试应该显示任一机器的配置或 DNS 解析过程中的任何异常。

希望对您有所帮助。如果您仍然遇到问题,请发布结果。

相关内容