AdGuard Home 是一款全网广告拦截与反跟踪软件。在您将其安装完毕后,它将保护您所有家用设备,同时您不再需要安装任何客户端软件。随着物联网与连接设备的兴起,掌控您自己的整个网络环境变得越来越重要。
简单点说AdGuard Home就是一个公共DNS服务,如Google的公共DNS8.8.8.8
,和DNSmasq一样AdGuard Home是开源的,可以自行搭建安装后在客户端配置使用。xiaoz之前分享过一个自己写的项目PHPDNS ,PHPDNS在DNSmasq的基础上开发了WEB界面,功能比较简单,不过该项目不在维护,这里推荐功能更加强大的AdGuard Home
AdGuard Home使用Golang开发,编译好了各大平台的二进制文件,因此安装非常简单,这里以CentOS 7为例,其它系统可参考官方帮助文档。
AdGuard Home主要功能
- 拦截随处可见的广告
- 注重隐私保护
- 家庭保护模式
- 自定义过滤
CentOS 7 X64安装
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基本设置
设置中文
进入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
总结
AdGuard Home支持MacOS、Windows、Linux、树莓派等系统,提供二进制和docker安装方式,安装简单。AdGuard Home还提供了直观的统计系统,使用方便。如果您打算自建一个公共DNS,AdGuard Home值得一试。
其它
- AdGuard官网:https://adguard.com/
- AdGuardHome项目地址:https://github.com/AdguardTeam/AdGuardHome
在买了轻量服务器,域名是否需要备案?只开doh
国内服务商的服务器貌似不允许53端口和用于DNS(比如腾讯云)
求助,为什么装完并使用ip作为dns之后,国内国外的网都上不去了!求助。我是用国外vps搭建的。
检查下53端口是否监听,防火墙是否放行53端口。
请问怎么查是否监听?
你好,我ESXI虚拟安装了爱快(主路由),openwrt(旁路由),安装了centos7(内装ADGUARDHOME),我想问,我centos7的DNS该怎么设置?望指教,谢谢!
如果CentOS 7要使用AdGuard Home的DNS,只需要修改/etc/resolve.conf,填写nameserver 127.0.0.1即可。
非常感谢
搭建好了,个人电脑如何设置?是不是直接设置个人电脑的dns就可以了?另外我想把指定的网址解析到另外一个ip地址怎么操作,比如把百度解析到我的ip上面?
AdGuard Home 无法为这个网络接口自动配置它。请参阅如何手动完成此操作的说明
这个怎么办啊?无法读取服务器IP
请参阅如何手动完成此操作的说明,手动设置为0.0.0.0呗
– -设置了不能访问,发现有两道防火墙。。
然后请问有没有办法国内外分流啊。路由器有海外IP自动中专。用海外服务器搭建全解析到海外IP全中转了。用国内服务器又在墙内。
我也是这种状况,请问你怎么解决的。
提交命令时 ./AdGuardHome
出现 Segmentation fault
你啥系统啊,是X64吗?
是的
我的没有问题,是不是在Github下载的时候平台选错了?
是不是还需要什么依赖包
二进制的不需要依赖包,是Github下载的么?
github下载的0.10版
应该是这个:https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.102.0/AdGuardHome_linux_amd64.tar.gz 你不会下到ARM的去了吧?
不好意思,还真下错了
您好,请问下安装完之后过不久就无法访问管理界面是什么原因导致的,多次重装了
提示拒绝了我们的连接请求。
重装无法解决问题的,无法打开的时候看下进程是否还在运行,尝试重新启动(systemctl start AdGuardHome)看能否恢复正常,检查下服务器日志是否有内存不足的情况,导致进程被kill
Cenots7 执行显示 段错误
请贴出您的完整错误提示
博主,搭建好了DNS设置,规则添加,正常运行,本地DNS改成IP后无法上网呢?日志里也没显示
发现一个挺好的针对国内用户的adguardHome的过滤规则,系统自带的拦截能力太差。试了试github上的这个东西,还不错
https://github.com/privacy-protection-tools/anti-AD
感谢分享,空了我研究下。
好文章,赞一个。
这个还得自己买台vps吧?还是直接用onedns过滤广告来的方便了
QPS有点低,只有个位数
你是怎么测试出来的?
用queryperf 测试,解析www.163.com最高测试是10QPS,解析自定义规则(打算将这功能用于内网污染)QPS最高为8。
具体测试命令:
queryperf -d 163.txt -s 127.0.0.1
queryperf -d localtest.txt -s 127.0.0.1
这两个星期一直在找一款高性能有良好web支持的DNS,用于企业内部。目前知道的有powerdns、bind-dlz、namedmanager。不知道博主有没有推荐的。
其它的有unbound 和 DNSmasq,但具体性能没有测试过,不知道是否满足阁下要求。
unbound这个没了解过,dnsmasq的话有使用过,命中缓存QPS很好看,但是会出现缓存错乱(像hosts绑定的域名解析到公网IP)以及较多解析超时。
dnsmasq也有个不错的第三方webui:DNSmasqWeb
今天研究了下adguardhome的配置文件,发现有两个参数可以提升QPS(提升很大)。
ratelimit: 0 #DDoS保护,客户端每秒接收的数据包数。要禁用设置0,默认值为20.(之前测试主要是这功能影响的)
blocked_response_ttl: 60 #TTL缓存时间
那优化下参数效果应该还是可以的。
内网架设好了简直就是神器,功能就不多说了,好处多多。
怎么卸载呀?怎么卸载呀?怎么卸载呀?怎么卸载呀?怎么卸载呀?怎么卸载呀?怎么卸载呀?完了,服务器网站打不开了
那是因为你搭建的时候选择了使用80端口,和网站冲突了。直接停止服务,删除软件即可。
我暂停了,安装的文件在哪里,怎么卸载?
这是二进制的绿色文件啊,你下载到哪个目录的就删除哪个目录。
Linux系统安装的,就是输入那个代理就开始解压安装
试试
systemctl disable AdGuardHome
谢谢,我搜索那个下载的压缩包,搜索到了文件,然后我删除了整个文件夹
有没有视频教程?我搭建完成后,我的网站都打不开了,重启服务器都没有用
折腾折腾不小心吧广告折腾没了,哈哈
这个加内部解析是实时生效的吗?
是的,实时生效。
没玩过博客,认真学习学习!
用国外的vps还是被污染毕竟还是53端口
有什么解决办法吗?
感谢分享!!!
博主你好,请问你搭建后平均解析时间如何,我上游dns设置了阿里和腾讯,昨天一晚上平均解析时间从400多猛增到10000,明显感到慢了很多。是挂载在寝室树莓派上。
我这里后台统计的平均解析时间是45.55ms,可能树莓派性能太弱了。
谢谢,可能确实是这样,换了台vps,解析时间也在50ms以内了
是不是在VPS上搭建,然后本地DNS地址改成VPS的IP就行了。
感觉这个真的是比较实用的东西,适合Geek精神的我们去尝试,不过这个需要VPS的与家里网络的延迟不能太高吧。
如果有更多一些现成规则可以导入或者在线更新,那就完美了。
难道不是是在家庭服务器里搭建吗 [一脸懵逼]
不知道有现成docker镜像没 [🤭]
对对,也是,我给想叉了,哈哈哈
家庭服务器或者延迟低的VPS都可以搭建,并没有局限。
那是,昨晚装NAS docker里了,用着不是那么明显😅
找一台延迟低的VPS就行了,里面内置了一些广告过滤规则,也可以自己添加规则。