banner
约 1,800 字
6 分钟

Docker搭建Alist的代替者OpenList

-
-
无标签

摘要

AList 因维护者变更及疑似数据收集引发信任危机,社区推出了开源替代品 OpenList。OpenList 强调代码透明与安全,界面与 AList 相似,迁移成本低。本文介绍了其 Docker 部署方法、安全配置建议(如权限设置、密码管理)以及从 AList 平滑迁移的正确步骤,建议先并存验证再切换。

前言

在 NAS / 服务器上搭一个统一网盘入口,很多人第一反应是 AList——它能把阿里云盘、夸克、OneDrive、本地文件夹等五花八门的存储挂到一个界面下,确实好用。但最近 AList 的变动让不少老用户心里打鼓。

事情的起因是:知名开源网盘工具 AList 因代码频繁变动、社区架构大幅调整,引发了广泛关注与质疑。原项目维护者已不再活跃于社区,并公开表示项目已由企业接手运营;他同时承诺会继续协助审核代码安全、确保开源版稳定。

AList 变动公告

然而,部分社区成员通过分析提交记录发现,新维护方疑似在代码中引入了用户数据收集行为,这直接触动了大家对隐私与安全的敏感神经。于是,AList 的一部分核心用户与开发者迅速响应,发起了一个新的开源替代项目——OpenList

OpenList 诞生

先说清楚:这一次"信任危机"到底在争什么

花一分钟把这层讲透,比直接抄部署命令有价值——因为它决定了你该不该换、换了要注意什么。

网盘聚合工具是极其特殊的一类软件:它要同时持有你所有云盘账号的凭据(token),还要能读写你的文件。换句话说,它天生就是"钥匙串"的角色。所以它的社区对"代码里有没有多余的网络请求"这件事,敏感度远高于一般项目。

这次争议的几个核心事实:

争议点

情况

对用户的实际影响

维护者更替

原作者不再活跃,项目由企业接手

治理结构变了,但代码是否变差要看具体提交

疑似数据收集

社区成员从提交记录中提出质疑

若属实,理论上能拿到你的账号信息

私有 API

原项目部分 API 来源不透明、不可审计

你无法确认它请求了什么

作者表态

承诺协助审核代码、保证开源版稳定

属于善意信号,但不等于审计结论

需要说明的是:"疑似"就是疑似,这里不做定论。但作为使用者,判断逻辑很清楚——这类工具的信任基础是"代码可被审计",一旦这个基础被动摇,理性的做法就是换一个代码可查、社区活跃的实现,而不是等一个最终结论。

OpenList 的应对方式也正因为这点才显得有说服力(见下)。

OpenList 是什么?

OpenList 旨在成为 AList 的可信继任者,强调开放、透明与可持续发展。项目开源后迅速获得社区认可,短时间内就累积了超 5600 个 star。团队着手做了两件大事:

  1. 替换不透明的 API——把原项目里那些来源不明的私有 API 逐步换成开放、可审计的实现;

  2. 移除可能存在风险的外部链接——降低被劫持或收集数据的隐患。

为了确保代码安全,OpenList 开发者还对过去半年内的所有提交做了逐行审查。结果显示,除了原作者使用的私有 API 仍需替换外,尚未发现其他明显的安全隐患

代码审查

📌 背景小结:OpenList 的出现,既给原 AList 用户提供了一个可信的替代,也再次体现了开源社区面对项目不确定性时的凝聚力。如果你正被 AList 的隐私疑虑困扰,OpenList 是目前体验最接近、又更透明的接替选择。

界面与使用

好消息是——OpenList 的界面和使用几乎和 AList 完全一样,迁移成本极低,可以直接当成 AList 用,是目前最平滑的替代方案。

本项目 GitHub 地址:https://github.com/OpenListTeam/OpenList

OpenList 界面

部署方法

  1. 用 Docker Compose 安装,配置如下(基本照搬 AList 的习惯,端口、目录可自行调整):

YAML
services:
  openlist:  # 定义名为 openlist 的服务
    image: 'openlistteam/openlist:beta'  # beta 版,稳定可换 openlistteam/openlist:latest
    container_name: openlist  # 设置容器名称为 openlist
    volumes:
      - './openlist:/opt/openlist/data'  # 数据持久化到主机 ./openlist
    ports:
      - '5344:5244'  # 主机5344 -> 容器5244
    environment:
      - PUID=0  # 运行用户ID(root)
      - PGID=0  # 运行用户组ID(root)
      - UMASK=022  # 文件权限掩码
    restart: always  # 自动重启

说明:如果你是想从 AList 平滑迁移,把原 AList 的数据目录对应到这里的挂载即可,界面里的存储配置能直接沿用习惯。用 beta 尝鲜新功能、latest 求稳,按需选择。

  1. 保存后 docker compose up -d 启动:

启动容器
  1. 首次启动需要配置管理员密码。注意:不同版本的命令不一样,新版是加密存储的 hash,忘记密码无法直接反算,只能重新随机生成或手动设置:

设置管理员
  • 低于 v3.25.0 版本,进入 openlist 数据目录执行:

纯文本
./openlist admin
  • 高于 v3.25.0 版本:密码改为加密的 hash 存储,无法直接反算。忘记密码只能重新设置:

随机生成一个密码:

纯文本
./openlist admin random

手动设置一个密码(NEW_PASSWORD 换成你要设的密码):

纯文本
./openlist admin set NEW_PASSWORD

🔐 安全提醒:强烈建议用新版(3.25.0+)——它把密码加密存储而不是明文,更安全;设完密码后记到密码管理器里,别弄丢,丢了只能重置。

PUID / PGID / UMASK 是什么,为什么老出权限问题

这三个参数是 NAS 上跑容器时最常踩的坑之一,值得花两分钟讲明白。

容器看起来像一个独立的系统,但它挂载的目录是宿主机的目录。于是就有个问题:容器里的进程用哪个"身份"去读写这些文件?

  • PUID / PGID:指定容器内进程以哪个用户 ID / 用户组 ID 运行。上面写 0 表示 root(最高权限)。

  • UMASK:新建文件时的默认权限掩码022 的含义是"新建的文件权限是 755(777 减去 022)"——即自己可读写执行、别人只能读和执行

把它们设成 0 / 022 的效果是"不管什么文件都能读写,不会因为权限不足报错",这也是新手教程普遍这么写的原因。但它有两个副作用:

  1. 安全性降低:容器内的程序拿到了宿主机 root 权限的读写能力;

  2. 文件属主混乱:新建的文件属主可能变成 root,导致你在 NAS 网页端用普通账号删不掉这些文件

更稳的做法是:把 PUID / PGID 设成你自己 NAS 用户的 UID/GID(飞牛 / 群晖都能查到自己的 UID)。代价是首次可能要手动给已有目录放权:

纯文本
chown -R 1000:1000 ./openlist

这是"一次性麻烦"换"长期清爽"的取舍——如果你后面要把这个目录共享给别人用,建议一开始就设对

初始设置(几点必做)

  1. 登录后先修改默认用户名和密码,别留着默认值裸奔:

修改账号密码
  1. 建议**取消"签名所有"**选项(默认给所有下载链接签名,可能影响某些直链/反代场景,非必需别开):

取消签名所有
  1. 用户 → 编辑勾选权限:只给需要的账号开最小必要权限(比如访客只看、不下载大文件、不开上传),降低被滥用风险:

配置用户权限

挂哪些存储合适

OpenList 的价值在于"聚合",但并不是什么都往里挂就好。按安全性排一下:

存储类型

建议

原因

本地目录

✅ 放心挂

数据在自己盘上,不涉及第三方凭据

自建网盘(如 WebDAV)

✅ 放心挂

凭据可控

大厂云盘(阿里/夸克/OneDrive)

⚠️ 视情况

挂上去等于把账号 token 交给它

重要账号的主盘

❌ 不建议

一旦容器被入侵,影响面太大

一个实用原则:给 OpenList 挂"愿意承担风险的那部分存储"。用它来看剧、看文档没问题;把网银资料、身份证扫描件的目录挂进去,就没必要了。

从 AList 迁移的正确顺序

这一步做错容易把在用的服务搞挂,按下面来:

  1. 先并存,别替换。给 OpenList 换一个端口(比如 AList 用 5244,OpenList 用 5344),让两者同时在线;

  2. 复制数据目录(不是移动),让 OpenList 读一份副本;

  3. 逐个验证存储源能否正常列出、下载、上传;

  4. 观察一两天,确认稳定;

  5. 最后再停掉 AList、改端口,把地址切过来。

⚠️ 一定不要一上来就把 AList 的数据目录移走——万一新版读不了旧版的存储配置,你连回滚的余地都没有。

结尾与建议

OpenList 目前是 AList 社区最被看好的"接棒者":界面习惯无缝迁移、代码更透明、隐私顾虑更小。如果你的 AList 还挂着但心里不踏实,或正打算新搭一个统一网盘入口,可以直接从 OpenList 起步。

最后几点建议:

  • 从 AList 迁移前,先在另一台/另一端口跑通 OpenList 并配好一两个存储源,确认稳定再切换,避免影响在用的服务;

  • 存储源里如果挂了多个云盘,账号凭证和 token 是敏感信息,确认 OpenList 的数据目录有做好备份;

  • 保持关注项目更新,beta 版迭代快,遇到问题先看 GitHub issues。

说句题外的:OpenList 这类"把散落的存储/资源收拢到一个入口"的工具,本身就是 NAS 的价值所在。同类的还有这些方向可以配着用:

几个装下来,NAS 才真正从"硬盘"变成了"你自己的服务平台"。

END

相关文章

暂无相关文章