高墙之外❤️

PassWall2 LuCI 页面打不开怎么办?按步骤定位并恢复

更新于 2026-11-13 · passwall.lol

简答:先不要排查节点或 DNS:PassWall2 LuCI 页面打不开,优先检查浏览器缓存、rpcd/uhttpd、安装包依赖和磁盘空间。通过 SSH 执行“清理 LuCI 缓存 → 重启 rpcd/uhttpd → 查看日志 → 核对包管理器与安装状态”,通常可以判断是菜单未注册、LuCI 后端报错,还是插件本身未完整安装。

定义:PassWall2 LuCI 页面打不开,是指 OpenWrt 后台无法正常显示 PassWall2 菜单或页面,包括菜单消失、点击后空白、HTTP 500、一直加载和页面无响应,不等同于节点或代理服务连接失败。

先看现象:不要把页面故障当成节点故障

本站是第三方使用指南站,不是 PassWall2 官方页面。PassWall2 是运行在 OpenWrt LuCI 中的管理界面应用;官方仓库的控制器代码显示,菜单入口依赖 /etc/config/passwall2、LuCI ACL 和 rpcd 注册状态。先确认页面本身能否打开,再决定是否检查核心、节点或 DNS。

最快处理:通过 SSH 登录路由器,先执行下面三组低风险命令:

rm -rf /tmp/luci-*
/etc/init.d/rpcd restart
/etc/init.d/uhttpd restart

命令执行后等待约 10 秒,退出 LuCI 再重新登录,并使用浏览器强制刷新。PassWall2 项目自身提供了重启 rpcd 的安装后处理命令;OpenWrt 的 LuCI 文档也将 uhttpd 作为 LuCI 页面服务进行重启处理。可查阅 PassWall2 项目仓库 与 OpenWrt LuCI essentials。

现象优先怀疑先做什么
Services 菜单没有 PassWall2包未安装完整、LuCI 缓存、配置中的隐藏选项或 ACL 未刷新清理 /tmp/luci-*,重启 rpcd,检查包状态
点击菜单后空白Lua 模块、语言包、依赖或浏览器缓存异常强制刷新,查看 logread 中的 Lua、rpcd、uhttpd 报错
显示 HTTP 500LuCI 控制器、UCI 配置或依赖加载失败先备份配置,再查看系统日志和 PassWall2 日志
页面一直加载rpcd/uhttpd 响应异常、后台进程阻塞或设备资源不足检查服务状态、内存、Overlay 空间和端口占用
页面能打开但代理不上网核心、节点、DNS、分流或防火墙问题不要继续修 LuCI,转到节点和 DNS 排查

按 5 步排查:从 LuCI 缓存到安装包状态

第 1 步:强制刷新并重新登录 LuCI

先在浏览器执行强制刷新,或使用无痕窗口访问路由器后台。退出 LuCI 后重新登录,不要只在当前空白页面反复点击。如果仍然打不开,再通过 SSH 执行:

rm -rf /tmp/luci-*
/etc/init.d/rpcd restart
/etc/init.d/uhttpd restart

如果菜单恢复,说明问题更接近 LuCI 缓存或 rpcd 注册状态;如果菜单仍不出现,继续第 2 步。

第 2 步:确认 OpenWrt 使用的是 opkg 还是 apk

不要直接套用网上的安装命令。PassWall2 项目当前说明同时列出 IPK 和 APK 两种包格式,并建议通过命令判断包管理器:

echo "== package manager =="
command -v opkg || true
opkg --version 2>/dev/null || true
command -v apk || true
apk --version 2>/dev/null || true

echo "== OpenWrt release =="
cat /etc/openwrt_release
ubus call system board

如果系统使用 opkg,对应安装包通常是 .ipk;如果系统使用 apk,对应安装包通常是 .apk。包格式、OpenWrt 分支、CPU 架构或依赖不匹配,都可能造成安装中断或页面菜单不完整。具体包名和校验值应以项目 Releases 页面为准,不要把其他 Fork 的构建包当作同一来源。

第 3 步:确认 luci-app-passwall2 是否真的安装

echo "== installed files =="
[ -d /usr/share/passwall2 ] && echo "passwall2 directory: OK" || echo "passwall2 directory: MISSING"
[ -f /etc/config/passwall2 ] && echo "config: OK" || echo "config: MISSING"

if command -v opkg >/dev/null 2>&1; then
    opkg status luci-app-passwall2 2>/dev/null | sed -n '1,20p'
elif command -v apk >/dev/null 2>&1; then
    apk info luci-app-passwall2 2>/dev/null | sed -n '1,20p'
fi

