AdGuard Home 是著名广告拦截器 AdGuard 里 DNS Server 的一个开源版本。它的作用是,在 DNS 的域名解析的过程里拦截网页上的广告。
这篇文章就来介绍下,在安装宝塔面板的服务器中设置AdGuard Home,用宝塔面板的一个好处就是可以可视化的放行端口,修改文件等。
1、功能
AdGuard Home的主要功能如下:
- 拦截广告
- 隐私保护
- 反跟踪保护
- 家庭保护
- 自定义过滤
2、简介
官网:https://adguard.com/zh_cn/adguard-home/overview.html
项目:https://github.com/AdguardTeam/AdGuardHome
版本:https://github.com/AdguardTeam/AdGuardHome/releases
3、准备
AdGuard Home支持MacOS、Windows、Linux、树莓派等系统,不过本文安装在ion的VPS上。建议选择国内延迟小的服务器安装,比如cn2 gia线路。
宝塔面板(这个不是必须的,但是方便修改端口和文件等)
服务器一台
系统:centos7,但是本文测试是在centos8上。
工具:AdGuard Home
4、安装
以CentOS 8为例,安装方法如下:
1)下载安装
AdGuard Home二进制文件位于https://github.com/AdguardTeam/AdGuardHome/releases 可根据自己的平台下载最新版本。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
端口进行初始化,如下截图。
浏览器打开http://IP:3000
,根据提示无脑的下一步即可。首次初始化会要求设置账号、密码(请牢记),下次登录需要使用。
AdGuardHome基本设置
注意:如果80端口被占用,你可以修改为其他端口
设置中文
进入AdGuardHome后台 – 网页右下方 – 可设置为繁体中文,感觉是机器翻译的,不太准确,将就用。
设置上游DNS
AdGuard Home默认使用Cloudflare DNS作为上游服务器,如果您服务器在国内可能请求上游DNS延迟比较高,在后台 – 设定 – 可以设置为国内的DNS,如腾讯的119.29.29.29
,但坏处是不支持DNS over TLS
过滤器
在后台 – 过滤器,可以看到AdGuardHome内置了部分广告过滤规则,但在中国有点水土不服,如果要想更完美的实现广告屏蔽还需要自己添加规则。
以下是过滤规则的一些说明,更多规则可以在AdGuardHome后台查看或参考官方帮助文档。
||example.org^
– 封锁example.org域及其他子域@@||example.org^
– 解除封锁example.org域及其他子域127.0.0.1 example.org
– 将example.org host指向到127.0.0.1(不包含其他子域)!
– 注释符号#
– 也是一个注释符号/REGEX/
– 正则表达式模式
额外设置
为了方便管理,可以继续输入命令./AdGuardHome -s install
安装为服务,然后就可以使用下面的命令来进行管理了。
#启动
systemctl start AdGuardHome
#开机自启
systemctl enable AdGuardHome
#重启
systemctl restart AdGuardHome
#停止
systemctl stop AdGuardHome
DNS默认使用53(TCP/UDP)端口进行通信,因此别忘记放行53端口,否则DNS无法正常使用。
#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