主机文件中一个IP的所有子域?


8

我已经在VirtualBox VM上运行了仅主机网络。该虚拟机正在运行Apache,我想在其中设置一堆基于名称的虚拟主机,可以从主机上的Web浏览器访问它们。

关键是,每次我为虚拟主机添加新的子域时,都必须将其添加到hosts-file中。现在我有这样的事情:

192.168.56.3 vm site1.vm site2.vm site3.vm site4.vm ...

我想要达到同样的效果

192.168.56.3 vm *.vm

我知道*不能在主机文件中用作通配符。除了运行实际的DNS服务器之外,还有另一种方法可以达到期望的结果吗?我应该吸干它并继续手动添加到我的主机文件吗?

Answers:


8

没有通配符的方法-您需要实施DNS服务器,或者继续向主机文件中添加条目。

如果你有安装DNS服务器去,你不需要安装bind-你可以安装一个简单的缓存DNS服务器一样totddnsmasq或者maradns

无论您做什么,都需要确保其中resolv.conf包含新的DNS服务器,并且以下条目必须出现在其中(在此示例中,DNS服务器安装在本地主机上)...

nameserver 127.0.0.1

这很有趣。目前,这似乎是正确的答案,因此我将其标记为正确。但是,它实际上并不能解决我的问题,可能是因为它无法解决。只是要考虑的事情。
2009年

另一个说明。我能够使用dnsmasq来完成这项工作。但是,在Ubuntu上,我必须修改主机的dhcp客户端配置,以在resolv.conf之前添加127.0.0.1。
2009年

是的-resolv.conf是定义DNS服务器的唯一方法,我将其添加到帖子中以使其完整。
Xerxes

2

您可以使用dnsmasq它,只需添加配置文件:

地址= /。vm / 192.168.56.3

0

这是个有趣的问题。如您所述,主机文件本身不支持通配符。在apache机器上设置绑定并使其成为auth dns服务器并正确指向* .vm很容易,但这是一种解决方法(即使这是“正确的”解决方案)。

必须有一种方法可以将nscd引入其中,但是我还没有弄清楚。给我更多时间,我将更新此答案

编辑

好吧,最好的选择是利用此漏洞来毒化nscd缓存,而无需执行简单的任务,即用大量虚拟主机填充主机文件,或者配置该域的auth绑定稍微复杂一点的任务:http : //linuxgazette.net/154/misc/lg/conspire_dns_vulnerability_details.html

至少,这就是我今天要去的。也许以后再无聊的时候,我将检查nscd的源并找出如何直接注入信息。


4
我严重不建议利用漏洞来实现目标。我的意思是,如果您依赖它,并且该漏洞得到了解决……该怎么办?...在另外100件事中,我发现那是错误的。但是除此之外-踢球看起来确实很有趣:)。
Xerxes,2009年

2
嘿嘿“ ...我最喜欢的软件功能在上一版中得到了修复...” ;-)
Matt Simmons,2009年
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.