我在自己的服务器上托管多个网站。如何设置自己的子名称服务器?
有 4 个不同的网站,以 .com 和 .net 结尾,末尾还有 .ro。我将它们移到了自己的服务器上。
我的域名管理(注册商)让我用自己的 IP 定义自己的子名称服务器,并且我已将我的名称服务器添加为我的域名服务器列表。
ns.something.ro 是名称服务器列表中第一个也是唯一的一个
ns.something.ro 使用我自己的 IP 地址作为子名称服务器
我已经设置好了一切,它(有点)可以工作。当我直接使用我的 ns IP 地址时,我当然可以访问所有内容。使用“普通”外部 dns 将不起作用。正如预期的那样,网络上的其他人无法正确解析。
怎么了?我是不是漏掉了什么?
答案1
为了使 DNS 在全球范围内正常工作,SOA 记录中指定的名称服务器和域的任何 NS 记录都必须位于公共 IP 地址上,并且可以通过一般互联网访问。此外,如果您使用名称服务器名称之内您正在设置的域(例如您正在执行的)粘合记录必须在父注册表的 DNS 中输入。
; Your domain config
IN NS ns1.something.ro
ns1 A 12.34.56.7
; Parent domain config (something.ro)
ns1.something.ro. A 12.34.56.7
如果您配置的名称服务器不在您的域中,则无需执行此操作。这更容易处理,并且您不必确保您的父域的胶合记录已更新。
; Your domain config
IN NS my-ns.somethingelse.ro
最后,如果您有多个主机,则完全可以将子域记录定义为父域 DNS 中的 A 记录(如果允许)。
www.something.ro. A 12.34.56.7
答案2
如果您只是做网站,请考虑使用注册商的服务器定义 www.example.com。对于简单的配置,这是最简单的选择。
如果您的 IP 地址不是静态的,则需要对其中一个名称使用动态 DNS 服务。使用 CNAME 定义将所有其他名称指向由动态 DNS 服务处理的名称。
如果您有静态地址并且不想使用注册商的服务器,则需要了解如何配置和保护名称服务器(如 bind)。这可能包括网络内部和网络外部的分离配置。您还应该安排至少一个备份名称服务器。
对于您自己的网络内部,通常需要与 Internet 上可见的 IP 地址不同的 IP 地址。要实现这一点,您需要在网络上使用您自己的 DNS 服务器。在 Linux 系统上,我使用 DNSmasq 从缓存中提供本地地址,从 Internet DNS 中提供外部地址。我还运行了一个拆分绑定配置,它只将我的域提供给 Internet,并充当我的 DMZ 的缓存名称服务器。