利用dnsmasq 屏蔽广告和跟踪

对运营商劫持DNS插入广告是不是觉得很厌烦,对各种网站上的广告感到厌烦,可以使用Dnsmasq搭建DNS服务器来屏蔽广告和不想看到的网站

#### 本文测试环境为Debian 以及Centos

一:替换系统源【Centos7跳过此步骤】

由于腾讯家的镜像源没有dnsmasq,所以我们将系统源换成科大的,运行以下命令进行替换

sudo sed -i ‘s/mirrors.tencentyun.com/mirrors.ustc.edu.cn/g’ /etc/apt/sources.list
sudo apt-get update

二:安装Dnsmasq

Debian执行

sudo apt-get install dnsmasq -y

Centos 执行

sudo yum install dnsmasq -y

运行上面命令后,dnsmasq就安装好了

三:配置Dnsmasq

编辑/etc/resolv.conf将里面的nameserver地址改成127.0.0.1
1_4KPBGC8J2EZBPKH.png

新增一个上游DNS地址配置

vi /etc/resolv.dnsmasq.conf

1_R7DFSWTQCQX69JV.png

我这里用的一个是国内腾讯家提供的一个是谷歌家的

nameserver 119.29.29.29
nameserver 8.8.8.8

接下来我们修改dnsmasq主要配置文件

vi /etc/dnsmasq.conf

下面是需要修改的内容

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 后参考下图
1_YX8MQXCB2E9WE9W.png

修改好后Dnsmasq就搭建好了

四:广告屏蔽

如果你想屏蔽广告啥的可以将下面文件

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

sudo service dnsmasq restart

搭建好后你可以在本地进行测试看看是否搭建成功

WIN+R 输入CMD运行之后输入

nslookup baidu.com 你搭建的DNS服务器地址

如果反馈出百度的IP即搭建成功

五:其他说明

查看服务状态

sudo service dnsmasq status

address自定义域名解析的IP地址,在此已360.com这个域名为例。注意dnsmasq是支持泛域名解析的,以下配置就是一个典型的泛域名解析实例。将360Ban了

address=/360.com/0.0.0.0

address也可以过滤某些网站,比如如果不想让客户端解析youk.com这个域名的话,我们这个把该域名解析到一台不存在的服务器上或者解析到127.0.0.1这个地址。如下:

address=/youk.com/127.0.0.1

为了防止DNS污染,我们使用bogus-nxdomain定义DNS解析的服务器。

bogus-nxdomain=211.98.70.226

我们可以用server定于某个域名使用的上游DNS

server=/4gml.com/114.114.114.114

当然你也可以通过修改hosts来禁止域名啥的

发表回复