点击登录
  • 欢迎访问无限星辰技术博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏无限星辰吧
  • 无限星辰的淘宝店铺已经开张了哦,传送门:http://

centos 下dnsmasq 安装配置

LINUX服务器 crx349 4868次浏览 0个评论 扫描二维码

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

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

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

1 提供dns服务

2 优先使用本地自定义dns

3 提供dhcp服务

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

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

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

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

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

1.安装dnsmasq:

1
yum install dnsmasq -y

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

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

2.修改系统配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
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,编辑该文件,添加内容如下:

1
2
3
4
5
6
7
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.添加开机启动并启动服务

1
2
3
4
5
chkconfig --add dnsmasq
 
chkconfig dnsmasq on
 
service dnsmasq start

重启

1
/etc/init.d/dnsmasq restart

验证服务器已启动!@

[root@master ~]#

1
2
3
4
5
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 ~]#

1
dig www.xmspace.net

中间省略。。。。。

;; 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 ~]#

1
dig www.xmspace.net

中间省略。。。。。

;; 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 ~]#

1
2
3
4
5
6
7
8
9
10
11
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=….格式一样


无限星辰 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明centos 下dnsmasq 安装配置
喜欢 (1)
[]
分享 (0)

您必须 登录 才能发表评论!