Ubuntu使用dnsmasq作本地DNS缓存
1.安装dnsmasq
#重启服务清除缓存
apt-get install dnsmasq
2.修改/etc/dnsmasq.conf 文件
vim /etc/dnsmasq.conf
#修改以下内容
resolv-file=/etc/resolv.conf #从文件读取 DNSMasq 上游的 DNS 服务器配置。
strict-order #resolv-file 文件中如果指定了多个 DNS 服务器,严格安装 DNS 服务器的先后顺序查询域名。
listen-address=<host-ip> #监听地址,配置为本机 IP 即可。
addn-hosts=/etc/hosts.dnsmasq #从文件读取本地 DNS 域名和 IP 的对应关系,格式为 <IP> <Domain name>。其实可以把 IP 和域名的对应关系写在 /etc/hosts 文件中,DNSMasq 默认从那里读取,但如果要支持一个域名对应多个 IP,就必须使用 addn-hosts 选项了。
3.配置上游dns服务器(/etc/resolv.conf)
文件的内容为上游服务器DNS服务器的地址,是真正的DNS服务器
DNSMasq 是从 /etc/resolv.conf 文件中读取上游的 DNS 服务器的,所以可能要修改该文件,但是 Ubuntu 系统里该文件是自动生成的,系统重启或者服务重启,该文件的修改内容无法保存。这个文件是由 resolvconf.service 来负责维护的,我们可以通过修改下面这个文件来达到我们想要的效果:
vim /etc/resolvconf/resolv.conf.d/head
nameserver 127.0.0.1 #如果配置本地为dns缓存服务器,一定要将127.0.0.1放到第一条,因为上方配置的strict-order会使dnsmasq根据顺序读取dns服务器
nameserver 192.168.175.254
nameserver 8.8.8.8
4.提前配置要解析的ip地址与域名的对应关系(一对多)
vim /etc/hosts.dnsmasq
#以谷歌为例
46.82.174.69 google.com
59.24.3.174 google.com
93.46.8.90 google.com
172.217.27.142 google.com
8.7.198.46 google.com
5.重启服务
service dnsmasq restart
#重启服务后的/etc/resolv.conf
nameserver 127.0.0.1
nameserver 8.8.8.8
nameserver 192.168.175.254
nameserver 127.0.0.1
6.测试
dig 网址
#示例
#第一次
dig google.com
........
;; ANSWER SECTION:
google.com. 0 IN A 216.58.200.238
google.com. 0 IN A 46.82.174.69
google.com. 0 IN A 59.24.3.174
google.com. 0 IN A 93.46.8.90
google.com. 0 IN A 172.217.27.142
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
......
#第二次
dig google.com
..........
;; ANSWER SECTION:
google.com. 0 IN A 216.58.200.238
google.com. 0 IN A 46.82.174.69
google.com. 0 IN A 59.24.3.174
google.com. 0 IN A 93.46.8.90
google.com. 0 IN A 172.217.27.142
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
............
#未配置dns的服务器访问测试
.................
;; ANSWER SECTION:
google.com. 37 IN A 46.82.174.69
;; Query time: 15 msec
;; SERVER: 202.102.128.68#53(202.102.128.68)
................
#可以看到前俩次访问都是走的127.0.0.1本地dns服务器,并且每次的所用时间为0s并显示出所配置的googleIP地址,而未配置该服务的服务器访问时间很长,证明本地dns服务部署完成。
7.作为局域网中的dns服务器
相同局域网中的其他服务器可将首选dns服务器地址配置为该服务器ip
8.附录:参考文章链接
地址链接
https://www.jianshu.com/p/26e11c3babc2
http://mydf.github.io/blog/ubuntu-dnsmasq/
dnsmasq服务配置文件详解文章链接
https://www.cnblogs.com/gaoyanbing/p/13030111.html
dnsmasq介绍与使用
http://www.enkichen.com/2017/05/23/dnsmasq-introduce/