如果安装状态为空、目录缺失或配置文件不存在,不要先反复重启服务。先记录 OpenWrt 版本、架构、包格式和安装错误,再按照对应包管理器补齐依赖。PassWall2 仓库列出的依赖包括 Lua、LuCI 兼容组件、libuci-lua、curl、ip-full、resolveip 等,但实际依赖会随系统构建和功能选择变化,应以安装器输出为准。

第 4 步:检查磁盘、内存和权限

df -h
df -i
free -h
ls -ld /etc/config /usr/share/passwall2 /tmp/log
ps w | grep -E 'rpcd|uhttpd|passwall2' | grep -v grep

重点观察 /overlay 是否接近满容量,以及 /tmp 是否能够创建日志文件。空间不足时,安装包可能只写入部分文件,随后表现为菜单消失、页面空白或 HTTP 500。先删除确认无用的临时文件和旧安装包;不要直接删除 /etc/config/passwall2,除非已经完成备份。

第 5 步:重启服务并读取日志

/etc/init.d/rpcd restart
/etc/init.d/uhttpd restart

logread | grep -E 'rpcd|uhttpd|passwall2|lua|uci|permission|No space' | tail -n 200

[ -f /tmp/log/passwall2.log ] && tail -n 200 /tmp/log/passwall2.log
[ -f /tmp/log/passwall2_server.log ] && tail -n 200 /tmp/log/passwall2_server.log

PassWall2 官方仓库代码和说明中给出了主日志 /tmp/log/passwall2.log 与服务日志 /tmp/log/passwall2_server.log;日志目录由当前脚本在启动时创建。不同版本的辅助日志可能变化,因此更细的路径应以当前版本的 /usr/share/passwall2/app.sh 和实际目录为准。若日志文件不存在,先执行 ls -la /tmp/log /tmp,不要假设服务已经启动。

报错关键词对照:看到什么就做什么

下面是定位方向,不是对所有设备的绝对结论。单条报错应结合前后几行日志判断。

关键词或现象常见指向处理动作
module 'luci...' not found、Lua module missingLuCI 模块、兼容包或插件文件缺失确认包状态和文件是否存在;使用与 OpenWrt 分支、架构匹配的包重新安装,安装后重启 rpcd
uci: Parse error、UCI syntax error/etc/config/passwall2 或相关配置语法异常先备份文件,再用 uci show passwall2 检查;不要直接清空配置,必要时用已知可用备份恢复
Permission denied文件权限或只读文件系统异常检查 ls -l、挂载状态和磁盘空间;不要对整个系统递归执行高风险 chmod
No space left on deviceOverlay、临时目录或 inode 用尽用 df -h 和 df -i确认,删除不需要的安装包和临时文件后再重试
HTTP 500、页面空白LuCI 控制器执行失败、依赖缺失或配置解析失败同时查看 logread、/tmp/log/passwall2.log 和浏览器开发者工具中的响应状态
菜单消失但文件存在菜单被隐藏、ACL 或 LuCI 缓存未刷新删除 /tmp/luci-*,重启 rpcd;检查配置中是否设置了隐藏菜单的选项
Address already in use其他进程占用页面或代理监听端口用 ss -lntup 或 netstat -lntup定位进程;先确认端口用途,再调整配置或停止冲突服务
页面打开,但日志出现核心启动失败核心、节点、协议或运行权限问题这是代理运行故障,不是 LuCI 页面故障;转到 PassWall2 核心与节点日志排查

如果日志中只出现 DNS、节点超时或 TLS 握手信息,而菜单和设置页可以正常打开,说明 LuCI 基本可用,应停止重复重启 rpcd,把排查重点转向节点、DNS、分流或网络连接。

修复前先备份:避免重装丢失订阅和规则

在卸载或覆盖安装前,先通过 SSH 保存配置。订阅链接可能包含敏感信息,不要把备份内容、完整 URL 或日志直接发到公开论坛。

BACKUP_DIR="/root/passwall2-backup-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BACKUP_DIR"
for f in /etc/config/passwall2 /etc/config/uhttpd /etc/config/rpcd; do
    [ -f "$f" ] && cp -a "$f" "$BACKUP_DIR/"
done
[ -d /usr/share/passwall2 ] && tar -czf "$BACKUP_DIR/passwall2-files.tgz" /usr/share/passwall2 2>/dev/null
ls -lh "$BACKUP_DIR"

备份完成后,按风险从低到高处理:

  1. 清理浏览器缓存和 /tmp/luci-*,重启 rpcd、uhttpd。
  2. 确认 luci-app-passwall2、/etc/config/passwall2 和 /usr/share/passwall2 是否存在。
  3. 按照实际包管理器和 Release 页面重新安装匹配包,记录依赖报错。
  4. 如果仍然是 HTTP 500,再考虑用备份恢复配置或回滚到与当前 OpenWrt 分支匹配的版本。
  5. 只有在确认备份可读、安装包来源和架构无误后,才考虑卸载重装。

不要直接执行未知来源的一键修复脚本,也不要混用不同分支、不同架构或不同 Fork 的安装包。当前版本、包名和依赖变化应以项目仓库和 Release 页面为准;截至 2026-11-13,Release 页面显示的版本信息仅代表该页面当时内容,不能替代你设备的兼容性判断。

恢复页面后的闭环验证

页面恢复后,不要立即导入订阅或开启透明代理,按以下顺序验证:

  1. 重新登录 LuCI,确认 Services 菜单中出现 PassWall2。
  2. 打开 Basic Settings 或基本设置,确认页面不再空白、保存按钮可以响应。
  3. 打开 Other Settings 或日志入口,确认日志可以读取。
  4. 通过 SSH 查看 logread | grep passwall2,确认没有持续出现 Lua、UCI 或权限错误。
  5. 再检查核心状态和节点连接。若页面正常但代理不能用,转向节点、DNS、规则和防火墙排查。

如需继续定位日志,可以参考站内的 PassWall2 日志报错怎么看;如果问题实际是安装包或依赖不完整,可参考 PassWall2 安装失败排查。若希望建立分层排查顺序,可查看 网络排查方法。

常见问题

PassWall2 菜单不显示,但 SSH 能看到安装目录,怎么办?

先执行 rm -rf /tmp/luci-*、/etc/init.d/rpcd restart 和 /etc/init.d/uhttpd restart,然后重新登录。若仍不显示,检查 /etc/config/passwall2 是否存在,并查看日志中是否有 ACL、Lua 模块或控制器加载错误。PassWall2 控制器代码还包含隐藏菜单相关配置,若曾经设置过隐藏选项,也要检查该配置。

页面一直转圈,但 OpenWrt 后台其他菜单正常,是不是节点坏了?

不一定。页面一直加载优先检查 rpcd/uhttpd、Lua 报错、磁盘空间和浏览器缓存;节点故障通常发生在页面已经打开、核心启动或连接测试阶段。先用 logread | grep -E 'rpcd|uhttpd|passwall2|lua|uci'分开判断。

可以直接卸载 PassWall2 再安装吗?

不建议直接操作。先备份 /etc/config/passwall2,并保留订阅、节点和规则信息。卸载可能使现有配置无法直接恢复;重新安装还需要匹配 OpenWrt 分支、CPU 架构、包管理器和依赖。只有在备份可读且已经确认安装包来源后,再考虑卸载重装。

PassWall2 页面恢复了,但仍然无法联网,本文还适用吗?

本文只解决 LuCI 页面访问故障。页面能打开后,问题通常已经转为核心未启动、节点配置、DNS、分流、防火墙或网络连接问题,应查看 PassWall2 主日志和服务日志,并按具体报错继续排查。

安装时应该用 IPK 还是 APK?

先执行 opkg --version 和 apk --version确认系统提供的包管理器,再从 PassWall2 Release 页面选择对应格式。不要因为文件名相似就混装;如果设备同时显示两个命令,仍应结合 OpenWrt 版本和当前系统软件源判断,无法确认时应以设备发行版文档为准。

常见问题

PassWall2 菜单不显示,但 SSH 能看到安装目录,怎么办?

先清理 /tmp/luci-*,重启 rpcd 和 uhttpd,再重新登录 LuCI。如果仍不显示,检查 /etc/config/passwall2、ACL、Lua 模块和日志中的控制器加载错误。

页面一直转圈,是不是节点坏了?

不一定。页面一直加载优先检查 rpcd、uhttpd、Lua 报错、磁盘空间和浏览器缓存;只有页面可以打开后,才进入节点、核心和 DNS 排查。

可以直接卸载 PassWall2 再安装吗?

不建议。先备份 /etc/config/passwall2 以及相关配置,确认包管理器、OpenWrt 分支、CPU 架构和依赖匹配后,再考虑重装。

页面恢复后仍然无法联网怎么办?

本文只处理 LuCI 页面故障。页面能打开后,应查看 /tmp/log/passwall2.log 和 /tmp/log/passwall2_server.log,再针对核心、节点、DNS、规则或防火墙继续排查。

相关阅读

参考资料

  1. GitHub - Openwrt-Passwall/openwrt-passwall2
  2. PassWall2 LuCI 控制器源码
  3. PassWall2 app.sh 源码
  4. PassWall2 Releases
  5. OpenWrt LuCI essentials(openwrt.org)
  6. Accessing LuCI web interface securely(openwrt.org)