A-A+

介绍Dnsmasq

2014年02月27日 其他服务 暂无评论 阅读 874 次

 

Dnsmasq是一个很实用的小工具,解决局域网的需求看来非常合适,特别是网关和防火墙上。

它同时也可以作为一个dns查询服务器,虽然不如bind等完善,但基本功能也够用了。

 

它可以提供如下几个实用的功能:

1 提供dns服务

2 优先使用本地自定义dns

3 提供dhcp服务

 

能有效解决区域网问题如下:

1 局域网有很多机器希望使用一份一样的hosts定义一批名称对应的ip,你需要经常维护这份列表

2 你希望局域网的人访问某个域名时,拦截下来到指定的ip,做缓存节省带宽或者其它用途都可以

3 禁止某个域名的正常解析

 

本文主要讲述dnsmasq 安装、配置、域名解析、域名屏蔽等内容

 

1.安装dnsmasq:

yum install dnsmasq -y

 

喜欢编译安装的,可以访问下面的连接下载源码文件!

http://www.thekelleys.org.uk/dnsmasq/

 

2.修改系统配置文件

 

echo 'nameserver 127.0.0.1' > /etc/resolv.conf

 

cp /etc/resolv.conf /etc/resolv.dnsmasq.conf

echo 'nameserver 8.8.8.8' > /etc/resolv.dnsmasq.conf

echo 'nameserver 202.106.0.20' > /etc/resolv.dnsmasq.conf

 

cp /etc/hosts /etc/dnsmasq.hosts

 

3.dnsmasq配置

dnsmasq的配置文件为/etc/dnsmasq.conf,编辑该文件,添加内容如下:

cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak #先做个备份

 

echo 'resolv-file=/etc/resolv.dnsmasq.conf' >> /etc/dnsmasq.conf

echo 'addn-hosts=/etc/dnsmasq.hosts' >> /etc/dnsmasq.conf

 

4.添加开机启动并启动服务

chkconfig dnsmasq on

/etc/init.d/dnsmasq restart

 

验证服务器已启动!@

[root@master ~]# netstat -tunlp|grep 53

tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 10246/dnsmasq

udp 0 0 0.0.0.0:53 0.0.0.0:* 10246/dnsmasq

 

确认服务启动后,就可以将客户端PC的DNS服务器指向dnsmsq服务器(注意iptables),可以正常访问网络页面为正常!

 

5.测试

[root@cn-ptmind ~]# dig www.ptmind.com

中间省略。。。。。

;; Query time: 50 msec #首次查询域名使用50Mms!!!!

;; SERVER: 127.0.0.1#53(127.0.0.1)

;; WHEN: Tue Oct 8 12:51:50 2013

;; MSG SIZE rcvd: 48

 

[root@cn-ptmind ~]# dig www.ptmind.com

中间省略。。。。。

;; Query time: 0 msec #再次查询域名使用0Mms,说明已经缓存!!!!!!!!

;; SERVER: 127.0.0.1#53(127.0.0.1)

;; WHEN: Tue Oct 8 12:51:53 2013

;; MSG SIZE rcvd: 48

 

6.域名解析、域名解析

只需要在配置文件下面添加一条address即可!

root@cn-ptmind ~]# vi /etc/dnsmasq.conf

 

resolv-file=/etc/resolv.dnsmasq.conf

addn-hosts=/etc/dnsmasq.hosts

 

address=/kkk.ptmind.com/118.126.32.53 #随便写一条不存在的域名,指向我们的一个页面!

重启服务后在客户端浏览器访问,发现打开页面是指定页面。

 

通过此方法可以实现泛域名解析、屏蔽等,这是hosts不可能实现的。

例如输入*.domain.name->127.0.0.1则将会把所有domain.name下的域名都指向127.0.0.1,从而实现过滤功能。

小提示:

例如过滤时输入*.it168.com->127.0.0.1,那么不管我们访问wireless.it168.com还是safe.it168.com都将被过滤掉而无法顺利显示相应页面。

而编辑HOSTS时我们则需要针对wireless.it168.com和safe.it168.com两个地址添加两个不同的条目才能实现过滤规则。

 

如同我们配置本地hosts文件屏蔽广告一样,也可以在这里配置

域名解析屏蔽广告----当然你要把dns服务器地址设成它而非直接ISP的。

比起本地hosts来

1. 配置一次,内网所有机器各种系统都生效

2. 可以实现泛域名解析,这用hosts是不可能的

 

【ps: addn-hosts=/etc/dnsmasq.hosts的优先级大于address=/domain.name/127.0.0.1】

这样*.domain.name都会解析到127.0.0.1

需要新的就多加一行address=....格式一样

 

#参考内容

http://i.sohu.com/p/=v2=ba5A9mcsmz94lMM3h29odS5jb20=/blog/view/204438336.htm

http://blog.sina.com.cn/s/blog_6912b72c0100qbcv.html

http://mmdev.iteye.com/blog/1707550

http://linux008.blog.51cto.com/2837805/551372

标签:
蜗牛的梦想
Copyright © Linux系统运维联盟 保留所有权利.   Theme  Ality 京公网安备11011402000199号 京ICP备14047887号

用户登录