Ubuntu使用dnsmasq作本地DNS缓存

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/

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值