对运营商劫持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
新增一个上游DNS地址配置
vi /etc/resolv.dnsmasq.conf
我这里用的一个是国内腾讯家提供的一个是谷歌家的
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 后参考下图
修改好后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来禁止域名啥的