MacOS中配置自己的DNS服务器

作者: shaneZhang 分类: 互联网技术 发布时间: 2018-12-19 13:41

有时候我们为了开发调试,一般都会在自己电脑中配置特定的域名指向的IP地址。那么今天就来讲解一下如何在MacOS中配置自己的DNS服务器。

安装dnsmasq
# Update your homebrew installation
brew up
# Install dnsmasq
brew install dnsmasq
找到配置文件
通过brew list dnsmasq可以找到如下的配置文件路径:
➜  resolver brew list dnsmasq
/usr/local/Cellar/dnsmasq/2.80/.bottle/etc/dnsmasq.conf
/usr/local/Cellar/dnsmasq/2.80/homebrew.mxcl.dnsmasq.plist
/usr/local/Cellar/dnsmasq/2.80/sbin/dnsmasq
/usr/local/Cellar/dnsmasq/2.80/share/man/man8/dnsmasq.8
拷贝配置文件
cp /usr/local/Cellar/dnsmasq/2.80/.bottle/etc/dnsmasq.conf /usr/local/etc/dnsmasq.conf
sudo cp /usr/local/Cellar/dnsmasq/2.80/homebrew.mxcl.dnsmasq.plist /Library/LaunchDaemons/
# Start Dnsmasq automatically.
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
接下来就是修改配置文件
新建一个文件作为本服务器的上游DNS查找服务器
#需要新建一个resolv.dnsmasq.conf文件,这个是配置上游DNS,也就是真正的公共DNS
vi /etc/resolv.dnsmasq.conf
#内容如下
nameserver 119.29.29.29
nameserver 1.2.4.8

然后修改/usr/local/etc/dnsmasq.conf
vim /usr/local/etc/dnsmasq.conf
#上游DNS路径
resolv-file=/etc/resolv.dnsmasq.conf
#取消strict-order注释
strict-order
#监听地址,改成自己服务器公网IP
listen-address=127.0.0.1
#加入dev顶级域名服务器解析
address=/dev/127.0.0.1
address=/mapi.zhangyuqing.me/10.99.33.138

创建操作系统自定义解析池子
OS X还允许您通过在目录中创建配置文件来配置其他解析程序/etc/resolver/。该目录可能不会存在于您的系统上,因此您的第一步应该是创建它:
sudo mkdir -p /etc/resolver
sudo vim /etc/resolver/dev
输入指定的nameserver即可
nameserver 127.0.0.1
sudo vim /etc/resolver/mapi.zhangyuqing.me
nameserver 127.0.0.1

重启dns服务器
sudo launchctl stop homebrew.mxcl.dnsmasq
sudo launchctl start homebrew.mxcl.dnsmasq

然后在检查一下解析是否正确
dig testing.testing.one.two.three.dev @127.0.0.1
dig mapi.zhangyuqing.me  @127.0.0.1
你应该得到像如下反馈一样的字符串标识解析正确
;; ANSWER SECTION:
mapi.zhangyuqing.me.	0	IN	A	10.99.33.138

再次检查解析是否正确
ping -c 1 this.is.a.test.dev
ping -c 1 mapi.zhangyuqing.me

好了,整篇就结束了,简直是两篇文章的合并版本。哈哈哈。

参考文档:
https://passingcuriosity.com/2013/dnsmasq-dev-osx/
https://www.xiaoz.me/archives/8303

本页面支持AMP友好显示:MacOS中配置自己的DNS服务器

如果觉得我的文章对您有用,请随意打赏。如果有其他问题请联系博主QQ(909491009)或者下方留言!

发表评论

电子邮件地址不会被公开。 必填项已用*标注