您的位置:首页 > 编程语言 > ASP

Dnsmasp详解

2015-11-10 16:55 621 查看
原链接:http://blog.csdn.net/wsclinux/article/details/45171443

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

1 提供dns服务
2 优先使用本地自定义dns
3 提供dhcp服务

给本地局域网提供一个DNS服务器,任务本地的用户DNS请求的时候都会先被这个DNSmasp劫持,并进行过滤等操作

/etc/init.d/DNSmasp中,

1.对于使用了防火墙的设备,DNS的配置是比较简单的,并且不依赖于ISP的DNS服务器。

2.在客户端上做DNS查找时,如果连接到英特网的modem被关闭了,查找动作将立即暂停。

3.在使用了防火墙的设备中,/etc/hosts这个文件中存储了一部分主机的名字,而DNSmasq会为这些主机提供服务,如果本地机器的名字都在这个文件中,这时所有的主机都能被服务到,而不用在每个主机中都维护/etc/hosts目录了。

4.集成的DHCP服务器支持静态和动态的DHCP租约服务,多态的网络和多样的IP范围,它通过BOOTP继电器工作,并且支持DHCP的一些选项,包括RFC3397,DNS选项列表。用DHCP配置的机器能自动获取他们的域名信息,这些信息包含在DNS里,同时,这些名字也可以靠机器自己来指定,或者在DNSmasq配置文件里集中将一个域名和一个MAC地址绑定存储。

5.DNSmasq把因特网地址和地址-域名映射关系放入cache中,减少服务器负担的同时也提升了性能(特别是在modem连接中)。

6.DNSmasq能配置来自动用PPP或DHCP配置请求从上行域名解析服务器中获取地址信息,如果信息发生改变,它会自动重载这些信息。自从它允许自动配置DNS,linux防火墙的维护者就对这个软件就充满兴趣。

7.在支持IPv6的设备中,DNSmasq既能通过Ipv6与上行服务器交互,又能通过IPV6提供DNS服务,在支持双协议栈(IPV4和IPv6)的设备中,它也能与两种协议交互,甚至可以完成ipv4和IPv6之间的相互转化转发工作。

8.DNSmasq能被配置用来向特定的上行服务器发送特定的域名解析请求,从而可以简单的与私有的DNS服务器结合使用。

默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢。其次是部分网站域名不能正常被解析,莫名其妙地打不开,或者时好时坏。

如果碰上不稳定的本地DNS,还可能经常出现无法解析的情况。除了要避免“坏”的DNS的影响,我们还可以利用DNS做些“好”事,例如管理局域网的DNS、给手机App Store加速、纠正错误的DNS解析记录、保证上网更加安全、去掉网页讨厌的广告等等。

这时候搭建一个属于自己的本地DNS服务器就十分必要了,本篇文章就来分享一下Dnsmasq安装与配置方法,利用Dnsmasq来搭建一个属于自己的本地DNS服务器,享受更干净无污染、更智能快速和没有广告干扰的DNS解析服务。

选择好的本地DNS可以让我们上网更快更舒心,而对于网站,选择一个好的DNS域名解析服务也是十分重要:
1、DNS排名:十大免费DNS域名解析服务-稳定,可靠,好用的免费DNS服务
2、国外DNS:Linode免费DNS使用方法和He.net稳定功能强大的DNS解析服务
3、国内DNS:360网站卫士免费DNS和CDN申请使用及CDN缓存无法切换移动主题

Dnsmasq安装与配置-搭建本地DNS服务器 享受更干净更快无广告DNS解析

一、Dnsmasq安装

1、执行以下命令在VPS上安装Dnsmasq:
yum install dnsmasq -y
service dnsmasq start






二、Dnsmasq配置

1、Dnsmasq的配置文件是放在 /etc/dnsmasq.conf 中。





2、打开编辑,配置:resolv-file=/etc/resolv.dnsmasq.conf,表示dnsmasq 会从这个指定的文件中寻找上游dns服务器。同时取消 strict-order 前面的注册#号。





3、检查一下no-hosts前面是不是已经有了#号,默认的情况下是有的,dnsmasq 会首先寻找本地的 hosts 文件再去寻找缓存下来的域名, 最后去上游dns 服务器寻找。





4、设置:listen-address=127.0.0.1,表示这个 dnsmasq 本机自己使用有效。注意:如果你想让本机所在的局域网的其它电脑也能够使用上Dnsmasq,应该把本机的局域网IP加上去:listen-address=192.168.1.123,127.0.0.1





5、修改好了dnsmasq.conf 后,就可以将它重新上传覆盖原文件了。

6、另外我们还需要修改/etc/resolv.conf这个文件,执行以下命令:
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 199.91.73.222' > /etc/resolv.dnsmasq.conf
cp /etc/hosts /etc/dnsmasq.hosts
echo 'addn-hosts=/etc/dnsmasq.hosts' >> /etc/dnsmasq.conf






7、resolv.dnsmasq.conf中设置的是真正的Nameserver,可以用谷歌、V2EX等公共的DNS。

