dnsmasq 的使用手册
如何更好的用手机调试本地的页面、接口?
我选择在本地搭建了 DNS 服务器。
dnsmasq 轻量且易配置,提供 DNS 缓存和 DHCP 服务功能。
安装
使用 brew 直接安装1
$ brew install dnsmasq
配置
配置 /usr/local/etc/dnsmasq.conf
以下我提供的是最常见的配置
resolv-file
指定 dns 解析的文件, 默认是 /etc/resolv.conf1
resolv-file=/usr/local/etc/resolv.dnsmasq.conf
strict-order
表示严格按照 resolv-file 文件中的顺序从上到下进行 DNS 解析, 直到第一个成功解析成功为止listen-address
监听地址,172.17.9.78为局域网分配给我本机的IP,如果只填写127.0.0.1,那么只针对本机有效,局域网内的其他服务器则无法访问这个 DNS 服务器。1
listen-address=172.17.9.78,127.0.0.1
no-hosts
dnsmasq 首先会寻找本地的 /etc/hosts 文件,再去寻找缓存下来的域名, 最后去上游 dns 服务器寻找。此项将禁止 dnsmasq 访问 本地 hostsaddn-hosts
自定义其他的 hosts 文件,按需求看自己要不要配哈,不配的话,会默认访问 /etc/hosts1
addn-hosts=/usr/local/etc/dnsmasq.hosts
我的配置情况如下:1
2
3resolv-file=/usr/local/etc/resolv.dnsmasq.conf
listen-address=172.17.9.78,127.0.0.1
strict-order
配置 resolv-file
1 | $ sudo vi /usr/local/etc/resolv.dnsmasq.conf |
文件内容如下:
1 | nameserver 127.0.0.1 // 本机 |
配置 /usr/local/etc/dnsmasq.hosts
或 /etc/hosts
1 | 172.17.9.78 hello.me |
如果配成 127.0.0.1 hello.me,局域网其他服务器无法访问 hello.me 这个域名
启动 dnsmasq
1 | # 启动 |
如果改动了泛解析规则,重启 dnsmasq 不会立即看到效果,可尝试清楚缓存1
sudo killall -HUP mDNSResponder
测试
- ping 一下 hello.me,看能不能 Ping 通
- 本机打开网页,看能不能正常访问网络。
- 手机在于电脑连接同一个局域网的条件下,配置 wifi 的 DNS,DNS 地址为电脑的 IP,然后尝试在手机打开 hello.me, 看能否正常访问。
测试成功的话,就可以愉快的在手机上调试本地的开发页面啦~~~