DNSmasq 介绍
DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。它服务那些只在本地适用的域名,这些域名是不会在全球的DNS服务器中出现的。DHCP服务器和DNS服务器结合,并且允许DHCP分配的地址能在DNS中正常解析,而这些DHCP分配的地址和相关命令可以配置到每台主机中,也可以配置到一台核心设备中(比如路由器),DNSmasq支持静态和动态两种DHCP配置方式。引用百科
DNSmasq 搭建步骤
服务器 CentOS 6.5
安装
# yum -y install dnsmasq
提示Complete! 安装完成
修改配置
# vi /etc/dnsmasq.conf
resolv-file=/etc/resolv.dnsmasq.conf
strict-order
listen-address=192.168.10.2
address=/域名/192.168.10.2
server=192.168.10.2
:wq
设置上游DNS服务器地址
vi /etc/resolv.dnsmasq.conf
nameserver 202.96.134.133
nameserver 114.114.114.114
【20180322补充】 如果不设置上游DNS服务器地址,可能会导致奇葩问题,今天本地七牛就出现图片无法访问: net::ERR_NAME_NOT_RESOLVED,通过设置resolv.dnsmasq.conf修复
解释
resolv-file 定义dnsmasq从哪里获取上游DNS服务器的地址, 默认是从/etc/resolv.conf获取。在此我们定义的是从/etc/resolv.dnsmasq.conf文件中获得。
strict-order 表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。
listen-address 定义dnsmasq监听的地址,默认是监控本机的所有网卡上。
address 自定义域名解析的IP地址。注意dnsmasq是支持泛域名解析的,以上配置就是一个典型的泛域名解析实例。
address可以过滤某些网站,比如让a.com不能访问,直接让a.com 解析到本地
address=/a.com/127.0.0.1
server 定义dnsmasq使用DNS服务器进行解析,也可以配置不同域名使用不同DNS解析
比如 google使用 8.8.8.8 ,baidu 使用 114.114.114.114
server=/google.com/8.8.8.8
server=/baidu.com/114.114.114.114
启动服务
service dnsmasq start
service dnsmasq restart
测试
使用另外一台 Linux 测试 :
# vi /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.10.2
nameserver 202.96.134.133
:wq
测试
#nslookup www.baidu.com
Server: 192.168.10.2
Address: 192.168.10.2#53
使用192.168.10.2 解析成功
Windows DNS修改:
iPhone DNS修改:
Android DNS修改:
设置开机启动
chkconfig dnsmasq on
注意事项
- DNSmasq 安装机器的端口开放 53
- 客户机测试不生效,重启网络