我有一台安装了 CentOs 6.2 和 cPanel 的云服务器。
我想用我的域名设置自己的名称服务器。
我的主机名是:something.mydomain.com
我将 ns1.mydomain.com 上的 A 记录更改为我的 IP1,将 ns2.mydomain.com 上的 A 记录更改为我的 IP2
我使用 BIND 通过 cPanel 进行了设置,在 ns1 上使用 IP1,在 ns2 上使用 IP2。
我在我的服务器上打开了端口 53。
但它不起作用。我是不是错过了什么?
答案1
我认为我们这个网站上的大多数人都是直接在 BIND 中配置的,因此回答您的问题可能具有挑战性。如果您对命令行界面很熟悉,您应该发布您的配置文件。如果不熟悉,我建议至少给我们提供相关的 CPanel 窗口的屏幕截图。
和命令对于验证正在发生的事情很方便。这些命令nslookup
的dig
工作方式是指定标志(-option=value),然后指定您要搜索的域,然后指定您要询问的域服务器。在第一个命令中,我没有指定域服务器,因此它只使用了我的本地默认服务器。例如使用 example.com:
选择要查询的TLD服务器
首先,我们需要从 com. 找到一个权威的名称服务器进行查询。从这些服务器中挑选一个作为下次查询的参考。您将在下一节中看到我选择了 b.gtld-servers.net。
$ nslookup -query=NS com
Server: 1.2.3.4
Address: 1.2.3.4
Non-authoritative answer:
com nameserver = f.gtld-servers.net.
com nameserver = k.gtld-servers.net.
com nameserver = h.gtld-servers.net.
com nameserver = b.gtld-servers.net.
com nameserver = l.gtld-servers.net.
com nameserver = d.gtld-servers.net.
com nameserver = i.gtld-servers.net.
com nameserver = j.gtld-servers.net.
com nameserver = g.gtld-servers.net.
com nameserver = e.gtld-servers.net.
com nameserver = m.gtld-servers.net.
com nameserver = c.gtld-servers.net.
com nameserver = a.gtld-servers.net.
Authoritative answers can be found from:
f.gtld-servers.net internet address = 192.35.51.30
k.gtld-servers.net internet address = 192.52.178.30
h.gtld-servers.net internet address = 192.54.112.30
b.gtld-servers.net internet address = 192.33.14.30
b.gtld-servers.net has AAAA address 2001:503:231d::2:30
l.gtld-servers.net internet address = 192.41.162.30
d.gtld-servers.net internet address = 192.31.80.30
i.gtld-servers.net internet address = 192.43.172.30
j.gtld-servers.net internet address = 192.48.79.30
g.gtld-servers.net internet address = 192.42.93.30
e.gtld-servers.net internet address = 192.12.94.30
m.gtld-servers.net internet address = 192.55.83.30
c.gtld-servers.net internet address = 192.26.92.30
a.gtld-servers.net internet address = 192.5.6.30
a.gtld-servers.net has AAAA address 2001:503:a83e::2:30
验证您的域名的名称服务器是否符合您的预期
在这里,我们看到a.iana-servers.net.
和b.iana-servers.net.
是记录的名称服务器。
$ nslookup -query=NS example.com b.gtld-servers.net
Server: b.gtld-servers.net
Address: 192.33.14.30#53
Non-authoritative answer:
*** Can't find example.com: No answer
Authoritative answers can be found from:
example.com nameserver = a.iana-servers.net.
example.com nameserver = b.iana-servers.net.
a.iana-servers.net internet address = 199.43.132.53
a.iana-servers.net has AAAA address 2001:500:8c::53
b.iana-servers.net internet address = 199.43.133.53
b.iana-servers.net has AAAA address 2001:500:8d::53
验证您的名称服务器是否返回您期望的地址
一旦我们知道了正确的名称,请检查它是否可以访问并是否为我们提供正确的答案。
$ nslookup -query=A example.com a.iana-servers.net.
Server: a.iana-servers.net.
Address: 199.43.132.53#53
Name: example.com
Address: 192.0.43.10
答案2
您需要做的是联系您的域名注册商,让他们将 ns1.mydomain.com 和 ns2.mydomain.com 的胶水记录切换到您的新 IP 地址。胶水记录可防止发生以下情况:
- 客户端询问 com 域名服务器,mydomain.com 使用哪个域名服务器
- com 名称服务器以 ns1.mydomain.com 和 ns2.mydomain.com 进行响应
- 客户端无法确定它们是什么,因为它会向 mydomain.com 的域服务器询问 ns1 和 ns2 是什么(但它在知道 ns1 和 ns2 是什么之前不知道它们是什么)
当有人请求 mydomain.com 的 NS 记录时,com 名称服务器会发送粘合记录。目前,这些记录可能指向您的旧 DNS 服务器,因此客户端会联系它们来获取所有请求。
答案3
您可以参考本指南在如何在 CentOS 6.2 VPS 上使用 Bind9 Chroot 设置私有 DNS。
您可以比较所有步骤。在本文中,已配置以下步骤:
- 在 Bind Chroot 服务器中转发命名服务器。
- 有一个示例区域记录 ehowstuff.local,请用您的域名替换。
- 冗余名称服务器(ns1、ns2)由主服务器/从服务器组成,从服务器可以下载主服务器的区域