说明
1、dnsmasq是一款小巧且方便地用于配置DNS服务器和DHCP服务器的工具,适用于小型网络,它提供了DNS解析功能和可选择的DHCP功能。
2、dnsmasq可以解决小范围的dns查询问题,如果业务是跨机房、跨地区的话不建议使用dnsmasq做为dns解析服务器。

安装
1、下载

wget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.75.tar.gz

2、环境准备

yum -y install gcc

3、解压

tar -xf dnsmasq-2.75.tar.gz

4、编译安装

cd dnsmasq-2.75
make install

5、版本查看

dnsmasq -v

6、编辑启动脚本
#服务启动脚本
vim /etc/init.d/dnsmasq

#!/bin/sh
#
# Startup script for the <span class='wp_keywordlink_affiliate'><a href="http://itgeeker.net/tag/dns/" title="View all posts in DNS" target="_blank">DNS</a></span> caching server
#
# chkconfig: - 49 50
# description: This script starts your DNS caching server
# processname: dnsmasq
# pidfile: /var/run/dnsmasq
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
dnsmasq=/usr/local/sbin/dnsmasq
[ -f $dnsmasq ] || exit 0
RETVAL=0
# See how we were called.
case "$1" in
start)
if [ $UID -ne 0 ] ; then
echo "User has insufficient privilege."
exit 4
fi
echo -n "Starting dnsmasq: "
daemon $dnsmasq $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/dnsmasq
;;
stop)
if test "x`pidof dnsmasq`" != x; then
echo -n "Shutting down dnsmasq: "
killproc dnsmasq
fi
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dnsmasq /var/run/dnsmasq.pid
;;
status)
status dnsmasq
RETVAL=$?
;;
reload)
echo -n "Reloading dnsmasq: "
killproc dnsmasq -HUP
RETVAL=$?
echo
;;
force-reload)
# new configuration takes effect only after restart
$0 stop
$0 start
RETVAL=$?
;;
restart)
$0 stop
$0 start
RETVAL=$?
;;
condrestart)
if test "x`/sbin/pidof dnsmasq`" != x; then
$0 stop
$0 start
RETVAL=$?
fi
;;
*)
echo "Usage: $0 {start|stop|restart|reload|condrestart|status}"
exit 2
esac
exit $RETVAL

赋予执行的权限

chmod +x /etc/init.d/dnsmasq

7、启动

/etc/init.d/dnsmasq start
chkconfig dnsmasq on

备注:
#如果是源码编译安装的,没有启动脚本时启动、验证、关闭、重启

启动: /usr/local/sbin/dnsmasq
验证:netstat -tunlp|grep 53
关闭:killall -KILL dnsmasq
重启: pkill -9 dnsmasp && /usr/local/sbin/dnsmasq -h

8、其他方式安装
Centos安装

yum -y install dnsmasq

Ubuntu 安装

sudo apt-get -y install dnsmasq

配置
一、三个关键配置文件
1、主配置文件,安装后自动生成
/etc/dnsmasq.conf
2、添加内部需要解析的地址和域名
/etc/dnsmasq.hosts
3、dnsmasq的上游DNS服务器,可以将reslove.conf配置文件复制为resolv.dnsmasq.conf,进行添加nameserver
/etc/resolv.dnsmasq.conf

二、编辑配置文件
1、编辑配置/etc/dnsmasq.conf
vim /etc/dnsmasq.conf

