DNSMAQ 搭建 DNS 服务

DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。自己搭建公共DNS更加灵活,如果是在本地搭建,还可以大幅提高解析速度。
相比较BIND那复杂的配置来说,dnsmasq轻量很多

centos7安装dnsmaq

yum -y install dnsmasq		#yum方式安装

配置

1.配置文件在 /etc/dnsmasq.conf,我们要让它能用起来需要做如下配置:

#指定上游dns服务器    
resolv-file=/etc/resolv.dnsmasq.conf    
#表示严格按照 resolv-file 文件中的顺序从上到下进行 DNS 解析, 直到第一个成功解析成功为止    
strict-order    
# 开启后会寻找本地的hosts文件在去寻找缓存的域名,最后到上游dns查找    #no-resolv    
listen-address=0.0.0.0		#0.0.0.0 设置为公网IP    
conf-dir=/etc/dnsmasq.d		# 我们的解析记录都写到这个目录下

2.创建 /etc/resolv.dnsmasq.conf ,然后添加:

# cat /etc/resolv.dnsmasq.conf    
nameserver 119.29.29.29    
nameserver 114.114.114.114    
nameserver 8.8.8.8    
nameserver 168.95.1.1

3.然后创建 /etc/dnsmasq.d/cloud.conf,添加:

address=/baidu.com/127.0.0.1 		# 将百度的域名解析到127.0.0.1       
address=/ad.youku.com/127.0.0.1 	# 禁止优酷广告    
address=/ad.iqiyi.com/127.0.0.1  	# 禁止iqiyi广告

格式是:

address=/domain.com/dns

比如上面的百度,我就把它都解析到127.0.0.1。

实现DNS分流

server=/cn/114.114.114.114 			# cn的域名都走114的dns    
server=/google.com/115.159.220.214	# 将谷歌的解析都走115.159.220.214

上面的是将所有cn结尾的域名都走114解析,下面是将google.com 走115.159.220.214解析。

开启防火墙53端口后,本地测试下 53 端口是否是通的:

➜  www nc -vuz 121.42.18.6 53    
found 0 associations    
found 1 connections:         
	1:    flags=82<CONNECTED,PREFERRED>        
	outif (null)        
	src 192.168.2.32 port 49939        
	dst 121.42.18.6 port 53        
	rank info not available    
Connection to 121.42.18.6 port 53 [udp/domain] succeeded!
service dnsmasq start		#启动dnsmaq:
systemctl enable dnsmasq 	#设置为开机自启动。

测试

➜  www dig m.baidu.com @121.42.18.6    
; <<>> DiG 9.8.3-P1 <<>> m.baidu.com @121.42.18.6    
;; global options: +cmd    
;; Got answer:    
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41523    
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0    

;; QUESTION SECTION:    
;m.baidu.com.            IN  A    

;; ANSWER SECTION:    
m.baidu.com.        0   IN  A   127.0.0.1    

;; Query time: 30 msec    
;; SERVER: 121.42.18.6#53(121.42.18.6)    
;; WHEN: Mon Aug 28 10:32:27 2017    
;; MSG SIZE  rcvd: 45
    
# 可以看到,百度的子域名已经被解析到127.0.0.1了,此外还可以配合dnscrypt-proxy 对查询进行加密,这里就不展开了。
posted @ 2019-11-05 19:50  博客萨斯州  阅读(601)  评论(0编辑  收藏  举报