OpenWrt 后台密码正确却无法登录问题排查与修复
前言
回到家,突然发现路由器后台又无法登录,提示“无效的用户名/密码”

太频繁了,一周已经出现三次了……
想起最近 Nginx 爆出的漏洞,而且自己的路由又开了 ipv6 用于远程访问,顿时心头一紧
于是赶紧尝试登录 SSH ,能正常连接
周一出现问题这个的时候,重启解决了,但总是重启也不是办法,于是开始着手解决这个问题
故障排查
环境如下,设备是作为主路由接入了光猫
- 硬件型号:FriendlyElec NanoPi R2S
- 运行内存:1GB
- 设备环境:OpenWrt (Snapshot 24.10 分支),架构为 Nginx + uWSGI + LuCI,使用 Argon 主题。
- 关键组件:Docker, Lucky, Passwall, ddns-go, Homebox。
尝试了一下后台 ssh 登陆,登陆成功,排除了用户名和密码错误的情况,于是我做了如下排查:
怀疑浏览器缓存:清理浏览器缓存、无痕模式登陆、清 Cookie 后登录 -> 无效
怀疑存储空间满:
df -h检查/overlay-> 空间充足
| |

怀疑 luci 或者 Nginx 挂了:清理 luci 缓存、重启 Nginx -> 无效
关键线索:RPC 报错
没招了,问了一下谷歌 Gemini Ai,它建议我切换一下主题
切换回 BootStrap 后,刷新进入后台,出现了一个关键报错信息
RPC Error: RPC call to luci/getFeatures failed

原来是 RPC 服务出问题了,于是先重启 rpcd 服务
执行重启命令:
再次刷新后台,能够登录了!
但是页面一直在加载,无法操作……过两分钟又让我强制登录,且提示密码无效

回到后台,输入 top 命令查看,想看看有哪些服务在运行
一看吓一跳,Homebox 怎么在疯狂吃内存啊,还有 ddns-go 和 netdata
看来是 Homebox 这几个应用消耗了大量内存,导致系统的 rpcd、uwsgi 这些服务被干掉了概率比较大
于是先把 Homebox 、Netdata 这些服务停止
然后清理缓存、重新启动 Rpcd 、uwsgi 服务
刷新浏览器……OK,成功登录后台了~
登陆后,把主题改回来测试了两天,关闭了 homebox
顺便修改了 ddns-go 的检测时间,从 5 分钟修改到 1 小时
然后给 ddns-go 和 lucky 大吉也升级到了最新版本(用新 bug 打败旧 bug
截止目前,暂时没有问题
避坑总结
一开始以为是浏览器缓存的问题
看来还是 R2s 的机器性能不够,跑个科学,再加上 ddns 、docker……
日常运行内存占用得有 40 ~ 50%,docker 我也没启动
主题可能也会影响,所以性能不够的机器,还是用简单一些主题吧
由于 OpenWrt 的 Argon 主题在登录后会一次性拉取所有信息(温度、流量、DHCP 列表),如果系统此时很忙,
rpcd就会响应不过来。
最后根据 Gemini 的建议,调整了 tcp 一些网络参数(可选)
希望能帮到遇到相同问题的软路由网友,有遇到过相同问题的朋友欢迎评论区交流~
以后得上个运行内存大点的软路由,或者上 x86 了(