想把阿里云盘、OneDrive、Google Drive、S3、WebDAV 或本地磁盘集中到一个网页入口,OpenList 是目前比较热门的自托管方案。它是 AList 的社区驱动分支,支持文件预览、直链、WebDAV、在线播放、跨存储复制和多种云存储驱动。
这类项目最容易被误解成“装好就等于拥有一个不限速网盘”。实际速度仍然取决于云盘接口、VPS 到存储的网络、账号权限、服务商限流和出站带宽。本文只讨论在你拥有授权的存储账号和文件上使用 OpenList,不涉及绕过平台权限、下载限制或分享规则。
OpenList 适合:
- 想把多个个人云盘或对象存储整合成一个文件目录;
- 想给家庭成员或小团队提供统一的文件浏览入口;
- 需要 WebDAV,让电脑、手机或媒体软件访问远程目录;
- 想把 VPS 本地磁盘、S3 和云盘放进同一个管理界面;
- 需要文件预览、直链、临时分享、视频在线播放或跨存储复制。
如果你需要多人协作、权限审计、版本历史和同步客户端,Nextcloud、Seafile 或商业云盘更合适。OpenList 更像一个“存储聚合与访问层”,不应该被当作唯一备份。
OpenList 主程序本身很轻,真正消耗资源的是缩略图、视频在线播放、文件打包、缓存、aria2 下载和多个并发访问。
| 场景 | 推荐配置 | 说明 |
|---|---|---|
| 个人浏览和直链 | 1 核 1GB、20GB SSD | 只挂载少量存储,不做转码 |
| 家庭使用和 WebDAV | 2 核 2GB、40GB NVMe | 留出缓存、日志和系统空间 |
| 多个存储、在线播放 | 2–4 核 4GB、60GB NVMe | 关注出站带宽和连接数 |
| 小团队或公共文件入口 | 4 核 8GB、100GB+ NVMe | 需要限流、监控、备份和审计 |
如果文件实际存放在云盘,VPS 本地盘不需要购买很大;如果要使用本地存储、缓存缩略图或运行离线下载,磁盘容量就要按数据增长计算。可以先参考 VPS 配置怎么选 和 VPS 需要对象存储吗。
| 方案 | 核心定位 | 更适合谁 | 主要取舍 |
|---|---|---|---|
| OpenList | 聚合多种云存储和本地存储 | 想统一访问多个存储的人 | 账号授权、上游限速和驱动差异需要自己处理 |
| AList | 原项目及其生态 | 已有旧配置或旧教程依赖 | 迁移前要确认项目维护和版本状态 |
| Cloudreve | 自建网盘和用户上传 | 需要用户、配额、上传和分享体系 | 部署与数据库维护成本更高 |
| Nextcloud | 协作、同步、权限和插件 | 团队文件协作 | 资源占用和升级复杂度更高 |
| Seafile | 高效文件同步 | 多设备同步和团队盘 | 需要独立规划数据库和存储 |
OpenList 的优势不是替代所有网盘,而是把已有存储放到一个统一入口。如果你需要把数据真正收回到自己的服务器,应该直接规划本地存储、对象存储和备份,而不是只挂载第三方云盘。
建议使用干净的 Ubuntu 22.04/24.04 LTS 或 Debian 12。先确认 Docker 可用:
docker version
docker compose version
创建数据目录并限制权限:
sudo mkdir -p /etc/openlist
sudo chmod 750 /etc/openlist
cd /opt
sudo mkdir -p openlist
sudo chown -R "$USER":"$USER" /opt/openlist
cd /opt/openlist
OpenList 的数据目录包含数据库、配置、用户、存储驱动和运行状态。不要把它放在临时目录,也不要把宿主机根目录直接挂载给容器。
官方 Compose 使用 openlistteam/openlist 镜像,并将宿主机 /etc/openlist 挂载到容器的 /opt/openlist/data。生产环境建议固定版本,先使用当前已确认的 v4.2.4:
services:
openlist:
image: openlistteam/openlist:v4.2.4
container_name: openlist
restart: unless-stopped
user: "0:0"
environment:
UMASK: "022"
TZ: Asia/Shanghai
volumes:
- /etc/openlist:/opt/openlist/data
ports:
- "127.0.0.1:5244:5244"
- "127.0.0.1:5245:5245"
保存为 /opt/openlist/compose.yaml 后启动:
cd /opt/openlist
docker compose up -d
docker compose ps
docker compose logs --tail=100 openlist
只把端口绑定到 127.0.0.1,是为了让公网只能通过反向代理访问。官方示例会直接映射 5244 和 5245,但公开 VPS 不建议把原始管理端口暴露到互联网。
查看初始信息时,先看容器日志:
docker logs openlist --tail=100
首次登录后立即修改管理员密码和安全入口,并保存恢复信息。不要把初始密码、Cookie 或存储令牌写进公开仓库。
准备一个独立域名,例如 drive.example.com,将 A 记录指向 VPS。可以使用 Caddy、Nginx 或 1Panel 作为反向代理。以 Caddy 为例:
drive.example.com {
reverse_proxy 127.0.0.1:5244
}
Caddy 会自动申请证书,但前提是 DNS、80/443、防火墙和服务器时间都正确。面板或代理配置完成后,测试:
curl -I https://drive.example.com
如果遇到证书申请失败、跳转循环或上游连接错误,可以参考 VPS 用 Caddy 反向代理完全指南 和 VPS 网站 HTTPS 跳转循环排查。
不要把 5244、5245、数据库端口和 Docker Socket 加到公网安全组。WebDAV 也应该走 HTTPS,不要使用明文 HTTP 传输账号密码。
管理员账号不要使用 admin、邮箱前缀或站点名称。密码使用随机长字符串,并为管理入口设置不容易被扫描的路径。安全入口不是唯一防护,仍要配合 HTTPS、登录限速和备份。
公开分享目录时,不要把整个根目录设为匿名可读。为敏感目录设置密码或登录要求,公开链接设置过期时间。测试时使用一个专门的非敏感目录,不要直接拿私人云盘根目录试验。
如果只有自己使用,可以在云防火墙或反向代理层限制管理路径的来源 IP。移动网络地址经常变化时,使用 WireGuard 或 Tailscale 进入内网,再访问 OpenList 管理页面,通常比把后台开放给所有 IPv4 更稳妥。
云盘刷新令牌、Cookie、客户端密钥和 S3 Secret 都属于高敏感凭据。不要在截图、日志、工单或 Git 仓库中暴露。更换账号密码、撤销授权或怀疑泄露时,要在上游平台撤销旧令牌并重新绑定。
OpenList 的存储配置通常包含驱动类型、挂载路径、排序、根目录和授权参数。建议按照以下顺序添加:
- 先添加一个空的本地测试目录;
- 确认列表、预览、下载和权限都正常;
- 再添加一个低风险的 S3 或 WebDAV 存储;
- 最后添加包含大量文件的云盘;
- 每添加一个驱动,都测试目录读取、单文件下载和大文件下载。
本地存储目录必须是容器可访问的路径。如果要挂载宿主机的 /srv/files,需要在 Compose 中增加明确的只读或读写挂载:
volumes:
- /etc/openlist:/opt/openlist/data
- /srv/files:/srv/files:ro
只读模式适合文件展示和下载。如果开放网页上传、删除、重命名或移动,就需要读写权限,但风险也更高。不要把 /、/home 或包含 SSH 密钥的目录挂进去。
S3 存储通常需要 Endpoint、Region、Bucket、Access Key、Secret Key 和根路径。建议为 OpenList 单独创建最小权限的 Access Key,只允许访问指定 Bucket 或前缀,不要复用拥有整个账号权限的主密钥。
对象存储适合图片、视频、备份和大文件,但要计算出站流量、请求次数和下载费用。OpenList 的网页入口不会消除上游对象存储的费用,直链被大量访问时尤其要设置限速和带宽告警。
WebDAV 适合连接已有的自托管文件服务或办公存储。配置时确认 HTTPS URL、用户名、密码和根路径,先测试小文件读写。WebDAV 的性能和锁机制取决于上游服务,不适合盲目当作高并发文件分发层。
这类驱动需要按照 OpenList 当前界面和官方文档完成授权。不同平台的登录、刷新令牌、家庭盘、共享盘和地区策略可能变化,不能把旧教程中的 Cookie 或参数直接复制到生产环境。
授权成功后先挂载一个测试目录,再验证:
- 文件列表是否完整;
- 中文文件名是否正常;
- 视频和图片预览是否可用;
- 直链是否能在未登录浏览器中按预期工作;
- 下载失败时日志是否泄露授权信息。
只挂载你本人或团队有权访问的账号和文件,遵守上游云盘服务条款和版权规则。
OpenList 可以作为 WebDAV 入口,让系统或应用访问远程目录。使用时注意:
- WebDAV 用户不要使用管理员账号;
- 为 WebDAV 单独设置低权限用户;
- 通过 HTTPS 访问;
- 对上传和删除操作设置更严格的目录权限;
- 先测试小文件,再测试大文件和断点续传;
- 不要把 WebDAV 端口直接暴露给公网扫描。
如果你想给 Jellyfin、播放器或下载工具提供媒体目录,优先让应用访问稳定的本地挂载或 S3,而不是把所有流量都经过 OpenList 代理。代理播放会消耗 VPS 出站带宽和连接数,晚高峰卡顿时要同时检查上游云盘、VPS 线路和公网出口。
OpenList 的访问层不等于 CDN。以下几类流量最容易让账单失控:
- 大量视频在线播放;
- 公开直链被搜索引擎或脚本抓取;
- 文件夹打包下载;
- 访客上传后反复转发;
- 多用户同时从同一个 VPS 下载。
建议按用途拆分:
- 公开图片和静态文件放对象存储并配 CDN;
- 私人文件通过登录或临时链接访问;
- 管理后台只允许固定来源;
- 对匿名下载设置限速和过期时间;
- 在 VPS 和对象存储侧同时配置流量告警。
可以使用 vnStat、云厂商流量图和 OpenList 日志交叉核对。站内的 VPS 流量监控和超额预警 适合继续排查带宽异常。
至少备份:
/etc/openlist数据目录;compose.yaml;- 反向代理配置;
- 域名和 DNS 记录;
- 存储驱动清单;
- 云盘授权恢复说明;
- 自定义主题、脚本和外部任务。
只备份 OpenList 数据目录,不等于备份云盘文件本身。OpenList 更多保存索引、配置和授权信息,真正的文件仍然在本地盘或上游云存储。
升级前先记录当前镜像:
docker inspect openlist --format '{{.Config.Image}}'
docker compose config > compose.before-upgrade.yaml
然后备份数据目录:
sudo tar -czf /opt/openlist-data-$(date +%F).tar.gz /etc/openlist
把归档复制到另一台机器或对象存储,再拉取新版本。不要直接在没有备份的情况下把 latest 重建到生产环境。升级后先检查登录、存储列表、直链、WebDAV 和下载,再决定是否保留新版本。
回滚时同时恢复三部分:
- 上一个可用镜像;
- 升级前的
/etc/openlist; - 反向代理和环境变量。
如果只回滚镜像而保留已经迁移的数据结构,可能出现启动成功但配置无法读取。正式升级前,先在临时 VPS 或测试目录演练一次。
检查容器状态、端口监听和本机请求:
docker compose ps
ss -lntp | rg '5244|5245'
curl -I http://127.0.0.1:5244
如果端口只绑定在本机,公网访问必须经过反向代理。检查代理上游是不是写成了容器内部地址、宿主机地址或错误端口。
先看 OpenList 日志和上游驱动错误,再测试一个小文件。常见原因包括令牌过期、根路径错误、上游返回 403、时间签名失效、对象存储权限不足或出站连接被限制。
先确认浏览器、上游驱动和文件实际编码,再检查版本和驱动日志。不要马上批量重命名原始文件,先在测试目录中复现并保留原始路径。
检查 HTTPS、用户名、密码、路径和反向代理是否支持 WebDAV 方法。部分代理默认只放行 GET/POST,可能阻止 PROPFIND、PUT、DELETE。先用桌面客户端连接一个测试目录,再开放生产目录。
分别测试上游云盘直链、VPS 到上游的速度、VPS 公网出口和客户端线路。不要只看 VPS CPU。对代理下载来说,带宽、连接数、上游限速和对象存储出站费用通常比 CPU 更关键。
OpenList 可以连接很多存储服务,但“技术上能挂载”不代表“可以随意公开分享”。上线前请确认:
- 账号和文件属于你本人或团队授权范围;
- 分享、在线播放和下载符合上游平台条款;
- 版权文件有合法使用权;
- 不利用服务绕过访问控制、下载限制或地区限制;
- 公开目录启用身份验证、过期链接和访问日志;
- 不把第三方账号 Cookie、令牌和隐私文件交给不可信的管理员。
如果目标是团队文件协作,优先使用带成员、审计、撤权和版本控制的系统,而不是把云盘根目录直接公开。
个人用户可以从 2 核 2GB、40GB NVMe VPS 开始,运行 OpenList、Caddy 和少量存储驱动。文件量变大、开始在线播放或多人访问后,再升级内存、磁盘和带宽,并把大文件迁移到对象存储。
推荐的上线顺序是:
- 固定 OpenList 版本并持久化
/etc/openlist; - 只监听本机端口;
- 用独立域名和 HTTPS 访问;
- 创建低权限用户和测试存储;
- 配置限速、流量告警和异地备份;
- 通过小文件、大文件、WebDAV 和恢复演练验证;
- 最后再开放团队或公开分享。
OpenList 最适合做“统一入口和访问层”。只要把授权、网络、备份和费用边界提前规划好,它可以让多云盘和自建存储变得更容易管理。
