对运营商劫持DNS插入广告是不是觉得很厌烦,对各种网站上的广告感到厌烦,可以使用Dnsmasq搭建DNS服务器来屏蔽广告和不想看到的网站 #### 本文测试环境为Debian 以及Centos
一:替换系统源【Centos7跳过此步骤】
由于腾讯家的镜像源没有dnsmasq,所以我们将系统源换成科大的,运行以下命令进行替换
1 2
| sudo sed -i ‘s/mirrors.tencentyun.com/mirrors.ustc.edu.cn/g’ /etc/apt/sources.list sudo apt-get update
|
二:安装Dnsmasq
Debian执行
1
| sudo apt-get install dnsmasq -y
|
Centos 执行
1
| sudo yum install dnsmasq -y
|
运行上面命令后,dnsmasq就安装好了
三:配置Dnsmasq
编辑/etc/resolv.conf将里面的nameserver地址改成127.0.0.1
新增一个上游DNS地址配置
1
| vi /etc/resolv.dnsmasq.conf
|
我这里用的一个是国内腾讯家提供的一个是谷歌家的
1 2
| nameserver 119.29.29.29 nameserver 8.8.8.8
|
接下来我们修改dnsmasq主要配置文件
下面是需要修改的内容
1 2 3 4 5 6 7 8 9 10
| port=53 #DNS监听端口默认53 resolv-file=/etc/resolv.dnsmasq.conf #上游DNS配置文件 strict-order listen-address=10.139.133.25,127.0.0.1 #监听地址,10.139.133.25这个地址替换成ifconfig运行后eth0 里的inet 地址 conf-dir=/etc/dnsmasq.d #自动导入这个目录下的配置文件 conf-dir=/etc/dnsmasq.d/,*.conf
|
关于监听地址,运行ifconfig 后参考下图
修改好后Dnsmasq就搭建好了
四:广告屏蔽
如果你想屏蔽广告啥的可以将下面文件
1
| https://gitee.com/privacy-protection-tools/anti-ad/raw/master/anti-ad-for-dnsmasq.conf
|
将这个文件放到/etc/dnsmasq.d目录下 注:屏蔽广告来源https://github.com/privacy-protection-tools/anti-AD 替换后重启Dnsmasq
1
| sudo service dnsmasq restart
|
搭建好后你可以在本地进行测试看看是否搭建成功 WIN+R 输入CMD运行之后输入
1
| nslookup baidu.com 你搭建的DNS服务器地址
|
如果反馈出百度的IP即搭建成功
五:其他说明
查看服务状态
1
| sudo service dnsmasq status
|
address自定义域名解析的IP地址,在此已360.com这个域名为例。注意dnsmasq是支持泛域名解析的,以下配置就是一个典型的泛域名解析实例。将360Ban了
1
| address=/360.com/0.0.0.0
|
address也可以过滤某些网站,比如如果不想让客户端解析youk.com这个域名的话,我们这个把该域名解析到一台不存在的服务器上或者解析到127.0.0.1这个地址。如下:
1
| address=/youk.com/127.0.0.1
|
为了防止DNS污染,我们使用bogus-nxdomain定义DNS解析的服务器。
1
| bogus-nxdomain=211.98.70.226
|
我们可以用server定于某个域名使用的上游DNS
1
| server=/4gml.com/114.114.114.114
|
当然你也可以通过修改hosts来禁止域名啥的