记录MacOS配置dnsmasq作为DNS服务器的问题

背景

手机连接测试环境经常需要麻烦测试同事,有时候测试同事不在也非常麻烦,所以还是要自己配一个dns服务器方便一些。

参考

配置dns服务器参考这个文章即可在macOS下用dnsmasq搭建DNS服务器

遇到的问题

1. 没有sbin目录

执行brew link dnsmasq时,提示没有权限在sbin文件,以为是sudo的问题,最后发现,是没有sbin这个目录,手动创建了一个sbin目录就OK了

2. 复制配置文件提示没有dnsmasq.conf.example文件

原文中提到需要执行这个命令将example中的内容复制到dnsmasq.conf中,实际安装的2.8版本,dnsmasq.conf中已经有了相关配置文件。

cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf

3. 缓存未清除

安装后刷新下MacOS的DNS缓存,不确定是否真的需要,执行下也无所谓。

sudo killall -HUP mDNSResponder

4. 更改了host没有生效问题

这个比较困扰,修改了host,(比如在switchhosts中关闭了hosts,发现手机还是可以连接测试环境),必须要重启dnsmasq+手机关闭wifi重新打开才可以。

在网上找到了作者的回复,表示如果需要重新加载配置文件,必须关闭重新打开一个新的进程才可以,我们这里是修改了hosts,但是使用这个方法也可以解决上述问题。

http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2004q4/000002.html

也就是说修改了hosts,需要执行以下两步

  1. brew services restart dnsmasq

  2. 手机断开wifi重新连接

一些相关命令

清除MacOS的缓存:sudo killall -HUP mDNSResponder

使用brew启动和重启dnsmasq:brew services start dnsmasq brew services restart dnsmasq

使用系统命令launchctl启动dnsmasq

sudo launchctl stop homebrew.mxcl.dnsmasq
sudo launchctl start homebrew.mxcl.dnsmasq

brew services实际上是简化了launchctl操作

结语

按照上面的,应该就可以正常使用手机访问自己的DNS服务器了,开始工作吧!

你可能感兴趣的:(记录MacOS配置dnsmasq作为DNS服务器的问题)