K. *_*ert 21 domain-name-system dnsmasq
我和一小群开发人员刚搬到一个新办公室,我想在我们的开发服务器上设置 dnsmasq,所以当我们在那里部署 Web 应用程序时,我们不必编辑我们自己的主机文件。我们在 192.168.3.1 有一个我们无法访问的路由器。我想我会在开发盒上安装一个 DNS 服务器,我们都将它的 IP 记录为辅助 DNS 服务器。不幸的是,我正在努力完成这项工作。
开发服务器名称为devbox,IP为192.168.3.99,运行的是最新的Ubuntu Server(Karmic)
我的电脑正在运行 Ubuntu Desktop (Karmic)
假设我在开发箱上运行了三个网站,网站 1、网站 2、网站 3。我想通过 URL 访问它们:
http://website1.devbox
http://website2.devbox
http://website3.devbox
Run Code Online (Sandbox Code Playgroud)
所以我已经在开发盒上配置了Apache,安装了dnsmasq,并将以下几行放入其hosts文件中:
192.168.3.99 website1.devbox
192.168.3.99 website2.devbox
192.168.3.99 website3.devbox
Run Code Online (Sandbox Code Playgroud)
并编辑了我自己的 resolv.conf 文件以将开发框包含为名称服务器:
nameserver 192.168.3.99
Run Code Online (Sandbox Code Playgroud)
它工作正常,我可以访问这些网站。问题是它不能很好地扩展。我希望所有以 .devbox 结尾的域名都转发到开发箱,这就是我正在努力解决的问题。
我试过把
192.168.3.99 devbox
Run Code Online (Sandbox Code Playgroud)
进入主机文件,并编辑 dnsmasq.conf 中的行:
# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
local=/devbox/
Run Code Online (Sandbox Code Playgroud)
但我无法让它工作。如果我尝试任何未明确存在于开发箱的主机文件中的 URL,DNS 查找将失败。
本地指令是否用于其他用途?我看错地方了吗?
qua*_*ote 16
请参阅DNSmasq 文档,尤其是dnsmasq联机帮助页和示例配置文件。在当地的关键字告诉的dnsmasq与本地数据执行这些域查找。例如,这会影响发送到 DNSmasq 的foo.localnet和bar.localnet请求。我不认为这是你想要的。
# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
local=/localnet/
Run Code Online (Sandbox Code Playgroud)
要强制主机/子域查找解析为特定地址,您可能需要使用address关键字。下面的第二个例子应该允许web1.devbox和web2.devbox和web73872.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
Run Code Online (Sandbox Code Playgroud)
我在家里使用 DNSmasq 为我的 LAN 处理简单的 DNS 问题;在这种情况下,local和相关的domain和expand-hosts关键字是合适的。DNSmasq 服务器是我的主要名称服务器,因此所有请求都通过它;任何非本地地址都将传递回 ISP 的名称服务器。如果可能,您可以考虑该配置。
您还可以在中设置短主机名/etc/hosts
192.168.3.99 website1
192.168.3.99 website2
192.168.3.99 website3
192.168.3.100 website4
Run Code Online (Sandbox Code Playgroud)
并告诉 dnsmasq 将所有名称扩展/etc/hosts到.devbox域中。
local=/localnet/
expand-hosts
domain=devbox
Run Code Online (Sandbox Code Playgroud)
website3.devbox应该解决。
这使您能够仅通过定义 DNS 名称/etc/hosts,我发现这比 dnsmasqaddress=条目更方便。
这种方法的缺点是,像这样管理的所有名称都必须位于同一域中。
| 归档时间: |
|
| 查看次数: |
51537 次 |
| 最近记录: |