无法让 Dnsmasq 在 Sierra 中工作(用于本地开发)

无法让 Dnsmasq 在 Sierra 中工作(用于本地开发)

因此,尽管我多次尝试让 Dnsmasq 正常工作,但我还是在这里发帖以寻求社区的帮助。摘要:我试图让所有.local域自动解析为localhost127.0.0.1

这是在 2014 MBP 15 上全新安装的 Sierra。我已经安装了 Homebrew、Composer、Node 等。以下是我迄今为止按照以下指南采取的步骤这里这里

  1. brew install dnsmasq
  2. /usr/local/etc安装brew时已经存在,所以我nano /usr/local/etc/dnsmasq.conf
  3. 里面我有:

    address=/local/127.0.0.1 no-resolv strict-order

  4. sudo brew services start dnsmasq

  5. sudo mkdir /etc/resolver
  6. sudo nano /etc/resolver/local-->nameserver 127.0.0.1
  7. 我终于重新启动了我的 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

确保Userroot

答案2

我在使用 OSX High Sierra 时遇到了类似的问题,其中 dnsmasq 不适合我。我也注意到了这一点:

$ dnsmasq

dnsmasq: failed to create listening socket for 169.254.51.195: 
Permission denied

所以我尝试了sudo dnsmasq,现在突然之间,我的本地域开始工作了。我不知道为什么。

相关内容