Mystery0の小站

Mystery0の小站

OpenWrt 设置AdGuardHome之后,DHCP没有dns服务器问题修复

问题表现

客户端连上WiFi之后无法上网,没有通告的DNS服务器,手动设置DNS服务器可以正常上网

情况说明

我的网络拓扑图

我没有使用旁路由的方案,整体上用了两层网络,一层是光猫拨号之后自动发出来的WiFI信息以及LAN,这部分用来预留给某些情况下需要不走代理访问的时候使用;另一层是通过R2s连接光猫的LAN扩展出来的网络,因为R2s没有WiFi能力,所以另外买了一个TP-Link用来发射无线信号,TP-Link通过有线中继拿到R2s的网络,然后扩展出去。

AdGuardHome的配置

其他部分和这个问题关系都不大,主要是怎么接入AdGuardHome的地方,也就是下图的位置:

为什么我这里直接使用53端口?

如果将AdGuardHome作为dnsmasq的上游,那么在AdGuardHome的统计日志中只能看到localhost,因为此时对于AdGuardHome来说,它的DNS查询请求客户端全部是dnsmasq,也就是本机,无法更加详细的统计各个设备的情况,因此我这里设置了直接使用53端口。

问题

当然,问题也是出在这个配置上,53端口给AdGuardHome之后,lan的DHCP就不会给DNS服务器的通告了,这也导致了问题的产生,如下所示:

解决方案

知道问题原因之后,就知道怎么去修复了

直接去接口-LAN部分寻找DNS服务器通告的相关设置,也就是下图的地方:

这个地方应该是给旁路由准备的,用于通告部署到旁路由上的DNS服务器地址,这里我们也可以直接用它来通告我们想要的DNS服务器,也就是192.168.2.1,根据填写说明,我们这里就填 `6,192.168.2.1` 就行了。

保存并应用之后,客户端就能拿到网关下发的DNS服务器了,如下图所示: