![我可以将 DNS 服务器和 Web 服务器设置在同一个 IP 上吗?](https://linux22.com/image/639204/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%B0%86%20DNS%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%92%8C%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BE%E7%BD%AE%E5%9C%A8%E5%90%8C%E4%B8%80%E4%B8%AA%20IP%20%E4%B8%8A%E5%90%97%EF%BC%9F.png)
我刚买了一个树莓派,并把它做成了一个网络服务器。我有一个只有 1 个 IP 的网络。我创建了一个 DMZ,我可以从互联网访问我的树莓派网络服务器。我买了一个域名,打算用于我的网站,但我发现我需要创建一些名称服务器(主服务器和辅助服务器),并向那些我从其购买域名的服务器提供这些名称服务器的 IP。
我的问题是:我的 DNS 服务器和我的网站可以使用同一个 IP 吗?真的需要有辅助名称服务器吗(因为我只有一个 IP,所以我认为我不能有辅助名称服务器)?下一步该怎么做?我应该在我的树莓派上安装 DNS 服务器并对其进行配置吗?我可以用 1 个 IP 和 1 个树莓派来启动和运行我的网站吗?我如何才能实现所有这些目标(让我的网站在我的树莓派上启动并运行,并且我的域名指向它)?
谢谢!
答案1
只要目标端口不相互冲突,让两个服务转到同一个 IP 地址并没有问题。
在这种情况下,您将使用端口 53 作为 DNS,并使用端口 80 作为 Web 服务器。
您还可以将两个(或全部)名称服务器设置为相同的 IP 地址。*
您需要在您的树莓派上设置一个权威的 DNS 服务器,然后让您的注册商知道您的名称服务器的 IP 地址,并将您的域名的权限委托给您的 DNS 服务器。
*这违背了正常的建议,但这是可能的。
答案2
呃。在这么多好心人回答之后,我通常不会插话,但我不能完全同意目前发布的任何答案。在从事 DNS 管理 20 年后,以下是我的看法:
DNS 应该外包吗?不。运行自己的 DNS 服务器完全没问题(尽管我认为静态 IP 地址基本的),正如 Vasili 所说,这是一个很好的学习经历。我们在 SF 上看到了很多问题,这些问题的出现是因为一些 DNS 提供商的 Web 界面太糟糕了,导致人们犯下基本的 DNS 错误。
您可以在提供其他服务的服务器上运行 DNS 服务吗?当然可以。主 DNS 服务器
teaparty.net
也是 Web 服务器(IP 地址略有不同,但这只是因为我的共置服务器分配了多个地址)。您需要多个 DNS 服务器吗? 当然好。 RFC2182明确讨论了这一点,并指出:
有时会有人提出这样的论点:如果域中的主机无法访问,则域中的域名服务器就没有必要访问。这种论点是错误的。
您的辅助服务器应位于与主服务器完全不同的网络上,最好位于不同的大陆。请注意,我的辅助名称服务器,在地址空间上ns2.teaparty.net
完全不同ns.teaparty.net
,而且位于不同的国家/地区。在过去的好日子里,主名称服务器的运营商会相互交换服务,这样我的主服务器也会成为您的辅助服务器,反之亦然。或者,在如今廉价 VPS 盛行的时代,一个小型、廉价的 VPS 就可以很好地完成 2ary 的工作。
不要忘记限制您的 DNS 服务器,以便它们只为您自己组织中的人员进行递归解析。开放 DNS 服务器很不错,但除非经过仔细配置,否则它们可能会被用于放大反射 DDoS 攻击,这是很危险的。
最后,虽然最佳实践问题可以说是科幻小说的命脉,但学习材料推荐的要求显然是题外话。如果我是你,我会把这个问题从你的问题中删掉,以免它积累更多的关闭投票。
答案3
是的,DNS和Web服务器可以位于同一个IP上。
但是 DNS 通常的配置方式是静态 IP。只要 DNS 服务器支持,在动态 IP 上运行 Web 服务器就很简单。
此外,您确实应该拥有两个 IP 位于不同子网的 DNS 服务器。因此,将您的域名托管在众多免费 DNS 托管提供商之一可能更简单。我知道他其他答案也提到了其他提供商。
如果您确实想在动态 IP 上托管自己的 DNS 服务器,那么可以这样做:在几个提供商处注册动态主机名。现在,您可以让NS
域的记录指向这两个动态主机名。由于它们位于您自己的域之外,因此您不需要胶水。