Dnsmasq搭建无污染私有DNS服务器

默认连接网络后,都是使用的网络运行商的DNS,而这类DNS都是被劫持和污染的,另一方便还方便了运行商给你推送广告。当然也有一些公众的DNS可以给大家选用,不过哪里有使用自己的私有DNS服务器爽呢?所以我们可以用Dnsmasq来搭建一个自己的私人DNS。

dnsmasq

一、关于Dnsmasq

Dnsmasq提供DNS缓存和DHCP服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存DNS请求来提高对访问过的网址的连接速度。作为DHCP服务器,dnsmasq 可以用于为局域网电脑分配内网ip地址和提供路由。DNS和DHCP两个功能可以同时或分别单独实现。dnsmasq轻量且易配置,适用于个人用户或少于50台主机的网络。此外它还自带了一个 PXE 服务器。

以上介绍来自ArchWiki。

当然Dnsmasq还可以自定义DNS路由、转发DNS请求之类的,用于屏蔽广告。当然本文主要介绍Dnsmasq的部署方法,至于高级操作将会重新写一篇文章。

至于Dnsmasq的工作原理呢,我也不在写了,毕竟我也没有官方文档了解的那么清楚,搭建起来后自己在去理解工作原理吧!!!

二、Dnsmasq部署

Dnsmasq的部署,不需要很强大的硬件资源,一下是我部署Dnsmasq的机子。

部署环境

系统环境:Debian 8.0 ×64

内存大小:1GB

VPS构架:KVM

1.安装Dnsmasq,Linux的软件仓库已经含有Dnsmasq,所以。。。

#安装Dnsmasq

apt-get -y install dnsmasq

至于CentOS用户,将apt-get替换成yum即可。

2.由于要编辑Dnsmasq配置文件的操作较多,因而建议操作之前先备份默认的Dnsmasq的配置文件。

#备份配置文件

cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak

#编辑配置文件

vim /etc/dnsmasq.conf

3.配置上游DNS文件的路径。在Vim中搜索到resolv-file,将前面的注释符号#删除,并赋值为/etc/resolv.dnsmasq.conf。

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

resolv-file(点击放大)

4.解除strict-order的注释,Vim中搜索到strict-order,将注释符号#删除即可。

strict-order(点击放大)

5.解除no-hosts的注释,Vim中搜索到no-hosts,将注释符号#删除即可。

no-hosts(点击放大)

6.在文档的最后一行,添加监听地址,并设置监听地址为你vps的ip地址。

listen-address=103.xxx.xxx.xxx(your vps IP address)

listen-address(点击放大)

到此配置文件已经搞定了,复杂的东西都弄好了。

7.由于我们在第二步创建了上游DNS的配置文件路径,但是此时并没有配置文件。因此创建一个。

#创建配置文件

vim /etc/resolv.dnsmasq.conf

在Vim中添加nameserver值,我以Google DNS为例,没办法Google脑残粉,提示下Google DNS并不是最好的哦!!

nameserver 8.8.8.8

nameserver8.8.4.4

nameserver

(点击放大)

到此Dnsmasq的部署已经完毕了。

三、Dnsmasq使用测试

1.Dnsmasq的关闭、启动与重启。

#启动服务

/etc/init.d/dnsmasq start

#关闭服务

/etc/init.d/dnsmasq stop

#重启服务

/etc/init.d/dnsmasq restart

启动服务后,可以测试下Dnsmasq是否工作。

netstat -tunlp | grep 53

dnsmasq-service(点击放大)

2.为了防止vps宕机后,Dnsmasq依旧可以服务,所以请加入开机启动。

chkconfig dnsmasq

/etc/init.d/dnsmasq restart

3.测试以下Dnsmasq的效果。

第一次缓存,响应速度。

dig1(点击放大)

第二次缓存,响应速度。

dig2(点击放大)

我用我的博客测试的,由于我用Google DNS,加之vps也是在美国,所以速度效果不是很明显,但是也可以看见效果的提升。

四、Windows下配置DNS服务器

之前的操作都是在VPS上完成的操作,你弄了那么多,不在自己的设备上修改好DNS服务器,那么运行商该劫持你还是要劫持你,所以速度将DNS服务器改为你的私有DNS服务器吧。

windows-dns-setting(点击放大)

到设置DNS的地方,将首选DNS服务器修改为你的IP地址即可,至于备用DNS服务器可以随便使用一个public dns即可,当然比如果有2个私有的DNS服务器的话,那么都填写上吧!!!

五、总结

Dnsmasq的魅力不仅仅只有这么简单地东西,高级点的玩法可以用于屏蔽广告,个人觉得这个Dnsmasq还是值得折腾的,可以多看下官方文档,当然如果你嫌弃麻烦,完全可以使用那些Open Public DNS服务器即可。

6 thoughts on “Dnsmasq搭建无污染私有DNS服务器

  1. Google Chrome 67.0.3396.62 Google Chrome 67.0.3396.62 Windows 10 Windows 10

    解析速度快不?

  2. Google Chrome 66.0.3359.181 Google Chrome 66.0.3359.181 Windows 7 Windows 7

    这个是属于自己有国内服务器或者稳定的服务器来做DNS服务器?看来我的需求不是很大

  3. Sogou Explorer Sogou Explorer Windows 7 x64 Edition Windows 7 x64 Edition

    啥叫无污染呢

    • xzymoe
      Firefox 59.0 Firefox 59.0 Ubuntu x64 Ubuntu x64

      就是有些时候解析的域名ip不对等问题啊。

  4. lala
    Google Chrome 66.0.3359.181 Google Chrome 66.0.3359.181 Windows 10 x64 Edition Windows 10 x64 Edition

    域名被GFW污染了,用这办法可行吗?

    • xzymoe
      Firefox 59.0 Firefox 59.0 Ubuntu x64 Ubuntu x64

      gfw的不可以啊!

发表评论