因为我有进行广告屏蔽和路由扶墙的需求,但是学校里使用的是电信校园宽带需要Netkeeper拨号 所以无法直接使用现有大佬的固件,只能自己造轮子。
由于AdGuard Home和Openclash同时需要使用53端口进行dns服务,且会抢占路由本身自带的DNS服务器(dnsmasq);于是便需要手动设置使用别的端口,不然就是互相冲突 互相干扰的局面。
本设置方案所有DNS上游服务器都将使用阿里DNS( 223.5.5.5 & 223.6.6.6 )
方案1
阿里DNS -> AdGuard Home(5300) -> OpenClash(7874)转发至dnsmasq(53)
优点:性能占用极低,Openclash代理效果好;AdGuard Home 直接加速DNS查询
缺点:AdGuard Home 无法记录局域网内设备的查询信息(Openclash代理 只会显示127.0.0.1)
AdGuard Home 部分
前往 Openwrt -> 服务 -> AdGuard Home -> 手动设置,将dns项目下的port修改为5300(如上图,重启服务生效)
Openclash 部分
前往 Openwrt -> 服务 -> OpenClash -> 全局设置 -> DNS设置,本地DNS劫持 自定义上游DNS服务器 禁止Dnsmasq缓存DNS 都改为启用状态,允许IPV6类型DNS解析 网络环境及路由固件支持可开启,但可能会影响扶墙效果;在自定义上游DNS服务器中 填入服务器地址127.0.0.1端口5300(如上图,保存生效)
OpenClash会自动修改Openwrt设置,将本地dnsmasq的53端口转发至7874;可在 Openwrt -> 网络 -> DHCP/DNS 中查看到(如上图)
方案2
阿里DNS -> SmartDNS(6053) -> OpenClash(7874) -> AdGuard Home(5300)劫持dnsmasq(53)
优点:使用SmartDNS加速Openclash,AdGuard Home 可以正常记录局域网内设备的查询信息
缺点:可能会引发冲突(重启路由可解决),DNS查询速度相比方案1稍慢(可能套娃太多了吧),扶墙存在断流现象
SmartDNS部分
启用服务并在Upstream Servers中填入两个阿里DNS即可(如上图,保存生效);SmartDNS的默认使用端口便是6053无需修改,可以选择性关闭第二服务器
Openclash 部分
前往 Openwrt -> 服务 -> OpenClash -> 全局设置 -> DNS设置,本地DNS劫持 改为停用状态 自定义上游DNS服务器 和 禁止Dnsmasq缓存DNS 改为启用状态,允许IPV6类型DNS解析 网络环境及路由固件支持可开启,但可能会影响扶墙效果;在自定义上游DNS服务器中 填入服务器地址127.0.0.1端口6053(如上图,保存生效)
AdGuard Home 部分
参照方案1的AdGuard Home方法修改运行端口(可随意),在5300重定向修改为 使用53端口替换dnsmasq(可能会引发冲突) 或 重定向53端口到AdGuard Home(如上图,保存生效)
结语
我个人推荐使用方案1,AdGuard Home 能不能记录局域网内设备的查询信息 我觉得可有可无 能过滤广告就行,再说记录这个可能会侵犯他人隐私的吧。
网上所说的使用SmartDNS进行国内和国外的分流 我经过测试dnsmasq并没有辣么智能 最后ADH和Openclash变成了两个独立的服务(可能是我姿势不对),而且过于套娃 放弃
Tip:海豚湾机场是个废物,我感觉要跑路了,节点挂这么多可还行。
adguard home 要显示局域网IP可以把防火墙-自定义规则最后两条改成,
iptables -t nat -A PREROUTING -p udp –dport 53 -j REDIRECT –to-ports 5300
iptables -t nat -A PREROUTING -p tcp –dport 53 -j REDIRECT –to-ports 5300
加了没啥用。。。
Thank you!!1
方案1的ADH重定向选择什么呢
无,ADH无需进行DNS重定向 给个端口作为openclash的上游就可以了。
不是可有可无的问题,如果有设备列表就可以单独设备屏蔽广告,就比如说手机走去广告电脑不走这样子,好恨adguardhome没有像手机一样有代理功能走socks5这样设置就简单很多
事实上adguardhome通过dns去广告的效果聊胜于无,想要彻底去除广告还是得在手机上安装应用;我在路由器上使用 更多的是用作加速DNS查询。