703 字
4 分钟
青龙面板忘记密码重置方法

前言#

在 iStoreOS 或 OpenWRT 上使用 Docker 部署青龙面板(QingLong)时,我们偶尔会遇到忘记管理员密码的情况。传统的教程通常会让你去修改 auth.json 或者执行 ql admin 命令。

然而,在青龙面板 2.10+ 以后的版本中,这些方法往往会失效,原因是:

  1. 存储架构变更:配置由 .json 文件转移到了 database.sqlite 数据库。

  2. 数据封装:用户名和密码被封装在数据库的 JSON 字符串字段中。

本文将记录如何在 iStoreOS 终端下,通过直接操作 SQLite 数据库成功重置密码。

环境背景#

  • 系统:iStoreOS (OpenWRT)

  • 容器名称Qinglong注意: 教程中使用的名称为 Qinglong,请根据你实际创建容器时定义的名称进行替换)

  • 宿主机挂载路径/root/data (对应容器内 /ql/data

操作步骤#

第一步:准备数据库工具#

iStoreOS 终端默认可能未安装 SQLite 命令行工具,我们需要先手动安装:

Bash

opkg update && opkg install sqlite3-cli

第二步:定位数据库文件#

你需要确认青龙面板的数据挂载点。在 iStoreOS 的常规配置中,数据库通常位于宿主机的以下路径: /root/data/db/database.sqlite

提示:你可以通过 ls -lh /root/data/db/database.sqlite 确认文件是否存在。

第三步:修改数据库重置密码#

新版青龙将账号信息存储在 Auths 表的 info 字段内。我们需要使用 SQL 的 json_set 函数来精准覆盖密码。

执行以下命令,将密码强制修改为 admin123

Bash

sqlite3 /root/data/db/database.sqlite "UPDATE Auths SET info = json_set(info, '$.password', 'admin123') WHERE type = 'authConfig';"

第四步:清除登录尝试锁定(可选)#

如果你因为多次尝试登录导致被系统暂时封禁,可以执行以下命令清理登录日志锁定:

Bash

sqlite3 /root/data/db/database.sqlite "DELETE FROM Auths WHERE type = 'loginLog';"

第五步:重启容器使配置生效#

修改数据库后,必须重启 Docker 容器以刷新程序缓存。

注意: 请确保将下方代码中的 Qinglong 修改为你实际的容器名。

Bash

docker restart Qinglong

核心要点总结#

维度旧版青龙 (v2.9 以前)新版青龙 (v2.10+)
存储方式auth.json 配置文件database.sqlite 数据库
重置方式删除文件或手动编辑使用 SQLite 命令修改 info 字段
关键路径/ql/config/auth.json/ql/data/db/database.sqlite

注意事项#

  1. 容器名称确认:本教程假定容器名为 Qinglong。如果你在安装时使用了默认的 whyour-qinglong1 或其他自定义名称,请在执行重启命令时手动修改。

  2. 备份建议:操作数据库前,建议先执行 cp 命令备份一份原始 database.sqlite

  3. 安全提醒:使用 admin123 成功登录后,请务必第一时间进入面板设置,修改为一个复杂的强密码。


感谢阅读!

青龙面板忘记密码重置方法
https://www.kccg.cn/posts/青龙面板忘记密码重置方法/
作者
KccG
发布于
2026-02-12
许可协议
CC BY-NC-SA 4.0