#定义dnsmasq从哪里获取上游DNS服务器的地址,默认是从/etc/resolv.conf获取
resolv-file=/etc/resolv.dnsmasq.conf
#严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止
strict-order
#启用泛域名解析,即自定义解析a记录
#访问baidu.com时的所有域名都会被解析成10.77.3.8
address=/baidu.com/10.77.3.8
address=/blog.csdn.net/10.77.3.8
#定义dnsmasq监听的地址,默认是监控本机的所有网卡上。局域网内主机若要使用dnsmasq服务时,指定本机的IP地址
listen-address=10.77.3.8,127.0.0.1
#本地域名配置文件(不支持泛域名),添加内部需要解析的地址和域名(重新加载即可生效)
addn-hosts=/etc/dnsmasq.hosts
#缓存条数
cache-size=100
#为防止DNS污染,使用参数定义的DNS解析的服务器。注意:如果是阿里云服务器上配置dnsmasq要启用此项。
bogus-nxdomain=114.114.114.114
#可以通过server对不通的网站使用不通的DNS服务器进行解析。如下表示对于google的服务,使用谷歌的DNS解析
server=/google.com/8.8.8.8
#记录dns查询日志服务器
log-queries
#设置日志记录器
log-facility=/var/log/dnsmasq.log

2、在/etc/dnsmasq.hosts中编辑添加需要解析的内部地址
vim /etc/dnsmasq.hosts

#(testhjs.com为自定义的域名与10.77.3.8进行关联,其他pc或服务器等client配置了10.77.3.8为dns,即可解析此域名)
10.77.3.8 testhjs.com
#(testhjs2.com为自定义的域名与10.77.3.119进行关联,其他pc或服务器等client配置了10.77.3.8为dns,即可解析此域名)
10.77.3.119 testhjs2.com

3、在/etc/resolv.dnsmasq.conf添加上游dns服务地址,也就是本地dns10.77.3.8无法解析的时候自动切换到上游dns服务

nameserver 114.114.114.114
nameserver 115.115.115.115

三、其他配置以及说明
1、配置日志轮转,编辑/etc/logrotate.d/dnsmasq

/var/log/dnsmasq.log {
daily
copytruncate
missingok
rotate 30
compress
notifempty
dateext
size 200M
}

2、安装dig&nslookup
Ubuntu:

sudo apt-get install dnsutils

Centos:

yum install bind-utils

客户端测试域名是否生效:nslookup www.freeoa.net检查解析的IP即可,或使用dig指令。

3、关闭防火墙,或放行dns的端口53

4、客户端配置上自己搭建的dns地址进行测试
由于dns服务端配置了/etc/dnsmasq.conf中配置了address=/baidu.com/10.77.3.8,所以下面的dns解析地址为10.77.3.8

root@test ~]# dig baidu.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53090
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION:
;baidu.com. IN A ;; ANSWER SECTION:
baidu.com. 0 IN A 10.77.3.8 ;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Apr 12 10:38:28 2018
;; MSG SIZE rcvd: 43 [root@test ~]# nslookup baidu.com
Server: 10.77.3.8
Address: 10.77.3.8#53 Name: baidu.com
Address: 10.77.3.8 自定义域名解析
[root@test ~]# dig testhjs.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.5 <<>> testhjs.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55740
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION:
;testhjs.com. IN A ;; ANSWER SECTION:
testhjs.com. 0 IN A 10.77.3.8 ;; Query time: 0 msec
;; SERVER: 10.77.3.8#53(10.77.3.8)
;; WHEN: Thu Apr 12 10:41:13 2018
;; MSG SIZE rcvd: 45 [root@test ~]# nslookup testhjs.com
Server: 10.77.3.8
Address: 10.77.3.8#53 Name: testhjs.com
Address: 10.77.3.8

