
使用openclash的过程中,点击了更新openclash的版本,导致luci界面直接崩溃。
解决方案
这个报错基本就是 OpenClash 依赖的 LuCI 兼容模块没装上,所以 openclash.lua 在加载 luci.cbi.datatypes 时直接崩了。OpenClash 的相关 issue 里,维护者和用户反馈都是安装 luci-compat 后恢复正常。([GitHub][1])
先用 SSH 连进路由器执行:
opkg update
opkg install luci-compat
/etc/init.d/uhttpd restart很多情况下这样就能恢复 LuCI。这个问题常见于 OpenClash 包和当前 OpenWrt/LuCI 版本不完全匹配,或者源里缺少对应 LuCI 依赖。
基本上执行完上上面的命令就可以了。如果存在问题,参考如下:
如果 opkg install luci-compat 提示找不到包,再检查软件源里有没有 LuCI 源:
cat /etc/opkg/distfeeds.conf正常应该能看到类似 luci 的 feed;如果没有opkg update 后也装不到 luci-compat。一些排障总结也提到,缺少/错误的 distfeeds.conf 会导致这个模块缺失。([CSDN Blog][2])
如果你现在连 LuCI 都进不去,可以临时把 OpenClash 删掉,先救回 Web 页面:
opkg remove luci-app-openclash
/etc/init.d/uhttpd restart然后再重新安装与 你当前 OpenWrt 版本对应 的 OpenClash 包,再补装:
opkg update
opkg install luci-compat
opkg install /tmp/luci-app-openclash*.ipk你这份报错里路径是 /usr/lib/lua/luci/controller/openclash.lua:119,和 OpenClash 社区里同类报错属于同一种问题.