解决iStoreOS更新后DNS错误问题

自僱 折腾笔记
AI 摘要 智能生成的文章概要
出现DNS错误通常是由于openClash或passwall等工具更改了dnsmasq的上游设置,导致其无法启动。更新iStoreOS固件后,dnsmasq使用了错误的DNS上游(127.0.0.1#7874),导致所有DNS查询超时。修复步骤包括先关闭openClash或passwall,恢复dnsmasq的手动DNS配置,删除错误的上游设置,并重启dnsmasq。完成后,检查dnsmasq的DNS上游是否正常,再重新启动openClash或passwall。
出现这种问题一般是openClash或者passwall等工具导致dnsmasq上游被更改,但是由于dns错误导致其openClash或者passwall等工具也无法启动。所以dnsmasq访问一个不存在的dns上游

起因

头脑发热直接更新了下iStoreOS固件,更新完成后开始出现DNS错误问题。

查看dnsmasq日志发现其使用了"127.0.0.1#7874",但是此时openClash或者passwall等工具已经down了,所以所有 DNS 查询 timeout

Tue Dec  2 10:34:29 2025 daemon.info dnsmasq[1]: using nameserver 127.0.0.1#7874

修复

修复主要分2步,先修复dnsmasq,使其恢复使用手动配置的DNS先关闭openClash或者passwall等工具,等dns恢复正常后在重新启动openClash或者passwall等工具即可

先关闭openClash或者passwall等工具

/etc/init.d/openclash stop

然后还原dnsmasq的DNS上游配置

# 允许 dnsmasq 使用系统 resolv.conf(WAN 的 DNS)
uci set dhcp.@dnsmasq[0].noresolv='0'

# 删掉所有手动指定的上游(包括 127.0.0.1#7874)
uci -q delete dhcp.@dnsmasq[0].server

提交配置并重启dnsmasq

uci commit dhcp
/etc/init.d/dnsmasq restart

检查当前dnsmasq使用的DNS上游,正常应该可以看到223.5.5.5和8.8.8.8等手动配置的DNS

Tue Dec  2 10:40:12 2025 daemon.info dnsmasq[1]: using nameserver 223.5.5.5#53
Tue Dec  2 10:40:12 2025 daemon.info dnsmasq[1]: using nameserver 8.8.8.8#53

此时DNS应该已经恢复正常

然后重新启动openClash或者passwall等工具即可

喵~