本文信息核实于2026-08-06
先说结论:红米路由器B19刷机后DNS无法修改,90%不是硬件故障,也不是固件bug,而是刷入的第三方固件(比如OpenWrt、Padavan)默认把LAN口的DNS服务给“劫持”了,或者防火墙规则残留导致你改的设置被覆盖。 别慌,别急着还原官方固件,今天这篇攻略就是来给你“解锁”的,全程实操,不整虚的。
一、为什么刷机后DNS就“锁死”了?核心原因就这三点
很多兄弟刷机后兴冲冲去后台改DNS,结果发现要么保存后自动跳回默认值,要么改了没效果,网页照样打不开。我折腾了三天,翻了N个论坛帖子,总结下来就三个原因:
-
固件默认开启了“DNS劫持”或“DNS转发”
像OpenWrt默认会启动dnsmasq,它接管了所有内网设备的DNS请求。你在“网络-DHCP/DNS”里改的DNS,其实只是改了下发客户端的地址,但dnsmasq自己还在用上游的114或者8.8.8.8。你要改的是dnsmasq的上游DNS,而不是DHCP里的那个。 -
防火墙规则残留
部分第三方固件在刷入时会写入一条iptables规则,强制把53端口流量转发到特定IP。你改再多次,流量还是被劫持到那个IP上。这个最坑,因为后台看不出来。 -
你改错了地方
很多朋友在“网络-接口-LAN”里改DNS,但实际生效的是“DHCP和DNS”里的设置。改错地方等于白改。
二、三步解锁,彻底解决DNS无法修改
下面我直接上干货,按步骤操作,每一步都是实测过的。
第一步:先检查是不是dnsmasq“作祟”
- 用SSH登录你的B19(不会SSH的,先去后台开启SSH,或者用系统自带的终端工具)。
-
输入命令查看当前dnsmasq配置:
bash cat /etc/config/dhcp找到config dnsmasq段,看里面的option server和option noresolv字段。如果noresolv是1,说明它完全忽略了上游DNS,只用自己配置的。 -
修改方法:编辑配置文件
bash vi /etc/config/dhcp把option noresolv改成0,然后在list server后面加上你想用的DNS,比如:list server '223.5.5.5' list server '119.29.29.29'保存后重启dnsmasq:bash /etc/init.d/dnsmasq restart
这一步能解决70%的问题。 如果还不行,看第二步。
第二步:干掉残留的防火墙规则
-
查看防火墙NAT规则:
bash iptables -t nat -L -n | grep 53如果看到类似REDIRECT或DNAT到某个IP的规则,就是它在劫持。 -
删除所有相关规则:
bash iptables -t nat -D PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53 iptables -t nat -D PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53如果不止一条,用iptables -t nat -F PREROUTING清空整个链(但注意别删了其他重要规则,建议先备份)。 -
保存规则(防止重启失效):
bash netfilter-persistent save或者写进/etc/firewall.user里,每次开机自动执行。
第三步:改对位置——这才是最终方案
如果你用的还是官方固件改的,或者上面两步都做了还是无效,那大概率是你改的地方不对。
正确操作路径:
- 进入后台 → “网络” → “DHCP/DNS” → 找到“服务器设置”或“DNS转发” → 在“上游DNS服务器”里填写你想要的DNS(比如223.5.5.5、8.8.8.8)。
- 同时去“网络” → “接口” → “LAN” → 把“使用自定义DNS服务器”勾上,填上同样的DNS。
- 关键一步: 在“DHCP/DNS”的“高级设置”里,把“禁止解析”和“忽略解析文件”都取消勾选。
然后再去电脑或手机刷新DNS缓存,测试一下。
三、关于DNS修改的5个高频问题(FAQ)
Q1:我改完DNS后,手机能连上网,但电脑不行,是为什么?
A:大概率是电脑的DNS缓存没刷新。用管理员命令行执行ipconfig /flushdns,或者重启电脑。如果还不行,检查电脑网卡的DNS是不是被手动设置了,改成自动获取。
Q2:刷机后DNS改不了,是不是固件本身有bug? A:2026年现在的第三方固件已经非常成熟,B19的适配版基本没有这种低级bug。99%是配置问题,按我上面的三步走,都能解决。
Q3:我用的官方固件,但DNS也改不了,怎么办? A:官方固件的DNS修改入口在“高级设置”→“网络设置”→“DHCP服务器”里,改完保存后要重启路由器。如果还是不行,可能是运营商劫持了DNS,建议开启路由器自带的“DNS加密”功能(DoH/DoT)。
Q4:改成8.8.8.8后,网速变慢了,是正常的吗?
A:正常,因为Google的DNS服务器在海外,延迟高。国内用户建议用223.5.5.5(阿里)或119.29.29.29(腾讯),速度更快,还支持防劫持。
Q5:刷机后DNS设置保存了,但重启又变回默认,怎么永久生效?
A:这是因为你修改的配置没有被写入持久化存储。在OpenWrt里,改完配置后要执行/etc/init.d/dnsmasq enable,并确保/etc/config/dhcp文件有写权限。另外,不要用后台的“保存&应用”按钮,用SSH改配置文件最稳妥。
四、实用建议:避免再踩坑的3个技巧
- 刷机前备份原厂配置
用B19自带的备份功能,或者SSH备份整个/etc目录。万一刷机后出问题,可以快速恢复,不用全网找原厂固件。
如果你需要的话,可以试试下面的免费工具:
-
优先选官方适配的稳定版固件
别追新,别用测试版。2026年了,B19的OpenWrt官方版已经非常稳定,去官网下载即可。第三方魔改版可能加了不少“私货”,包括DNS劫持。 -
学会用SSH,比后台省心一百倍
很多问题在后台界面看不出来,但SSH一眼就能看出问题。花半小时学几个常用命令,以后刷机、改配置、排查故障都轻松很多。
最后说一句,红米B19这台机器性价比确实高,刷机后性能更强,但玩机需谨慎。遇到问题别急着刷回官方,按这个攻略排查一遍,基本都能搞定。如果还不行,评论区留言,我看到都会回。祝大家上网飞快,DNS想改就改!