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

免费软件   2014年09月08日 17:31  

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

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

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

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

选择好的本地DNS可以让我们上网更快更舒心,而对于网站,选择一个好的DNS域名解析服务也是十分重要:

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

一、Dnsmasq安装

1、执行以下命令在VPS上安装Dnsmasq:


yum install dnsmasq -y 
service dnsmasq start 

Dnsmasq安装

二、Dnsmasq配置

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

Dnsmasq配置文件

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

Dnsmasq去除注释号

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

Dnsmasq检查配置

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

Dnsmasq局域网IP

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

Dnsmasq添加NS服务器IP

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

三、Dnsmasq启动

1、执行以下命令设置Dnsmasq开机启动并启动Dnsmasq服务:


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

Dnsmasq启动服务

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

Dnsmasq检查是否正常启动

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

Dnsmasq查询时间

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

Dnsmasq缓存生效

四、Dnsmasq使用

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

Dnsmasq本地DNS服务器使用

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

Dnsmasq检查DNS劫持

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

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

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上等这些功能在我们的实际的生活中都是很有用的。

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

十个便宜VPS主机分享-VPS服务器建站和搭建应用服务体验
2014年六大免费VPS主机-免费VPS申请、使用和点评

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

在这个部落村庄里,已经有49 位神马家族成员冒出泡来在农场开始干活了
  • 9yu 1

    hot8bbs 回复:

    @9yu, 庆祝一下本人两个马甲都上辛苦吐槽榜了,并列冠亚军.看来大家灌水不够踊跃呀

    9yu 回复:

    @hot8bbs, 你谁

    这是农场的第 1 块农田,部落批准 [9yu] 在[2014-9-8 17:49]开垦完成.
  • ytf4425 15

    qianpai前排

    这是农场的第 2 块农田,部落批准 [ytf4425] 在[2014-9-8 17:54]开垦完成.
  • ytf4425 15

    打开略慢,终于前排一次了

    这是农场的第 3 块农田,部落批准 [ytf4425] 在[2014-9-8 17:54]开垦完成.
  • 插入前排

    这是农场的第 4 块农田,部落批准 [chenmo] 在[2014-9-8 18:37]开垦完成.
  • 包子

    这个嘛。。 :cool:

    这是农场的第 5 块农田,部落批准 [包子] 在[2014-9-8 21:42]开垦完成.
  • :sad: 百度的好像不能强制解析到指定的IP

    这是农场的第 6 块农田,部落批准 [妹纸] 在[2014-9-9 11:28]开垦完成.
  • 中秋节还更新文章啊。占了前排先。

    这是农场的第 7 块农田,部落批准 [北门放羊] 在[2014-9-9 11:50]开垦完成.
  • 前排,啊哈哈 萌嘟嘟来访哦~!

    这是农场的第 8 块农田,部落批准 [萌嘟嘟] 在[2014-9-9 12:44]开垦完成.
  • 这玩意在局域网和Squid一起用,绝配。。。
    另外,局域网的话,可以设置透明DNS,也就是说,无论设置DNS是什么,都会在网关出被重定向到指定DNS上。

    Mika 回复:

    @不认识, squid是什么程序?

    不认识 回复:

    @Mika, 反向d或者缓冲服务器

    这是农场的第 9 块农田,部落批准 [不认识] 在[2014-9-9 12:44]开垦完成.
  • freehao123估计被苏州电信劫持了

    这是农场的第 10 块农田,部落批准 [musk100] 在[2014-9-9 13:04]开垦完成.
  • 若水 16

    求测试网站速度。用阿里的dns不错,

    这是农场的第 11 块农田,部落批准 [若水] 在[2014-9-9 15:15]开垦完成.
  • Nin 3

    如果有openwrt的话,dnsmasq都可以省了,可以直接用ChinaDNS

    这是农场的第 12 块农田,部落批准 [Nin] 在[2014-9-9 17:37]开垦完成.
  • Kung 23

    这个可以玩一玩。。

    这是农场的第 13 块农田,部落批准 [Kung] 在[2014-9-9 20:19]开垦完成.
  • 包子

    @qi, 这个DNS到底好不好用?# public DNS 真心用不下去了

    这是农场的第 14 块农田,部落批准 [包子] 在[2014-9-10 11:53]开垦完成.
  • pxsky 3

    前来拜访,学习学习

    这是农场的第 15 块农田,部落批准 [pxsky] 在[2014-9-10 13:48]开垦完成.
  • 真不错

    这是农场的第 16 块农田,部落批准 [烟花易冷] 在[2014-9-10 17:33]开垦完成.
  • liqiu 6

    @qi,你貌似vps挺多的= =
    ps:freehao123.com现在在哪,西部数码的vps上?

    这是农场的第 17 块农田,部落批准 [liqiu] 在[2014-9-10 19:06]开垦完成.
  • 这个不错,可以尝试一下!

    这是农场的第 18 块农田,部落批准 [外星人源码论坛] 在[2014-9-11 02:15]开垦完成.
  • 一直都用114

    这是农场的第 19 块农田,部落批准 [逗比妹] 在[2014-9-13 13:18]开垦完成.
  • 若干年前在Windows 2000 server上弄过公共查询DNS,比电信提供的DNS好了不止一点,当时外资企业,电脑查一些海外网站经常打不开,要刷新好几次,就弄了这个,效果杠杠的。

    这是农场的第 20 块农田,部落批准 [老王] 在[2014-11-24 23:48]开垦完成.
  • dns劫持好解决……TCP劫持除了加密貌似没什么好解决的办法……我手机是联通的……现在只要是个流量大的网页就有联通搞的广告,太烦人了……

    这是农场的第 21 块农田,部落批准 [神情话意] 在[2014-12-2 13:59]开垦完成.
  • 阿里云可以?

    qi 回复:

    @Vans爱好者, 可以。

    这是农场的第 22 块农田,部落批准 [Vans爱好者] 在[2015-3-29 06:56]开垦完成.
  • maozai 2

    那么如果我想挂到VPS上,然后亲戚朋友网友什么的一起用,说白了就是不限制IP。。listen的应该怎么修改?

    qi 回复:

    @maozai, listen填写的IP和使用者没有关系,那个IP只是针对Dnsmasq 来查询DNS用的。别的用户可以直接将VPS的IP设置为本地的DNS即可。

    maozai 回复:

    @qi, 那第二点的第四条说了是啥意思。。设置:listen-address=127.0.0.1,表示这个 dnsmasq 本机自己使用有效。注意:如果你想让本机所在的局域网的其它电脑也能够使用上Dnsmasq,应该把本机的局域网IP加上去:listen-address=192.168.1.123,127.0.0.1 不就是限制连接这个DNS的ip吗。。

    qi 回复:

    @maozai, 表示在本机启动Dnsmasq服务,别的想要用的话直接填写它的IP就可以了,不会影响服务。

    这是农场的第 23 块农田,部落批准 [maozai] 在[2015-7-15 11:27]开垦完成.
  • 除了vps,局域网里面可以在win8的电脑上面搭建dns服务器吗

    qi 回复:

    @小小白, 这个好像没有,微软的IIS貌似只能用来建站,搭建DNS服务器好像不行。

    这是农场的第 24 块农田,部落批准 [小小白] 在[2015-7-16 18:14]开垦完成.
  • 卡不死

    楼主帮我搭建可好。我今天折腾了不行啊!

    这是农场的第 25 块农田,部落批准 [卡不死] 在[2015-10-1 23:21]开垦完成.
  • wz

    文章中有一点没看懂
    resolv.dnsmasq.conf中设置的是真正的Nameserver
    那在智能DNS加快解析速度又说 修改/etc/dnsmasq.conf
    server=/cn/114.114.114.114

    dnsmasq.conf和resolv.dnsmasq.conf都是dns设置,有什么区别?

    qi 回复:

    @wz, resolv.dnsmasq.conf是针对DNS服务器本身的,而/etc/dnsmasq.conf是用于DNS解析的。

    这是农场的第 26 块农田,部落批准 [wz] 在[2015-10-4 22:25]开垦完成.
  • 有没有办法把淘宝什么的自动引导到自己的广告联盟上,购物的时候自己返佣金省钱?

    我的思路大概是:DNS 解析到自己的服务器,然后通过自己服务器上的主机脚本来做判断?

    还有一个,qi哥能不能关注下怎么用这个做个自动脚本屏蔽视频和其他常见广告,而且越*。

    qi 回复:

    @Vans爱好者, 貌似可以通过这个DNS解析来实现,好多DNS劫持就是为了这个目的。我来研究一下看看。

    Vans爱好者 回复:

    @qi, 嗯,我觉得自己用,如果能加上广告代码省钱还是挺好。
    屏蔽视频和广告那些我用了adblock的规则,但是好像效果不明显。
    越wall这个我看了可以用反向d实现。
    期待你的新篇啦。

    qi 回复:

    @Vans爱好者, 我去研究研究。

    这是农场的第 27 块农田,部落批准 [Vans爱好者] 在[2016-1-3 05:16]开垦完成.
  • 总是显示超时是什么情况。
    DNS request timed out.
    timeout was 2 seconds.
    服务器: UnKnown
    Address: 153.92.xx.xx

    DNS request timed out.
    timeout was 2 seconds.
    DNS request timed out.
    timeout was 2 seconds.
    DNS request timed out.
    timeout was 2 seconds.
    DNS request timed out.
    timeout was 2 seconds.
    *** 请求 UnKnown 超时

    TrojanSun 回复:

    @TrojanSun, DNS搭建的服务器上curl没有问题。listen-address开不开都不行。

    qi 回复:

    @TrojanSun, 原因可能有网络不通 、防火*挡了 、其它程序监听端口,还有本地isp禁止了53端口了。

    TrojanSun 回复:

    @qi, 也有可能是生效时间的问题…我又冲新做了 完全按照您的步骤来的 我再试试吧!

    qi 回复:

    @TrojanSun, 嗯,再试试看。

    这是农场的第 28 块农田,部落批准 [TrojanSun] 在[2016-5-7 19:02]开垦完成.
  • xxx 2

    建议加下,如果想允许所有的用户使用你的DNS解析服务器,把listen-address去掉即可

    qi 回复:

    @xxx, 谢谢,已经更新了。

    这是农场的第 29 块农田,部落批准 [xxx] 在[2016-7-6 14:19]开垦完成.
  • lkainan 7

    失败了。。。 晚上再来搞

    这是农场的第 30 块农田,部落批准 [lkainan] 在[2016-8-12 18:00]开垦完成.
  • jsjytc

    请教一下,etc里找不到host文件怎么办?

    这是农场的第 31 块农田,部落批准 [jsjytc] 在[2016-9-24 15:41]开垦完成.
看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


(Ctrl + Enter提交)   

部落快速搜索栏

热门点击排行榜

网站导航栏

X
返回顶部