为本地网络设置dnsmasq


18

我和一小部分开发人员刚刚搬到新办公室,并且我想在开发服务器上设置dnsmasq,因此在此处部署Web应用程序时,不必编辑自己的主机文件。我们有一个无法访问的位于192.168.3.1的路由器。我以为自己会在开发箱上安装DNS服务器,我们都将其IP记录为辅助DNS服务器。不幸的是,我正在努力使这项工作。

开发服务器的名称为devbox,其IP为192.168.3.99,并且正在运行最新的Ubuntu Server(Karmic)

我的电脑正在运行Ubuntu Desktop(Karmic)

我想要达到的目标

假设我在开发箱上运行着三个网站,sites1,website2,website3。我想通过网址访问它们:

http://website1.devbox
http://website2.devbox
http://website3.devbox

因此,我在开发框中配置了Apache,安装了dnsmasq,并将以下几行放入其hosts文件中:

192.168.3.99 website1.devbox
192.168.3.99 website2.devbox
192.168.3.99 website3.devbox

并编辑了我自己的resolv.conf文件,以将devel框包含为名称服务器:

nameserver 192.168.3.99 

一切正常,我可以访问这些网站。问题在于它不能很好地扩展。我希望将所有以.devbox结尾的域转发到开发箱,而这正是我一直在努力的目标。

我试过了

192.168.3.99 devbox

进入主机文件,然后编辑dnsmasq.conf中的行:

# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
local=/devbox/

但是我无法使它工作。如果我尝试开发框中的主机文件中未明确显示的任何URL,则dns查找失败。

本地指令还有其他用途吗?我看错地方了吗?

Answers:


14

请参考DNSmasq文档,尤其是dnsmasq联机帮助页示例配置文件。在当地的关键字告诉的dnsmasq与本地数据执行这些域查找。例如,这会影响发送到DNSmasq的foo.localnetbar.localnet的请求。我认为这不是您想要的。

# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
local=/localnet/

要强制主机/子域查找解析为特定地址,您可能需要使用address关键字。下面的第二个示例应允许web1.devboxweb2.devboxweb73872.devbox都解析为指定的地址。

# Add domains which you want to force to an IP address here.
# The example below send any host in doubleclick.net to a local
# webserver.
address=/doubleclick.net/127.0.0.1

# for your example
address=/devbox/192.168.3.99

我在家中使用DNSmasq来为我的LAN处理简单的DNS内容。在这种情况下,local和相关的domainexpand-hosts关键字是合适的。DNSmasq服务器是我的主要名称服务器,因此所有请求都通过该服务器。任何非本地地址都将传递回ISP的名称服务器。如果可能,您可能会考虑该配置。


另一个问题的答案表明,该address=/.devbox/192.168.3.99语法可能更适合您的目的。
quack quixote

e,我应该已经从配置中读取了粘贴的部分,很明显,这不是我所需要的。地址指令解决了问题,谢谢!
K.诺伯特

我在上面使用了一种方法:web / dns / dhcp服务器在Adhoc模式下具有无线接口。尽管在捕获数据包时我可以看到mDNS请求和响应,但无法按名称访问服务器。好像响应的内容永远不会被注册。有任何想法吗?
乔治,
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.