TL; DR版本:如何配置dnsmasq以回退到LAN上DHCP服务器所指向的DNS服务器,以启用无线网络交换?
在我的开发人员笔记本电脑上,我最近开始使用dnsmasq,以便可以捕获到* .dev的所有流量并将其重定向到虚拟机(使用mod_vhost_alias)。
为此,我需要配置网络设置,以便将dnsmasq(运行于127.0.0.1)用作主要DNS服务器,而将常规DNS服务器用作辅助DNS服务器-当dnsmasq无法处理域查找。除现在不再通过DHCP配置后备DNS服务器这一事实外,此方法运行良好。每当我切换无线网络时,这都会中断我的连接-尤其是在需要通过网页进行身份验证的网络上(否则,可以使用像8.8.8.8这样的公共DNS服务器)。
我曾尝试阅读dnsmasq文档,但这些千篇一律的选项似乎都无法满足我的需要,或者也许我误解了某些选项的作用。
注意:考虑到dnsmasq的服务器性质,此问题最初发布到ServerFault。由于Mac OS X不是服务器操作系统,因此该窗口立即关闭。我在那儿没有足够的声望来开始行动,所以根据我更好的判断,我将转任到SU。
听起来您正在尝试实现与我刚在新MacBook上设置的功能以及以前在Linux开发机上工作过的功能完全相同的功能。
如您所知,在网络设置中手动将127.0.0.1添加到您的DNS条目是一件很痛苦的事情,因为在更改网络接口/连接到备用wifi接入点时必须重新应用它,并且还会阻止您的计算机自动拾取通过以下方式分配的DNS服务器DHCP。值得庆幸的是,以下解决方案完全避免了麻烦您的网络设置,因此您可以正常使用DHCP。
首先,如果您之前已手动将127.0.0.1和外部DNS服务器添加到网络接口,现在是时候删除它们并将其重置为DHCP默认值了。
完成此操作后,您现在需要创建文件夹/ etc / resolver。
sudo mkdir /etc/resolver
现在,在此文件夹中,您可以添加由domain命名的文本文件以匹配并包含用于这些匹配请求的名称服务器条目。OS X会自动在此文件夹中查找规则,因此就这么简单。
因此,对于您的设置(与我的设置相同),我们要创建一个名为/ etc / resolver / dev的文本文件(以捕获对* .dev的所有请求),其中包含127.0.0.1(dnsmasq使用的本地IP)的标准名称服务器条目)。
sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/dev'
现在,所有对* .dev域的DNS请求都将以127.0.0.1传递给dnsmasq,任何与* .dev不匹配的内容都将由您的DHCP所选择的任何DNS服务器照常处理。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句