一、版本及下载链接
- openwrt版本:ImmortalWrt 23.05.3
下载地址:Index of /releases/23.05.3/targets/
源码:https://github.com/immortalwrt/immortalwrt
- AdGuardHome核心:v0.107.54
下载地址:https://github.com/AdguardTeam/AdGuardHome/releases
- luci-app-adguardhome:1.8-11
下载地址:https://github.com/rufengsuixing/luci-app-adguardhome/releases
虽然很久未更新了,但是通过手动修改配置,还是可以使用。
二、安装AdGuardHome
- AdGuardHome,下载文件格式为压缩包,解压后整个文件夹拷贝到openwrt的/usr/bin目录下,并增加可执行权限:
chmod +x AdGuardHome
如果无法拷贝,可以安装openssh-sftp-server,即可上传下载文件:
- luci-app-adguardhome,下载后通过opk命令安装:
opkg install luci-app-adguardhome_1.8-11_all.ipk
三、配置AdGuardHome
1、创建一个空的AdGuardHome配置文件:/etc/AdGuardHome.yaml,否则启动时会提示文件不存在。
2、运行AdGuardHome,记住监听的端口3000
3、网页登录AdGuardHome自己的配置页面: http://ip:3000
8080会替换之前的3000端口,后续将通过8080登录网页。
4、配置dns
上游dns服务器可配置为:
https://doh.360.cn/dns-query
https://dns.alidns.com/dns-query
https://sm2.doh.pub/dns-query
并行请求
Bootstrap DNS 服务器配置为运营商的DNS,可在网上找到,比如湖南电信222.246.129.80,实在找不到,配置为家庭网关192.168.1.1(根据自己情况填写)或者114.114.114.114应该也可以。
点击应用保存
DNS缓存根据自己需要配置
四、配置openwrt
1、后台Ctrl+C停止AdGuardHome,手动创建的配置文件/etc/AdGuardHome.yaml可以删除了,上一步中的配置已经写入了新的配置文件/usr/bin/AdGuardHome/AdGuardHome.yaml。
2、openwrt中配置AdGuardHome的参数,修改端口为8080,修改配置文件为/usr/bin/AdGuardHome/AdGuardHome.yaml,
五、启用AdGuardHome
- 方式1、作为dnsmasq的上游服务器
dnsmasq收到dns请求后会转给AdGuardHome处理
正常情况AdGuardHome仪表盘就会收到DNS查询
如果没有,可以手动配置dnsmasq转发到AdGuardHome的5353端口
该方式存在一个问题,客户端这里所有的请求都显示为127.0.0.1,无法区分不同终端
因此产生方式2
- 方式2、使用53端口替换dnsmasq
客户端的DNS请求直接发给AdGardHome
可以看到dnsmasq和AdGardHome的监听端口发生了交换,由AdGardHome直接监听53端口,如果不成功,可以多试几次
注意:虽然端口已经成功交换,但是AdGardHome仪表盘还是没有DNS请求,此时需要关闭dnsmasq的重定向
经过以上配置,就可以正常区分不同客户端的请求
如果需要客户端不止显示ip,还需要显示客户端名称,则需要打开AdGardHome的DHCP。
备注:DNS的默认监听端口53,DHCP的默认监听端口67
最后,AdGardHome可以正常查询DNS后,就可以配置DNS黑名单了,网上参考资料很多,根据需要添加(不是越多越好,会减慢dns查询速度)
查询速度很快,平均0.1ms