在OS X Mountain Lion上使用dnsmasq

dnsmasq 可以提供 DNS 缓存和 DHCP 服务功能。对于在本地搭建一个 DNS 是再好不过了。

我的需求如下:

  • 对于特定域,使用特定的 DNS
  • 对于特定的几个域名,手工指定 IP

我的环境如下:

安装

brew install dnsmasq # 安装程序包
cp /usr/local/Cellar/dnsmasq/2.62/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf # 创建默认配置文件

添加启动项

sudo cp /usr/local/Cellar/dnsmasq/2.62/homebrew.mxcl.dnsmasq.plist /Library/LaunchDaemons/ # 添加启动项
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist

修改默认配置

打开文件/usr/local/etc/dnsmasq.conf,找到resolv-file的设置并修改为:

resolv-file=/etc/resolv.dnsmasq.conf

这个文件将存放上游 DNS。然后找到listen-address的设置并修改为:

listen-address=127.0.0.1

最后将最后一行的conf-dir修改为:

conf-dir=/etc/dnsmasq.d

保存,并重启 dnsmasq:

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

这样修改完毕后,就可以在/etc/resolv.dnsmasq.conf中定义上游 DNS;可以为本机提供 DNS 服务;可以在/etc/dnsmasq.d中放置其他配置了。

自定义配置

为了给 *.apple.com 使用专用的 DNS,在/etc/dnsmasq.d下创建server.conf,内容为:

server=/.apple.com/199.91.73.222

为了让 double-click.net 解析到特定的 IP,在/etc/dnsmasq.d下创建address.conf,内容为:

address=/double-click.net/127.0.0.1

然后重启 dnsmasq 即可。

其他

本文摘自:http://dongbeta.com/2012/08/dnsmasq-on-mac/