当前位置: 首页 > news >正文

把云盘都装进一个篮子里:Openlist 部署详细指南

前言

你有没有遇到过这样的烦恼:手机里装着阿里云盘、百度网盘、夸克,甚至还有自己家里 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-timeout10--retry3https://linuxmirrors.cn/docker.sh)--sourcemirrors.tencent.com/docker-ce --source-registry docker.1ms.run--protocolhttps --install-latestedtrue

跑这个脚本的时候,中间可能会让你选“公网”还是“内网”,默认就是公网,直接按回车继续就行。整个过程大概一两分钟,等屏幕上出现“安装成功”的提示就 ok 了。

装完后验证一下:

docker--version

如果输出了 Docker 的版本号,说明环境已经 ready。

第二步:用 Docker 跑起 Openlist

环境准备好之后,真正的部署其实就是一行命令的事。但这里有个细节需要注意:Openlist 在 2025 年的 v4.1.1 版本里做了一个重大变更,改变了权限处理的方式。很多照着旧教程去装的人会遇到“权限不足”的问题。我们这里直接用新版的方法。

1. 创建数据目录
先给 Openlist 准备一个窝,用来存放它的配置文件和数据库。这个目录建议放在/etc下,比较符合 Linux 的习惯。

mkdir-p/etc/openlist

2. 拉取并启动容器
执行下面的命令。不用怕,我把它拆开解释一下。

dockerrun-d\--nameopenlist\--userroot\-p5244:5244\-v/etc/openlist:/opt/openlist/data\--restartunless-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,但初始密码需要我们自己手动设置一下。

dockerexecopenlist ./openlist adminset你想要的密码

比如你想设成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 正常运行后,去修改权限。

  1. 先停掉容器:docker stop openlist
  2. 修改映射目录的所有权:chown -R 1001:1001 /etc/openlist(新版 Openlist 容器内用户 UID 是 1001)
  3. 删掉旧容器:docker rm openlist
  4. 去掉--user root参数,重新运行一次docker run命令。

不过对于个人使用场景,用 root 跑其实问题不大,省心第一。

写在后面

到这里,你的云服务器上应该已经跑起了一个功能完整的 Openlist。

回想一下整个过程,其实就是把各种网盘的“入口”统一到了一个地方。以后再往朋友圈分享文件,给一个链接就行,不用管对方用的是百度还是阿里。如果只是想临时共享,也不用费劲去登录各个网盘的网页版。

如果你想把 Openlist 暴露在公网上方便随时访问,除了直接用云服务器的公网 IP,也可以用 frp 或者 cpolar 这类内网穿透工具配个域名,顺便还能套上 HTTPS。不过那就是另一个话题了,这里先不展开。

希望这篇笔记对你有用。动手试试看吧。

http://www.jsqmd.com/news/487750/

相关文章:

  • Leather Dress Collection惊艳效果:皮革材质反光+褶皱细节的真实感渲染展示
  • SiameseAOE中文-base部署案例:离线环境无网部署ABSA服务全流程
  • UDOP-large实战代码:Gradio自定义组件扩展OCR语言选项(chi_sim+eng)
  • Qwen-Image-2512与软件测试:自动化测试用例生成
  • 弦音墨影技术解析:Qwen2.5-VL视觉定位模块与传统YOLO系列方法对比
  • Phi-3-vision-128k-instruct部署案例:边缘设备(Jetson Orin)轻量化适配尝试
  • 这才称得上是提示词工程!
  • 实测Whisper-large-v3镜像:99种语言识别效果如何?附完整部署流程
  • RMBG-2.0保姆级教程:日志监控+Prometheus指标采集配置
  • MedGemma-X在病理切片分析中的突破应用
  • Qwen3-VL-8B效果对比:Qwen3-VL-8B与Qwen2.5-VL在VQA任务准确率对比
  • Phi-3-mini-128k-instruct应用场景:为低代码平台注入智能表单生成与校验能力
  • nomic-embed-text-v2-moe应用实践:构建支持中英日韩的语义搜索前端
  • Gemma-3-12B-IT WebUI多租户教程:Nginx反向代理+JWT身份验证接入方案
  • SenseVoice-Small语音识别效果展示:高精度中文指令识别案例
  • 10 - 厂商特定测试
  • Nanbeige 4.1-3B WebUI部署教程:Docker容器化封装与镜像体积优化
  • Qwen3-Reranker-0.6B基础教程:1.2GB模型文件完整性校验(sha256)方法
  • Pi0 VLA模型入门指南:视觉特征提取层输出维度与注意力机制可视化
  • Phi-3-vision-128k-instruct部署案例:高校AI实验室多模态教学平台搭建
  • var/let/const:变量与作用域实战选型|JS 基础语法与数据操作篇
  • Python全栈入门到实战【基础篇 13】复合数据类型:字典(键值映射)与集合(无序去重)
  • Face3D.ai Pro原理剖析:UV展开算法如何保证工业标准兼容Blender/Maya/Unity
  • ANIMATEDIFF PRO提示词秘籍:三招写出让AI听懂的电影语言
  • mmdetection导出实例分割模型的onnx文件无法运行...如何解决?
  • 二叉树+排序
  • 计算机毕业设计springboot面向移动端的线上作业系统的设计与实现App 基于Spring Boot的移动端在线作业管理系统的设计与开发 面向移动设备的线上作业系统开发:基于Spring Boot
  • 【贪心】选择尽量多的不相交区间
  • 对象解构赋值:接口数据解包 10 个实战写法|JS 基础语法与数据操作篇
  • 蓝桥杯(排序)