Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2959221
  • 博文数量: 685
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5303
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-19 14:17
个人简介

文章分类

全部博文(685)

文章存档

2015年(116)

2014年(569)

分类: 嵌入式

2014-10-07 16:48:18

原文地址:

介绍Dnsmasq

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

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


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

1 提供dns服务

2 优先使用本地自定义dns

3 提供dhcp服务


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

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

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

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


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


1.安装dnsmasq:

install dnsmasq -y


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


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>

/etc/init.d/dnsmasq restart


验证服务器已启动!@

[@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

中间省略。。。。。

;; 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

中间省略。。。。。

;; 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


阅读(1757) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~