前言 你有没有遇到过这样的烦恼:手机里装着阿里云盘、百度网盘、夸克,甚至还有自己家里 NAS 上的文件,每次找个东西都要在几个 App 之间来回切换。
想搭个简单的分享页面,又觉得搞个专门的网盘系统太重了。
Openlist 就是为了解决这个“碎片化”问题而出现的。
它是一个轻量级的目录列表程序,可以把各种存储服务——不管是各大网盘,还是你服务器本地的硬盘——全都聚合到一个统一的 Web 界面里管理。
可能有人会问,市面上不是有个叫 AList 的工具吗?
Openlist 和它是什么关系?
简单来说,Openlist 是 AList 被商业公司收购后,由原社区用户创建的一个“分支”。
因为担心原项目可能存在的闭源风险和隐私问题,社区选择 fork 出来继续维护,主打的就是 完全开源透明 和 隐私安全优先 。
如果你比较在意数据自主权,这个背景值得了解一下。
这篇文章不讲太深的理论,我把自己在云服务器上从零开始搭的过程完整写了下来。
哪怕你之前没碰过几次命令行,跟着一步一步走,应该也能搭起来。
第一步:准备工作: 1.准备一台具备公网IP的云服务器(推荐使用雨云) 优惠注册地址:https://www.rainyun.com/sn_ 使用优惠码:sn 注: 使用优惠码注册后绑定微信可领取5折优惠券 服务器选购步骤: (1). 注册后,在"总览"页面找到"云服务器"入口,进入后点击"购买云服务器"
(2).根据需求选择合适的配置,建议选择国内的服务器,访问更快,选好后点击立即购买即可
(3).选好后进入控制台,使用SSH客户端远程连接服务器即可,SSH客户端建议选择FinalShell 2. 安装 Docker 这里我们用一个国内开发者维护的一键安装脚本,速度快,也不容易出错。
bash <(curl -f -s --connect-timeout 10 --retry 3 https://linuxmirrors.cn/docker.sh) --source mirrors.tencent.com/docker-ce --source-registry docker.1ms.run --protocol https --install-latested true
跑这个脚本的时候,中间可能会让你选“公网”还是“内网”,默认就是公网,直接按回车继续就行。
整个过程大概一两分钟,等屏幕上出现“安装成功”的提示就 ok 了。
装完后验证一下:
docker --version
如果输出了 Docker 的版本号,说明环境已经 ready。
第二步:用 Docker 跑起 Openlist 环境准备好之后,真正的部署其实就是一行命令的事。
但这里有个细节需要注意:Openlist 在 2025 年的 v4.1.1 版本里做了一个 重大变更 ,改变了权限处理的方式。
很多照着旧教程去装的人会遇到“权限不足”的问题。
我们这里直接用新版的方法。
1. 创建数据目录 先给 Openlist 准备一个窝,用来存放它的配置文件和数据库。
这个目录建议放在
/etc
下,比较符合 Linux 的习惯。
mkdir -p /etc/openlist
2. 拉取并启动容器 执行下面的命令。
不用怕,我把它拆开解释一下。
docker run -d \
--name openlist \
--user root \
-p 5244:5244 \
-v /etc/openlist:/opt/openlist/data \
--restart unless-stopped \
openlistteam/openlist:latest-lite
-d
:后台运行。
--name openlist
:给容器起个名叫 openlist。
--user root
: 这是关键 。
新版本的 Openlist 默认是用 UID 1001 的用户运行,但如果你映射的目录权限没调好,容器可能无法写入配置。
用
--user root
可以暂时绕开这个问题,保证首次启动成功。
我们后面再来收紧权限。
-p 5244:5244
:把服务器上的 5244 端口映射到容器的 5244 端口。
Openlist 默认跑在这个端口。
-v /etc/openlist:/opt/openlist/data
:把刚才创建的目录挂载到容器里,这样配置就不会因为容器删除而丢失。
--restart unless-stopped
:服务器重启或者容器异常退出时,Docker 会自动把它拉起来。
跑完之后,可以用
docker ps
看一下容器状态。
如果
STATUS
那一栏是
Up
开头,说明已经正常运行了。
3. 设置管理员密码 新版的 Openlist 默认用户名是
admin
,但初始密码需要我们自己手动设置一下。
docker exec openlist ./openlist admin set 你想要的密码
比如你想设成
123456
,就写成
docker exec openlist ./openlist admin set 123456
。
执行成功后,命令行会提示你用户名和密码已更新。
4. 防火墙放行端口 很多云服务器默认有防火墙(比如阿里云的“安全组规则”),记得去控制台里把 5244 端口 放开。
不然浏览器是访问不到的。
现在,打开浏览器,输入
http://你的服务器IP:5244
,应该就能看到 Openlist 的登录界面了。
用刚才设置的账号密码登录进去。
第三步:把网盘挂进去(以夸克为例) 登录进去之后,主页是空的,因为还没挂载任何存储。
我们来试一下挂载网盘。
1. 进入管理后台 在页面底部,有一个很小的“管理”按钮,点进去。
2. 添加存储 左边菜单栏找到“存储”,点“添加”。
这时候会看到一个长长的驱动列表,从阿里云、百度网盘到 WebDAV 都有。
3. 获取夸克网盘的 Cookie(以夸克为例) 以夸克网盘为例。
选择驱动为“夸克”。
挂载路径可以随便填一个,比如
quark
,这是你之后在主页看到的文件夹名字。
关键的一步是获取 Cookie: 用电脑浏览器打开 https://pan.quark.cn/ ,登录你的夸克账号。
登录后按 F12 打开开发者工具,找到“网络”(Network) 标签。
刷新页面,然后在网络请求列表里随便点一个请求,在右侧的“请求头”(Request Headers) 里找到
Cookie:
那一长串字符,复制下来。
另外还需要一个“根文件夹 ID”。
在夸克网盘网页版里,进入你想挂载的目录,地址栏里会有一串数字,那就是文件夹 ID。
如果想挂载整个网盘,填
0
就行。
把 Cookie 和文件夹 ID 填到配置页面里,拉到最下面点“添加”。
如果状态显示“工作”,就说明挂载成功了。
4. 开启 302 重定向(提升播放体验) 如果你打算用 Openlist 来看网盘里的视频,尤其是 4K 原画,有一个设置必须打开。
回到存储列表,点击刚才添加的网盘“编辑”,找到 **“使用转码地址”**或者 “Web 代理” 之类的开关(不同版本叫法可能略有差异,但作用类似)。
这个功能的原理是 302 重定向 。
当你在外网点击播放视频时,流量并不是经过你的云服务器中转,而是由 Openlist 返回一个网盘的官方直链,你的播放器直接去连接网盘服务器。
这样一来,视频播放的带宽 不消耗你云服务器的流量 ,也不受你内网穿透带宽的限制,只要你的网盘是 SVIP,就能流畅播放。
第四步:让 Openlist 随系统自动启动 这一点其实前面启动容器的时候已经用
--restart unless-stopped
参数搞定了。
不放心的话可以测试一下:重启服务器,或者手动把容器停掉
docker stop openlist
,过一会儿再看,容器应该会自动恢复运行。
补充一点:关于权限的后续处理 如果你是个完美主义者,不想让容器以 root 身份运行,可以在确认 Openlist 正常运行后,去修改权限。
先停掉容器:
docker stop openlist
修改映射目录的所有权:
chown -R 1001:1001 /etc/openlist
(新版 Openlist 容器内用户 UID 是 1001) 删掉旧容器:
docker rm openlist
去掉
--user root
参数,重新运行一次
docker run
命令。
不过对于个人使用场景,用 root 跑其实问题不大,省心第一。
写在后面 到这里,你的云服务器上应该已经跑起了一个功能完整的 Openlist。
回想一下整个过程,其实就是把各种网盘的“入口”统一到了一个地方。
以后再往朋友圈分享文件,给一个链接就行,不用管对方用的是百度还是阿里。
如果只是想临时共享,也不用费劲去登录各个网盘的网页版。
如果你想把 Openlist 暴露在公网上方便随时访问,除了直接用云服务器的公网 IP,也可以用 frp 或者 cpolar 这类内网穿透工具配个域名,顺便还能套上 HTTPS。
不过那就是另一个话题了,这里先不展开。
希望这篇笔记对你有用。
动手试试看吧。
