前提
家里用的是小米路由AX3000T,开始在路由上安装了AdGuard Home,后来发现小米路由硬件不给力跑起来太吃力,后面在内网中的PVE中开了一个LXC安装AdGuard Home。但在设置DNS的时候就遇到问题了,小米路由对IPv6的支持弱,光猫在运营商获取方式是SLAAC,小米路由AX3000T好像未找到IPv6的RDNSS相关设置,这样的话,如果局域网中电脑获取的IPv6的DNS,若用流量走了IPv6那就不没法过AdGuard Home过滤了。
解决办法
进入小米路由SSH中,发现小米路由使用了dnsmasq做为dns和dhcp,我们只要给dnsmasq配置上游DNS为AdGuard Home不就解决了。
[局域网客户端]
→ [dnsmasq(运行在路由器,提供 DHCP + 本地缓存)]
→ [AdGuard Home(运行在 PVE LXC,IP: 192.168.1.100)作为上游 DNS]
操作步骤
1. 进入小米路由SSH
小米路由器 AX3000T 解锁 SSH,进入ssh
2. 编写开机启动脚本
因为小米路由中的dnsmasq配置全是临时文件,每次重启都会被重置,所以,要把配置做为开机脚本每次开机的时候写入到 /etc/dnsmasq.conf配置中,然后再重启dnsmasq服务就可以了。
小米路由开机启动 可以参考。然后在 /data目录创建脚本文件auto_dnsmasq.sh
#!/bin/sh
sleep 1
# 将上游DNS写入配置
echo "server=192.168.1.100" >> /etc/dnsmasq.conf
# 重启 dnsmasq
/etc/init.d/dnsmasq reload
将脚本赋执行权限
chmod +x /data/auto_dnsmasq.sh
最后在/data/startup_script.sh开机启动脚本中startup_script方法添加 /data/auto_dnsmasq.sh
startup_script() {
# Put your custom script here.
echo "Starting custom scripts..."
sleep 10
/data/auto_ssh.sh &
/data/auto_dnsmasq.sh &
}
查看效果
1. 重启小米路由
局域网所有客户端的DNS还是指向路由 192.168.1.1 和 fe80::xxx(路由的本地ipv6)
2. 查看AdGuard Home
在浏览器中随便输入一些网址,再回看AdGuard Home主页,局域网内客户端都是通过路由192.168.1.1访问的。

评论区