rufengsuixing / luci-app-adguardhome

maybe the best AdGuardHome luci for openwrt
1.31k stars 487 forks source link

使用53端口替换dnsmasq时设备无法分配到 ipv4 DNS服务器地址,ipv6 DNS服务地址分配正常 #132

Open labarry opened 2 years ago

labarry commented 2 years ago

重定向 五DNS

labarry commented 2 years ago

openwrt系统 ![Uploading openwrt系统.PNG…]()

labarry commented 2 years ago

问题已经解决: 首页 5

Travel2Here commented 2 years ago

哥们,dnsmasq是干嘛的你都没搞懂?(里面有dns解析管理和DHCP功能)你都把它抛弃了 它当然不分配ip,你现在要做的是在ADG里面开启它的DHCP分配。

guagua0 commented 1 year ago

哥们,dnsmasq是干嘛的你都没搞懂?(里面有dns解析管理和DHCP功能)你都把它抛弃了 它当然不分配ip,你现在要做的是在ADG里面开启它的DHCP分配。

我就设置了一次 再也弄不会来了,现在dnsmasq里端口要设置成52 并开启dns转发才能用 不然所有ip都解析不了, 也是没有ipv4dns服务器 都把插件卸载了也不行

a757814283 commented 1 year ago

@guagua0 兄弟,我也是这个问题困扰了很久,一直以为是防火墙还是什么的问题,但感谢你提供了思路。

主要的问题确实是DHCP分配的时候不分配DNS服务器,这个是在Openwrt19的时候是没有的,不过后来好像改了,就是DHCP分配ip的时候可能是跟上端口了,然后大部分设备是不支持自定义dns端口的,也就不接受分配的dns。 或者是Dnsmasq发现改了DNS服务器端口了就干脆不分配DNS服务了。/个人的一点yy,欢迎指正

我的解决办法就是在dhcp服务器指定dns服务器,找到 LAN→DHCP服务器→高级设置→DHCP 选项→填入 6,网关地址 比如:6,192.168.1.1

ps:楼上那老哥好像确实把自己当那么回事了。

hbrtv commented 1 year ago

@guagua0 兄弟,我也是这个问题困扰了很久,一直以为是防火墙还是什么的问题,但感谢你提供了思路。

主要的问题确实是DHCP分配的时候不分配DNS服务器,这个是在Openwrt19的时候是没有的,不过后来好像改了,就是DHCP分配ip的时候可能是跟上端口了,然后大部分设备是不支持自定义dns端口的,也就不接受分配的dns。 或者是Dnsmasq发现改了DNS服务器端口了就干脆不分配DNS服务了。/个人的一点yy,欢迎指正

我的解决办法就是在dhcp服务器指定dns服务器,找到 LAN→DHCP服务器→高级设置→DHCP 选项→填入 6,网关地址 比如:6,192.168.1.1

ps:楼上那老哥好像确实把自己当那么回事了。

查了一晚上,这个是正解。

Diffused7245 commented 1 year ago

我去问chatgpt,它给出了一种新的解法,各位可以参考下,我也是正在测试。 使用文本编辑器打开/etc/dnsmasq.conf文件,增加:no-resolv 一行,然后重启dnsmasq,这样的话,设备还会获取dns地址,但是dns查询就会被拒绝,因为这一行就是关闭它的dns功能,只保留DHCP。 然后……我测试时候这个路由器上没装adg,这时应该把adg的监听端口换成53就没问题了……吧?

不行,还是用楼上的方法吧。除此之外还有一个点,在DHCP/DNS设置里把dnsmasq的端口设为0即可禁用dns功能,保留DHCP,然后改adg的配置文件,监听53即可(不能用uci上面的那个“XX重定向”改,否则他也会动dnsmasq的设置),但是DHCP不给分配dns的问题还是解决不了,只能用楼上那种方法。输入6,网关IP

谁英语好的话可以去openwrt官方源码下报告个虫(虽然可能也不算bug),就是要增加一个允许彻底关闭dnsmasq的dns服务,但是检测到53被其他应用绑定时,还可以正常分配dns的功能……要不然每个网络接口都要设置那个6,网关,如果能在dnsmasq上设置好就坠吼了。 或者用adg自带的dhcp/dns功能,不过那个集成度,还是不如原装的好。

Diffused7245 commented 1 year ago

还有就是编译出来的固件里面,启动项文件夹有两个adg,一个大写,一个小写,需要把小写的删掉,否则改luci没有用。不知道怎么在编译前就删除多余的那个。