DNSMAQ 搭建 DNS 服务

DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。本身搭建公共DNS更加灵活,若是是在本地搭建,还能够大幅提升解析速度。
相比较BIND那复杂的配置来讲,dnsmasq轻量不少python

centos7安装dnsmaq

yum -y install dnsmasq      #yum方式安装

配置

1.配置文件在 /etc/dnsmasq.conf,咱们要让它能用起来须要作以下配置:centos

#指定上游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。dom

实现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 对查询进行加密,这里就不展开了。
相关文章
相关标签/搜索