千古八方的博客

  • 程序开发
    • Android
    • Spring Boot
  • 数据私有化
    • NAS
    • 私有云
    • 内网穿透
    • 服务器
  • 留言
  • 搞事
进学
为学无间断,如流水行云,日进而不已也
  1. 首页
  2. NAS
  3. 正文

NAS上搭建DNS服务,统一屏蔽家庭网络上的所有广告

2020年3月1日 265点热度 0人点赞 0条评论

习惯把小说下载下来看,然后用小米自带的手机上的阅读器看,但是这个阅读器上竟然往本地txt里插入广告。

婶是真不能忍呀,果断换个阅读器。

同时发现家里的投影、手机上其他的软件里也有各种恶心的主动弹窗广告。

电脑端能够安装ADBlock 等插件屏蔽某些恶心人的网页广告,但是移动端以及应用里内嵌的广告,就没法处理了。

由于自建了NAS,想到恰好可以在NAS上搭建自己的DNS服务,来屏蔽广告的DNS请求。

这样只需修改路由的DNS,然后其他全部设备都能实现广告过滤。

另外由于DNS在内网,还能起到加速域名解析的作用,也能避免DNS投毒污染。

操作系统:ubuntu 20.04 LTS
DNS服务:bind 9

搭建步骤:

1.安装 bind9 服务
$ sudo apt install bind9
2. 修改bind9配置文件

修改 /etc/bind/named.conf.options 配置文件,增加或修改 forwarders 服务器地址,当本地没有记录时,向下一级服务器转发请求。

可参考我的配置文件:

options {
         directory "/var/cache/bind";
         version "nicai?";      # nmap 扫描是返回个乱填的版本号,防止探测到版本号

         forwarders {
                # 我的网络需要IPv6,所以配置了IPv6的DNS服务器地址,不需要的删除即可
                # 然后替换为性能好的、或者绿色的,总之能让你开心的DNS服务商地址
                2001:4860:4860::8888; 
                2001:4860:4860::8844;  
                8.8.8.8;
                8.8.4.4;
                2400:3200::1;
                223.6.6.6;
                2409:803c:2000:1::26;
                211.137.191.26;
         };

        listen-on { any; };
        listen-on-v6 { any; };
        dnssec-validation no;  # 是否开启验证
        recursion yes;  
        response-policy{zone "rpz";}; # 增加响应策略
        allow-query { any;};

};

修改 /etc/bind/named.conf.default-zones 文件,增加黑名单zone

zone "rpz"{
        type master;
        file "/etc/bind/db.rpz.blacklist";
        allow-update{none;};
        allow-transfer{none;};
        allow-query{none;};
};
3. 处理广告黑名单

创建mkADdomains.sh 文件,该脚本实现从anti-ad.net上自动下载广告的黑名单列表,然后生成bind使用的格式。脚本内容如下:

#!/bin/bash

curl https://anti-ad.net/domains.txt > domains.txt
title=head -n 1 domains.txt
if [ "$title" = "#TITLE=anti-AD" ]; then
        tail -n +5 domains.txt > d.txt
        rm domains.txt
        sed -i "s/$/&   IN CNAME @/g" d.txt
        sed -i "s/^\.//g" d.txt
        tail -n -13 /etc/bind/db.rpz.blacklist >> d.txt
        sort -u d.txt
        head -n 13 /etc/bind/db.rpz.blacklist > db.rpz.blacklist
        cat d.txt  >> db.rpz.blacklist
        rm d.txt
        echo "Create block domains done !"
else
        echo "Invalid data!"
fi
​4. 把生成的 db.rpz.blacklist 文件复制到 /etc/bind/db.rpz.blacklist 。
5. 重新加载配置文件或重启服务
# 重新加载配置文件
$ sudo rndc reload
server reload successful 

# 重启服务,如有必要
 sudo systemctl restart bind9 

 

测试:

查询某个广告域名,如果显示如下类似的结果【server can't find xxxx 】则表明过滤成功。    

$ nslookup zzhc.vnet.cn
Server:         192.168.1.53
Address:        192.168.1.53#53

** server can't find zzhc.vnet.cn: SERVFAIL

最后把光猫上的主DNS设置为这台电脑的IP,就可以实现家庭所有设备过滤广告了。

 

标签: NAS 服务器
最后更新:2022年5月27日

千古八方

物格而后知至,知至而后意诚,意诚而后心正

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

千古八方

物格而后知至,知至而后意诚,意诚而后心正

最新 热点 随机
最新 热点 随机
火狐下远离内容农场的方法! 中国城市生活成本查询 Debian11 系统备份与灾备盘制作 Debian logwatch 自定义配置文件,根据规则忽略掉某些日志内容 Ampache 5.0 报错 The root Ampache folder has changed to ./public socat 正反向传输文件
Android widget - 支持显示距离的雷达扫描控件 Ubuntu dpkg 清理 deinstall 标记的包 ubuntu 更改boot分区格式,重建引导 5分钟搞定废弃电脑改私有云 分布式存储Ceph的基本介绍 自建NAS,如何备份数据?
分类
  • Android
  • Linux
  • NAS
  • Spring Boot
  • Windows
  • 内网穿透
  • 回忆
  • 基于NEAT的瞎几把寻思算法笔记
  • 散篇
  • 普通人的致富之路在哪里
  • 服务器
  • 未分类
  • 私有云
标签聚合
Android系统编译 我开源的APP TrueNAS Spring Boot 散篇 NPS Windows Nextcloud 私有云 linux 内网穿透 ubuntu Android Utils 群晖NAS NAS 安全维护 服务器 Android Widgets
工具/友链

资源导航 – NAS、私有云存储
在线工具 – MD5、SHA、BASE64、URL编解码
在线工具 – 贷款计算器
在线工具 – IPv4/IPv6地址查询

千古八方 在 B站

千古八方 在 知乎

我的微信小程序:
微信小程序-城市生活成本查询
城市生活成本查询
库房物资流水记账簿
最近评论
Avatar photo
千古八方 发布于 1 个月前(12月28日) 重置命令是Nextcloud提供的,和哪个平台没关系。 如果报错,一般是路径或权限的问题导致的。 ...
Avatar photo
aron 发布于 1 个月前(12月24日) 博主你好 我的nextcloud管理员密码过期了 用了occ命令重置但是报错,能请教下是什么原因...
Avatar photo
千古八方 发布于 2 个月前(12月15日) 贝塞尔这个类在这里 https://gitee.com/aityu/AndroidUtils/blo...
Avatar photo
disco 发布于 2 个月前(12月05日) 有demo链接吗?贝塞尔曲线这个关键类没有写出来~
Avatar photo
HJM 发布于 3 个月前(10月20日) 必须点赞!很有效!

COPYRIGHT © 2022 千古八方的博客. ALL RIGHTS RESERVED.

京ICP备14020471号