我可以将DNS服务器和Web服务器设置在同一IP上吗?[关闭]


8

我刚买了一个树莓派,并使其成为Web服务器。我有一个IP地址为1的网络。我创建了一个DMZ,并且能够从Internet访问我的raspberry pi Web服务器。我购买了一个打算用于我的网站的域名,但是发现我需要创建一些名称服务器(主要和辅助),并为那些我购买域名的名称服务器提供IP。

我的问题是:我的DNS服务器和网站可以使用相同的IP吗?是否真的需要拥有一个辅助名称服务器(因为我只有一个IP,我认为我不能拥有一个辅助名称服务器)?接下来要做什么?是否应该在树莓派上安装DNS服务器并进行配置?我可以仅用1个IP和1个树莓派来启动我的网站吗?我如何才能实现所有这些目标(使我的树莓派网站正常运行并且域名指向该网站)?

谢谢!


7
简短的回答:是的。
David Schwartz

Answers:


13

只要目标端口彼此之间不冲突,将两个服务转到同一个IP地址就没有问题。

在这种情况下,您将对DNS使用端口53,对Web服务器使用端口80。

您还可以将两个(或全部)名称服务器设置为相同的IP地址。*

您将需要在树莓派上设置一个权威的DNS服务器,然后让您的注册服务商知道您的名称服务器的IP地址,并将域的权限委派给您的dns服务器。

* 违反正常建议,但有可能。


1
投票反对您的失败。这是临界点,因为它与RFC 2182背道而驰。不过,显然,该用户才刚刚起步,并且在您仅拥有1个IP的情况下,这是一个合理的折衷方案。
dmourati 2014年

1
绝对。这很狡猾。我在家做,仅仅是因为我想测试一下。与权威的BIND服务器交互的Web应用程序(当我的DNS由我的注册服务商托管时,我不能这样做)
Vasili Syrakis 2014年

dmourati:对不起,什么?您认为这违反了RFC2182的哪一部分?
MadHatter

5
好吧,将所有名称服务器放在同一建筑物中已经违反了该RFC中指定的最佳做法。
Vasili Syrakis 2014年

4
我同意这一点。我将注意力集中在有关将DNS服务器和其他服务放在同一服务器/地址上的问题上,而忽略了关于“我是否需要两个名称服务器”的问题。后一个问题的答案是一个响亮的“ 地狱,是 ”。正如Vasili和其他人所说,在地址空间或实际空间中,它们都不应该彼此靠近。
MadHatter 2014年

17

啊。在这么多好人回答之后,我通常不会打招呼,但到目前为止,我完全不同意任何答案。经过20年的DNS管理,这是我的看法:

  • 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攻击,这很糟糕。

最后,尽管最佳实践问题可以说是SF的命脉,但学习材料推荐的要求却明显地偏离了主题。如果我是您,那么我会在您的问题中加以修改,以免它积累得更多票数。


我喜欢域名服务器交易的想法。可惜的是这不再做了。
Christopher Perrin 2014年

1
它是!我的中学是我的朋友Marcus的小学,反之亦然。与以往相比,几乎每个人几乎都为每个人做到了,与以往相比,它只需要更多的个人关系。
MadHatter 2014年

谢谢您的回答,非常有帮助。我编辑了学习材料推荐部分,但是为什么会偏离主题呢?

有关更多信息,请参见我们的帮助指南:该限制已明确表达。
MadHatter

2

是的,DNS和Web服务器可以在同一IP上。

但是,通常采用DNS配置的方式,它必须是静态IP。只要DNS服务器支持,在动态IP上运行Web服务器就很简单。

此外,您确实应该拥有两个IP地址在不同子网中的DNS服务器。因此,将域名托管在许多免费的DNS托管提供商之一中可能会更简单。我知道HE,其他答案提到了其他提供商。

如果您确实想在动态IP上托管自己的DNS服务器,则方法是在几个提供商处注册动态主机名。现在,您可以NS将域的记录指向这两个动态主机名。由于这些不在您自己的域之内,因此您不需要胶水。


非常好-我的答案<grin>的tl; dr版本。向我+1!
MadHatter 2014年

0

从技术上讲这不是问题。但这不是您“家庭服务器”所需的。将您自己注册到某些DynDNS服务(DynDNS,no-ip等),然后将您的域指向那里。如果您不知道自己在做什么,请不要运行DNS服务器。在您的情况下,也不需要自己运行。


如果OP想要学习如何使用DNS服务器软件怎么办?
Vasili Syrakis 2014年

这就是他写的“我打算将其用于我的网站”。还“但我发现我需要创建一些名称服务器”,所以似乎他误解了一些东西。在这种情况下,他不需要运行名称服务器。
Duenni 2014年

即使是这样,我还是很高兴派他进行一次野外狩猎以建立自己的DNS。这将是一个很好的学习经验。
Vasili Syrakis 2014年

-2

DNS是所有服务的核心。考虑将您的DNS转移到专门的提供商:

达因

超DNS

53路

这样做可以解决您已经确定的一个问题,即您的域名注册商希望您为您的域提供至少两个(某些地区三个或更多)DNS服务器。

有时,您的域名注册商将免费提供此服务。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.