三、Dnsmasq启动

1、执行以下命令设置Dnsmasq开机启动并启动Dnsmasq服务:
chkconfig dnsmasq on
/etc/init.d/dnsmasq restart






2、执行命令:netstat -tunlp|grep 53 可以查看Dnsmasq是不是已经正常启动:





3、测试:dig www.freehao123.com,第一次是没有缓存,所以时间是200多。





4、第二次再次测试,因为已经有了缓存,所以查询时间已经变成了0.





四、Dnsmasq使用

1、本地DNS。将Dnsmasq作为本地DNS服务器使用,直接修改电脑的本地DNS的IP地址即可。





2、应对ISP的DNS劫持。输入一个不存在的域名,正常的情况下浏览器是显示无法连接,DNS劫持会跳转到一个广告页面。先随便nslookup 一个不存在的域名,看看ISP商劫持的IP地址。





3、接着编辑/etc/dnsmasq.conf文件,将:bogus-nxdomain=123.123.123.123 加入进去,后面的IP是刚刚查询到的DNS劫持IP地址。

4、重启dnsmasq,再尝试打开不存在的域名,这时浏览器就会显示正常的无法连接页面了。





5、智能DNS加快解析速度。打开/etc/dnsmasq.conf文件,server=后面可以添加指定的DNS,例如国内外不同的网站使用不同的DNS。
#国内指定DNS
server=/cn/114.114.114.114
server=/taobao.com/114.114.114.114
server=/taobaocdn.com/114.114.114.114
#国外指定DNS
server=/google.com/223.5.5.5


6、server=/cn/表示所有的cn域名都使用114这个公共DNS,server=/taobao.com/表示所有的taobao.com域名都用114,223.5.5.5 是阿里云的公共DNS,你可以换成其它的。

7、屏蔽网页广告。将指广告的URL指定127这个IP,就可以将网页上讨厌的广告给去掉了。
address=/ad.youku.com/127.0.0.1
address=/ad.iqiyi.com/127.0.0.1


8、指定域名解析到特定的IP上。这个功能可以让你控制一些网站的访问,非法的DNS就经常把一些正规的网站解析到不正确IP上。
address=/freehao123.com/123.123.123.123


9、内网DNS。首先将局域网中的所有的设备的本地DNS设置为已经安装Dnsmasq的服务器IP地址。然后修改已经安装Dnsmasq的服务器Hosts文件:/etc/hosts,指定域名到特定的IP中。

10、例如想让局域网中的所有用户访问www.freehao123.com时跳转到192.168.0.2,添加:192.168.0.2 www.freehao123.com在Hosts文件中既可,整个过程也可以说是“DNS劫持”。

五、Dnsmasq小结

1、Dnsmasq作为本地DNS服务器安装方便,操作简单,改动的地方也不是很多,如果用国内的VPS来搭建本地DNS,响应的速度会更快,也更稳定。

2、Dnsmasq的功能强大,反DNS劫持、加快解析速度、屏蔽广告、控制内网DNS、强制域名跳转到特定IP上等这些功能在我们的实际的生活中都是很有用的。

文章出自:免费资源部落 http://www.freehao123.com/ 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

DNS服务器,linux下一般用bind,但bind太复杂了,dnsmasq使用上比dns始祖bind要简便得多,可以做正向dns代理,也可以直接做内部纯dns服务器用。
默认配置下,dnsmasq使用系统的/etc/resolv.conf并读取/etc/hosts,
  /etc/resolv.conf文件是用来配置上一级DNS
  /etc/hosts文件是用来存储dns代理缓存。
  dnsmasq可以用hosts文件来设置域名:
  例:mail.bingo.com是不存在的域名,在dnsmasq中指向到一个ip里,
vi /etc/hosts来添加ip,
192.168.9.199  mail.bingo.com

重启: pkill -9 dnsmasp  && /usr/local/sbin/dnsmasq -h
或者 service dnsmasq restart
对外提供dns
vi /etc/dnsmasq.conf

# Change this line if you want dns to get its upstream
servers from
# somewhere other that /etc/resolv.conf
#resolv-file=

用于设置上级dns服务器,用于向上级服务器转发查询请求。不设置,默认使用/etc/resolv.conf
如要解析外网的dns,必须设置此项用于向外转发dns请求。

# Include a another lot of configuration options.
#conf-file=/etc/dnsmasq.more.conf
conf-dir=/etc/dnsmasq.d
去掉这行的注释,用于包含配置文件目录

然后保存

在/etc/dnsmasq.d 新建文件配置文件,文件名随便,例如dns-hosts.conf
添加
address=/mail.bingo.com/192.168.9.199

重启dnsmasq,然后在其他的pc测试
添加范域名的配置

address=/.google.com/203.208.37.0
address=/www.youtube.com/203.208.37.0

还有一种添加方法,
vi /etc/dnsmasq.conf 
添加一行  addn-hosts=/etc/dnsmasq.hosts

然后在dnsmasq.hosts添加
192.168.9.253 www.bingo.com
然后重启dnsmasq,不过这样不支持范域名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: