San*_*Bol 7 dns dhcp dnsmasq macos
TL;DR 版本:如何配置 dnsmasq 以回退到 LAN 上 DHCP 服务器指向的 DNS 服务器,以启用切换无线网络?
在我的开发人员笔记本电脑上,我最近开始使用 dnsmasq,以便我可以捕获到 *.dev 的所有流量并将其重定向到虚拟机(使用 mod_vhost_alias)。
为此,我需要配置我的网络设置,以便将 dnsmasq(在 127.0.0.1 上运行)用作主要 DNS 服务器,而常规 DNS 服务器是次要的 - 当 dnsmasq 无法处理时导致回退到这些 DNS 服务器域查找。这很有效,除了现在不再通过 DHCP 配置后备 DNS 服务器的事实。每当我切换无线网络时,这都会中断我的连接 - 特别是在需要通过网页进行身份验证的网络上(否则使用像 8.8.8.8 这样的公共 DNS 服务器将是一种选择)。
我试过阅读 dnsmasq 文档,但无数选项似乎都不能满足我的需要,或者我可能误解了某些选项的作用。
注意:考虑到 dnsmasq 的服务器性质,这个问题最初发布到 ServerFault。由于 Mac OS X 不是服务器操作系统,它很快就被关闭了。我在那里没有足够的声誉来发起行动,所以根据我更好的判断,我将交叉发布到 SU。
小智 15
听起来您正在尝试实现我刚刚在我的新 MacBook 上设置并且之前在我的 Linux 开发机器上工作过的完全相同的东西。
如您所知,在网络设置中手动将 127.0.0.1 添加到您的 DNS 条目是很痛苦的,因为在更改网络接口/连接到备用 wifi 接入点时必须重新应用它,并且还会阻止您的机器自动获取通过分配的 DNS 服务器DHCP。值得庆幸的是,以下解决方案完全避免了必须弄乱您的网络设置,因此您可以正常使用 DHCP。
首先,如果您之前手动将 127.0.0.1 和外部 DNS 服务器添加到您的网络接口,现在是时候删除它们并将其重置为 DHCP 默认设置了。
完成后,您现在需要创建文件夹 /etc/resolver。
sudo mkdir /etc/resolver
Run Code Online (Sandbox Code Playgroud)
在此文件夹中,您现在可以添加由域命名的文本文件以匹配并包含用于那些匹配请求的名称服务器条目。OS X 会自动在这个文件夹中查找规则,所以就这么简单。
因此,对于您的设置(与我的相同),我们希望创建一个名为 /etc/resolver/dev(以捕获对 *.dev 的所有请求)的文本文件,其中包含 127.0.0.1(dnsmasq 使用的本地 IP)的标准名称服务器条目)。
sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/dev'
Run Code Online (Sandbox Code Playgroud)
现在,*.dev 域的所有 DNS 请求都将传递到 127.0.0.1 处的 dnsmasq,任何不匹配 *.dev 的内容都将由您的 DHCP 选择的任何 DNS 服务器正常处理。
| 归档时间: |
|
| 查看次数: |
5767 次 |
| 最近记录: |