dnsmasq 可以提供 DNS 缓存和 DHCP 服务功能。对于在本地搭建一个 DNS 是再好不过了。
我的需求如下:
- 对于特定域,使用特定的 DNS
- 对于特定的几个域名,手工指定 IP
我的环境如下:
- Mac OS X Mountain Lion
- Homebrew 0.9.2
安装
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 即可。
其他
- dnsmasq 配置文档
- V2EX DNS 是为 App Store 优化的 DNS,但是使用之后有很多网站无法访问,还不太成熟和稳定