回到家,突然发现路由器后台又无法登录,提示“无效的用户名/密码”

太频繁了,一周已经出现三次了…… 想起最近 Nginx 爆出的漏洞,而且自己的路由又开了 ipv6 用于远程访问,顿时心头一紧 于是赶紧尝试登录 SSH ,能正常连接 周一出现问题这个的时候,重启解决了,但总是重启也不是办法,于是开始着手解决这个问题
环境如下,设备是作为主路由接入了光猫
尝试了一下后台 ssh 登陆,登陆成功,排除了用户名和密码错误的情况,于是我做了如下排查:
怀疑浏览器缓存:清理浏览器缓存、无痕模式登陆、清 Cookie 后登录 -> 无效
怀疑存储空间满:
df -h检查/overlay-> 空间充足
df -h

怀疑 luci 或者 Nginx 挂了:清理 luci 缓存、重启 Nginx -> 无效
# 清除 LuCI 的模块缓存
rm -rf /tmp/luci-modulecache/*
# 清除当前所有网页登录会话
rm -rf /tmp/luci-sessions/*
# 重启 uwsgi 服务
/etc/init.d/uwsgi restart
# 重启 Nginx
/etc/init.d/nginx restart
没招了,问了一下谷歌 Gemini Ai ,它建议我切换一下主题
# 修改配置文件将主题改回 bootstrap
uci set luci.main.mediaurlbase='/luci-static/bootstrap'
uci commit luci
/etc/init.d/uwsgi restart
切换回 BootStrap 后,刷新进入后台,出现了一个关键报错信息
RPC Error: RPC call to luci/getFeatures failed

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

回到后台,输入 top 命令查看,想看看有哪些服务在运行
一看吓一跳,Homebox 怎么在疯狂吃内存啊,还有 ddns-go 和 netdata

看来是 Homebox 这几个应用消耗了大量内存,导致系统的 rpcd 、uwsgi 这些服务被干掉了概率比较大
于是先把 Homebox 、Netdata 这些服务停止
# 停止 Netdata
/etc/init.d/netdata stop
# 停止 ddns-go (动态域名)
/etc/init.d/ddns-go stop
# 停止 homebox (宽带测试)
/etc/init.d/homebox stop
然后清理缓存、重新启动 Rpcd 、uwsgi 服务
# 再次清理缓存
rm -rf /tmp/luci-modulecache/*
rm -rf /tmp/luci-indexcache
# 重启核心服务
/etc/init.d/rpcd restart
/etc/init.d/uwsgi restart
刷新浏览器……OK ,成功登录后台了~ 登陆后,把主题改回来测试了两天,关闭了 homebox 顺便修改了 ddns-go 的检测时间,从 5 分钟修改到 1 小时 然后给 ddns-go 和 lucky 大吉也升级到了最新版本(用新 bug 打败旧 bug 截止目前,暂时没有问题
一开始以为是浏览器缓存的问题 看来还是 R2s 的机器性能不够,跑个科学,再加上 ddns 、docker…… 日常运行内存占用得有 40 ~ 50%,docker 我也没启动 主题可能也会影响,所以性能不够的机器,还是用简单一些主题吧
由于 OpenWrt 的 Argon 主题在登录后会一次性拉取所有信息(温度、流量、DHCP 列表),如果系统此时很忙,
rpcd就会响应不过来。
最后根据 Gemini 的建议,调整了 tcp 一些网络参数(可选)
# 再次执行网络优化 (防止两分钟后断连)
sysctl -w net.ipv4.tcp_tw_reuse=1
sysctl -w net.ipv4.tcp_fin_timeout=15
希望能帮到遇到相同问题的软路由网友,有遇到过相同问题的朋友欢迎评论区交流~ 以后得上个运行内存大点的软路由,或者上 x86 了(