目录

679.AdGuard Home 搭建一个无广告DNS

上次说到 简书移动端Web劫持、跳转app问题

我个人原本是是在dnsmasq里面屏蔽ad.lflucky.com这个域名,刚好今天评论里有位读者说AdGuard Home也不错,所以就尝试了下,可视化界面配合起来用着也是很爽~

我是用的软路由 x86 的openwrt,刚好可以安装替换原本的dnsmasq,命令有些区别但是也不太大。

可以使用docker,在内网中用着超级爽~

AdGuard Home 是一款全网广告拦截与反跟踪软件。在您将其安装完毕后,它将保护您所有家用设备,同时您不再需要安装任何客户端软件。随着物联网与连接设备的兴起,掌控您自己的整个网络环境变得越来越重要。

项目主页: https://github.com/AdguardTeam/AdGuardHome https://img.qyi.io/images/2020/02/12/image11463df069d4bb82.png

 

AdGuard Home主要功能

  • 拦截随处可见的广告
  • 注重隐私保护
  • 家庭保护模式
  • 自定义过滤

CentOS 7 X64安装

AdGuard Home二进制文件位于https://github.com/AdguardTeam/AdGuardHome/releases 可根据自己的平台下载最新版本。

安装在openwrt的路由中倒也是可以,下载 AdGuardHome_linux_mips.tar.gz 这个包安装。在操作上都差不多,只是防火墙配置这一块需要自行去改一下。   CentOS 7安装方法如下:

#下载AdGuard Home
wget http://soft.xiaoz.org/linux/AdGuardHome_v0.93_linux_amd64.tar.gz
#解压
tar -zxvf AdGuardHome_v0.93_linux_amd64.tar.gz
#进入AdGuardHome目录
cd AdGuardHome
#放行3000端口(AdGuardHome初始化需要使用)
#firewalld放行3000端口
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload
#iptables放行3000端口
iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
service iptables save
#启动AdGuard Home
./AdGuardHome

运行AdGuardHome后,会提示打开http://IP:3000端口进行初始化。 web管理端口建议不要设置80端口,以免冲突~

设置上游DNS

AdGuard Home默认使用Cloudflare DNS作为上游服务器,如果您服务器在国内可能请求上游DNS延迟比较高,在后台 - 设定 - 可以设置为国内的DNS,如腾讯的119.29.29.29,但坏处是不支持DNS over TLS https://img.qyi.io/images/2020/02/12/image0d592726ca001a69.png

过滤器

在后台 - 过滤器,可以看到AdGuardHome内置了部分广告过滤规则,但在中国有点水土不服,如果要想更完美的实现广告屏蔽还需要自己添加规则。 推荐一个规则: https://anti-ad.win/ https://img.qyi.io/images/2020/02/12/imagecdae04841decab79.png

 

额外设置

为了方便管理,可以继续输入命令./AdGuardHome -s install安装为服务,然后就可以使用下面的命令来进行管理。

#启动
systemctl start AdGuardHome
#开机自启
systemctl enable AdGuardHome
#重启
systemctl restart AdGuardHome
#停止
systemctl stop AdGuardHome

DNS默认使用53(TCP/UDP)端口进行通信,因此别忘记放行53端口,否则DNS无法正常使用。 同时还有web管理端口

#firewalld放行53端口
firewall-cmd --zone=public --add-port=53/tcp --permanent
firewall-cmd --zone=public --add-port=53/udp --permanent
firewall-cmd --reload
#iptables放行53端口
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
service iptables save

拦截效果

https://img.qyi.io/images/2020/02/12/imagecb663bc5fe1a6e56.png

参考文章: https://www.xiaoz.me/archives/12318