mac中针对不同域名使用不同的dns服务器
一般情况下,我们使用一个dns服务器就能达到我们的需求,但有时候我们需要针对不同域名,使用不同的dns,如以下场景:
- 需要dns服务器A去解释某国外域名
- 需要dns服务器B去解释局域网内部的域名
- 默认使用dns服务器C
通用的解决方法是使用自己搭建的dns forwarder服务器,然后针对不同的zone设置不同的dns服务器,bind和dnsmasq都可以做这种dns forwarder的工作。
但如果你是在mac中,则有更加简单的方法:
- 在 /etc/ 目录下建立 resolver 文件夹,即 /etc/resolver 目录
- 在/etc/resolver 目录下,针对不同的域名zone建立不同的解析文件;如我要对zwsun.com使用192.168.1.1的dns服务器,则建立文件zwsun.com,内容为: nameserver 192.168.1.1
- ping zwsun.com看看,证实一下是否设置成功
上述操作需要在root下,另外,需要说明的 是,nslookup的结果不会受这个文件的影响,但对ping程序是会生效的。
一般的策略是将大部分域名解析的dns设置在 /etc/resolv.conf中,也就是通过网络偏好设置,特殊解析需求的可以在/etc/resolver目录下建立对应的文件。