centos下dnsmasq安装与配置的更多相关文章

  1. CentOS 下 redis 安装与配置

    CentOS 下 redis 安装与配置   1.到官网上找到合适版本下载解压安装 [root@java src]# wget -c http://redis.googlecode.com/files ...

  2. Centos下 Nginx安装与配置

    网上找了好多资料.都很难找全,这里以这个目录为主,进行备注. Nginx是一款轻量级的网页服务器.反向代理服务器.相较于Apache.lighttpd具有占有内存少,稳定性高等优势.它最常的用途是提供 ...

  3. CentOS下Redis安装与配置

    本文详细介绍redis单机单实例安装与配置,服务及开机自启动.如有不对的地方,欢迎大家拍砖o(∩_∩)o (以下配置基于CentOS release 6.5 Final, redis版本3.0.2 [ ...

  4. centos下Nginx安装和配置多个域名的虚拟主机

    nginx安装步骤,源码编译安装(源码编译,可以自定制更多功能) openssl #user nobody; worker_processes ; #error_log logs/error.log; ...

  5. Centos下mahout安装与配置

    对于Mahout的安装与配置,须要一个前提.就是hadoop已经安装. 假设没有安装能够參考. http://blog.csdn.net/u012965373/article/details/4533 ...

  6. centos下nginx安装和配置

    注:此文是根据前辈的博客和自己实际动手总结出来的,不喜勿喷 1.准备工作 Nginx的安装依赖于以下三个包,意思就是在安装Nginx之前首先必须安装一下的三个包,注意安装顺序如下: 1 SSL功能需要 ...

  7. centos下vsftpd安装与配置

    1.已经配置好可以上网了,所以即可通过yum install vsftpd安装啦.如果不能上网则可以通过dvd2.iso工具集rpm方式进行安装. 2.安装好后,默认本地可以通过匿名用户登录,但是其它 ...

  8. Linux之CentOS下vsftp安装及配置相关操作

    1.安装ftps——vsftpd: #yum install vsftpd 2.指定上传下载目录配置: 如:用户名:xxx,需指定目录:/xxx/xxx #useradd -d /xxx/xxx -s ...

  9. nginx在CentOs下的安装及配置

    前言: 先介绍一下nginx: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.其特点是占有内存少,并发能力强, ...

随机推荐

  1. 可变、不可变数据类型和hash

    一.可变和不可变数据类型 在python中,我们对数据类型除了分为数字类型.字符串类型.列表类型.元组类型.字典类型和集合类型外, 还有另外一种分类方式,我们给数据类型分为可变数据类型和不可变数据类型 ...

  2. ECShop研究:去掉标题中的Powered by ECShop和meta的<meta name="Generator" content="ECSHOP v2.7.3" />

    本文以ECSHOP v2.7.3为说明,其他版本可能有所不同. 标题中的Powered by ECShop去除方法: 打开includes/lib_main.php文件: 找到156行:$page_t ...

  3. Tensorflow CPU mask-rcnn 训练模型

    基于cpu版的tensorflow ,使用mask_rcnn训练识别箱子的模型 代码参考(https://blog.csdn.net/disiwei1012/article/details/79928 ...

  4. 38-最长公共子序列(dp)

    最长公共子序列 https://www.nowcoder.com/practice/c996bbb77dd447d681ec6907ccfb488a?tpId=49&&tqId=293 ...

  5. java类中final方法的作用

    不给子类复写这个方法.说明你已经知道这个方法提供的功能已经满足你要求,不需要进行扩展,并且也不允许任何从此类继承的类来覆写这个方法,但是继承仍然可以继承这个方法,也就是说可以直接使用 inline扩展 ...

  6. 数字图像处理实验(8):PROJECT 04-04,Highpass Filtering Using a Lowpass Image 标签: 图像处理MATLAB 2017-05-25 0

    实验要求: 高通滤波器可以通过1减去低通滤波器的传递函数得到. 使用公式 计算可以的得到 . 实验代码: % PROJECT 04-04 Highpass Filtering Using a Lowp ...

  7. Entity Framework 6.0 Tutorials(6):Transaction support

    Transaction support: Entity Framework by default wraps Insert, Update or Delete operation in a trans ...

  8. [GO]随机生成切片元素并使用冒泡排序方式进行排序

    package main import ( "math/rand" "time" "fmt" ) func ButtleData(s []i ...

  9. 编写高质量代码改善C#程序的157个建议——建议52:及时释放资源

    建议52:及时释放资源 垃圾回收机制自动为我们隐式地回收了资源(垃圾回收器会自动调用终结器),那我们为什么要主动释放资源呢? private void buttonOpen_Click(object ...

  10. 装饰(Decorator)模式

    一. 装饰(Decorator)模式 装饰(Decorator)模式又名包装(Wrapper)模式[GOF95].装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 二. 装饰模式 ...