1. 安装dnsmasq
#centos
yum -y install dnsmasq
#ubuntu
apt-get -y install dnsmasq
2. 配置dnsmasq
有三个关键配置文件:
● 主配置文件,安装后自动生成
/etc
● 添加内部需要解析的地址和域名
/etc
● dnsmasq的上游DNS服务器,可以将re配置文件复制为re,进行添加nameserver
/etc/re
编辑/etc配置文件:
# 指定上游dns服务器
resolv-file=/etc/re
#严格按照resolv-file文件中的顺序从上到下进行DNS解析
strict-order
#监听地址
listen-address=10.0.0.1
#使用DNS服务器
server=119.29.29.29
#防止dns劫持
bogus-nxdomain=119.29.29.29
#指定域名解析到特定的IP上
address=
#本地域名配置文件(不支持泛域名),添加内部需要解析的地址和域名(重新加载即可生效)
addn-hosts=/etc
#可以通过server对不通的网站使用不通的DNS服务器进行解析。如下表示对于google的服务,使用谷歌的DNS解析
server=
主要的配置说明:
resolv-file
定义dnsmasq从哪里获取上游DNS服务器的地址, 默认从/etc获取。
strict-order
表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。
listen-address
定义dnsmasq监听的地址,默认是监控本机的所有网卡上。
address
启用泛域名解析,即自定义解析a记录,例如:address= 访问long.com时的所有域名都会被解析成192.168.115.10
bogus-nxdomain
对于任何被解析到此 IP 的域名,将响应 NXDOMAIN 使其解析失效,可以多次指定
通常用于对于访问不存在的域名,禁止其跳转到运营商的广告站点
server
指定使用哪个DNS服务器进行解析,对于不同的网站可以使用不同的域名对应解析。
例如:server= #表示对于google的服务,使用谷歌的DNS解析。
3. 测试配置文件
使用如下命令检查配置文件是否正确:
dnsmasq -test
4. DNS缓存
要在单台电脑上以守护进程方式启动dnsmasq做DNS缓存服务器,编辑/etc,添加监听地址:
listen-address=127.0.0.1
如果用此主机为局域网提供默认 DNS,请用为该主机绑定固定 IP 地址,设置:
listen-address=192.168.x.x
这种情况建议配置静态IP.
多个ip地址设置:
listen-address=127.0.0.1,192.168.x.x
5. 测试
安装网络工具
sudo yum install bind-utils
测试:
dig www.baidu.com
6. 可视化界面
● 下载从 下载对应版本需要的可执行文件。
● 安装
解压可执行文件,然后进行安装:
webproc --configuration-file /etc -- dnsmasq --no-daemon
如果要以守护进程运行则可以把 --no-daemon 改为 --daemon。
注意:可以同时使用多个–configuration-file加载多个配置文件。
7. 解析配置
1.自动解析
可在/etc中增加如下配置添加自动解析规则:
address=/.map.
address=/.map.
address=/.map.
address=/.map.
该规则表示所有**.map.**的子域名都会解析到10.8.202.135~10.8.202.137及10.8.202.131上。
2. 手动解析
手动解析可以修改/etc文件,在其中增加解析配置:
10.8.202.131
表示将解析到10.8.202.131服务器上。
8. 常见问题
8.1 Affress already in use
使用sudo lsof -i:53查看当前占用端口的经常,之后kill该进程。