因此,尽管我多次尝试让 Dnsmasq 正常工作,但我还是在这里发帖以寻求社区的帮助。摘要:我试图让所有.local
域自动解析为localhost
或127.0.0.1
。
这是在 2014 MBP 15 上全新安装的 Sierra。我已经安装了 Homebrew、Composer、Node 等。以下是我迄今为止按照以下指南采取的步骤这里和这里:
brew install dnsmasq
/usr/local/etc
安装brew时已经存在,所以我nano /usr/local/etc/dnsmasq.conf
里面我有:
address=/local/127.0.0.1 no-resolv strict-order
sudo brew services start dnsmasq
sudo mkdir /etc/resolver
sudo nano /etc/resolver/local
-->nameserver 127.0.0.1
- 我终于重新启动了我的 Mac。
重新启动后,我打开了 zsh 终端,并尝试 ping 和 dig test.local
:
ping -c 2 test.local
-->ping:无法解析 test.local:未知主机
dig test.local @127.0.0.1
-->连接超时;无法访问服务器
我尝试127.0.0.1
在“网络首选项”下手动添加到 DNS 服务器顶部。在 中dnsmasq.conf
,我也尝试过address=/.local/127.0.0.1
(注意“本地”前面的“.”是区别)。最后我尝试重新启动 dnsmasq: brew services restart dnsmasq
...不幸的是,这些都没有帮助。
是否有我遗漏或配置错误的步骤?
答案1
brew services restart dnsmasq
该命令将以您当前的用户身份运行,因此 dnsmasq 没有侦听端口的权限53
我建议先停止该过程
brew services stop dnsmasq
然后用root用户重启dnsmasq
sudo brew services restart dnsmasq
检查服务状态
sudo 酿造服务列表
Name Status User Plist
dnsmasq started root /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
确保User
是root
答案2
我在使用 OSX High Sierra 时遇到了类似的问题,其中 dnsmasq 不适合我。我也注意到了这一点:
$ dnsmasq
dnsmasq: failed to create listening socket for 169.254.51.195:
Permission denied
所以我尝试了sudo dnsmasq
,现在突然之间,我的本地域开始工作了。我不知道为什么。