1Panel 部署 OpenList 并挂载百度网盘(新手版)
环境:1Panel v2 + 应用商店 OpenList(Docker)+ OpenResty
文中域名统一写pan.example.com,端口沿用默认5244。
令牌获取地址:https://api.oplist.org/
先看全貌(30 秒)
1 | ① 装 OpenList → ② 生成管理员密码 → ③ 拿百度令牌 |
前 4 步做完,你就能在网页里点开自己百度网盘的文件了。第 5 步是把它变成"能对外访问的私人网盘",建议做,但可以晚点做。
两个新手必卡的点,先打个预防针:
- OpenList 没有默认密码。装完直接打开是登不进去的,密码得进容器终端生成。
- 百度网盘不是填账号密码。它走 OAuth2,必须去
api.oplist.org拿一串"刷新令牌",而且这串东西很长,少复制一个字符就挂不上。
① 装 OpenList
1Panel → 应用商店 → 搜 OpenList → 安装
参数这么填(字段名各版本略有差异,认含义就行):
| 字段 | 填什么 | 说明 |
|---|---|---|
| 名称 | openlist | 容器名会带这个 |
| 版本 | 最新稳定版 | 别选 beta |
| WebUI 端口 | 5244 | 网页访问端口,反向代理要指它 |
| S3 端口 | 5246 | 用不到,留默认即可 |
| 预装工具 | 全部(ffmpeg + aria2) | 不给 ffmpeg 就没有缩略图,视频列表全是灰块 |
| 时区 | Asia/Shanghai | 不然文件时间差 8 小时 |
| 端口外部访问 | 先勾上 | 待会儿要用 IP:5244 登录设置密码,配完再关 |
装完在 应用商店 → 已安装 里看到状态「已启动」就行。
为什么先勾外部访问?因为下一步要生成密码、登录后台、配置存储,这些都得能打开网页。等全部配好、反代也通了,再回来把它关掉——顺序反了容易把自己锁在门外。
② 生成管理员密码
OpenList 首次启动不会给你默认账号密码,得手动生成。
1Panel → 容器 → 找到 openlist 容器 → 右侧「终端」
进去后提示符应该是 root@xxxxx:/opt/openlist#,直接执行:
1 | ./openlist admin random |
它会输出一行类似:
1 | Successfully reset admin password to: Xk9mP2vQ |
这串密码只显示这一次,立刻复制下来。 忘了就再执行一遍,会重新生成。
想自己指定密码,用这条(把 你的密码 换掉):
1 | ./openlist admin set 你的密码 |
密码别用 admin。OpenList 会直接暴露在公网,默认弱密码几小时内就会被扫到。然后浏览器打开 http://服务器IP:5244,账号 admin + 刚才那串密码登录。
③ 拿百度网盘的刷新令牌
这一步是整篇最容易出错的地方,慢一点做。
打开 https://api.oplist.org/,然后按顺序:
- 网盘名称 下拉选「百度网盘 (OAuth2) 验证登录」
- 勾上「使用 OpenList 提供的参数」——勾了就不用自己申请百度开发者应用
- 点「获取 Token」
- 页面跳到百度登录页,登录你的百度账号 → 点「授权」
自动跳回工具页面,出现两栏:
- 访问令牌(Access Token)
- 刷新令牌(Refresh Token) ← 你只需要这个
- 完整复制「刷新令牌」,先粘到记事本里备用
几个必须注意的:
- 刷新令牌是一长串几百个字符,中间可能有换行,复制时别丢字符。粘到记事本里检查一下开头结尾是否完整。
- 这个令牌相当于你百度账号的长期钥匙,别发群里、别截图发出来。
- 有效期通常几个月。哪天突然提示存储异常、目录打不开,八成就是它过期了,回来重新取一次即可。
④ 添加百度网盘存储
回到 OpenList 页面 → 底部「管理」→ 左侧「存储」→ 右上角「添加」。
按这张表填:
| 字段 | 填什么 |
|---|---|
| 驱动 | 百度网盘 |
| 挂载路径 | /百度网盘 |
| 根文件夹路径 | 留空(= 整个网盘根目录) |
| 使用在线 API | 打开(关键) |
| API 地址 | https://api.oplist.org/baiduyun/renewapi |
| 客户端 ID | 留空 |
| 客户端密钥 | 留空 |
| 刷新令牌 | 粘贴 ③ 拿到的那串 |
| 自定义破解 UA | netdisk |
| 上传 API | https://d.pcs.baidu.com |
| 上传线程 | 3(范围 1~32,别贪多) |
| 缓存过期时间 | 30(分钟) |
点「添加」保存。
看状态列:
- 显示「正常」→ 成了,回首页就能看到
/百度网盘文件夹 - 显示报错 → 翻附录 F 对照
「使用在线 API」这个开关是重点。打开后,令牌刷新由 OpenList 官方服务代劳,你不用去百度开放平台申请 client_id,也不用填密钥。老版本界面里没有这个开关的,就得填客户端 ID/密钥,那套流程麻烦得多——先把 OpenList 升到最新版。
验证一下
回首页 → 进 /百度网盘 → 能看到你在百度网盘里的文件夹 → 点开一个视频或图片能在线预览 → 点某个文件「下载」能开始下载。
三个都通了,就算真正挂上了。
⑤ 挂域名 + 关掉裸端口(建议做)
到这一步你已经能用了,但地址是 http://IP:5244,没有加密、端口裸奔。花 5 分钟收个尾:
建站:1Panel → 网站 → 创建网站 → 「反向代理」
| 字段 | 值 |
|---|---|
| 域名 | pan.example.com |
| 代理地址 | http://127.0.0.1:5244 |
开 HTTPS:网站 → 你的站点 → HTTPS → 打开开关 → 选证书(没有就 Let's Encrypt)→ 打开强制 HTTPS。
调大上传限制:反向代理默认限制 1MB,传大文件会直接 413。进 网站 → 站点 → 配置文件,在代理那段加上:
1 | client_max_body_size 0; |
改完两步都要跑:
1 | docker exec 1Panel-openresty-xxxx openresty -t |
-t只查语法,-s reload才生效。只跑前者是最常见的"改了没变化"。
最后关掉裸端口:
1Panel → 应用商店 → 已安装 → OpenList → 参数 → 取消「端口外部访问」→ 确认(容器会重建,配置不丢)。
再去云厂商安全组删掉 5244 入方向规则。
反代走的是127.0.0.1,关掉端口不影响域名访问——安全组只管外网进来的流量,本机回环不走它。关完用https://pan.example.com验证一遍,别关完就关浏览器。
附录 A:关于"满速下载",说实话
网上很多标题写「挂上就满速」「绕过百度限速」,这个说法别全信。
OpenList 走的是百度官方开放 API,拿到的是你账号本来该有的速度:
| 你的账号 | 实际表现 |
|---|---|
| 普通用户 | 该限还是限,大概几百 KB/s 到 1~2 MB/s |
| 会员 | 能跑满带宽 |
它真正解决的是「不用装客户端、多网盘一个界面、能挂 WebDAV 给播放器用」,而不是破解限速。冲着"免费满速"来会失望。
附录 B:风控,别拿主号试
百度对第三方调用有风控。以下行为容易触发限速、临时封禁:
- 短时间内批量下载大量文件
- 频繁刷新目录(反复点进点出)
- 同一 IP 下挂多个账号
- 刚授权就拉全盘
建议用小号。真要挂主号,就"用完即走":需要什么下载什么,别把它当成日常网盘客户端天天刷。
附录 C:再加几个网盘
同一套流程,换个驱动就行:
| 网盘 | 要什么 | 备注 |
|---|---|---|
| 阿里云盘 | 刷新令牌 | 同样在 api.oplist.org 取,流程几乎一样 |
| 夸克网盘 | Cookie | 网页端 F12 → Network → 复制请求头 Cookie |
| 115 网盘 | Cookie 或二维码令牌 | 网页端 F12 复制 |
| 123 网盘 | 账号密码或令牌 | 相对简单 |
| 本机存储 | 容器内路径 | 把服务器目录也挂进来,统一管理 |
一个存储一个「挂载路径」,路径不能重复。
附录 D:挂成电脑上的网盘(WebDAV)
OpenList 自带 WebDAV,挂载后能用资源管理器 / PotPlayer / infuse 直接播。
- 管理 → 用户 → 编辑
admin→ 勾上「WebDAV 读取」和「WebDAV 管理」→ 保存 - 访问地址:
https://pan.example.com/dav - 账号密码就是 OpenList 的
Windows 映射网络驱动器时地址填 https://pan.example.com/dav,会提示输入账号密码。
附录 E:备份
OpenList 的所有配置(存储列表、令牌、用户)都在容器数据目录里:
1 | /opt/1panel/apps/openlist/openlist/data |
1Panel → 计划任务 建一条:每周打包这个目录,保留 4 份。
这个目录里有你的百度刷新令牌,备份到网盘时注意别传到公开位置。
附录 F:报错对照表
| 现象 | 原因 | 处理 |
|---|---|---|
admin 登不进去 | 没生成过密码 | 回第 ② 步,容器终端跑 ./openlist admin random |
| 上传/下载都 413 | nginx 上传限制 | 加 client_max_body_size 0; 并 reload |
存储状态报 empty token returned from official API | 刷新令牌复制不全或已过期 | 重新去 api.oplist.org 取一次,整串复制 |
存储状态报 failed get storage | 挂载路径重复或为空 | 换个唯一路径,如 /百度网盘2 |
| 目录能看,点文件 403 / 下载失败 | 百度风控或令牌权限不足 | 换小号试,或降低操作频率 |
| 页面能开但样式全丢 | 反向代理没传 Host 头 | 反代配置里加 proxy_set_header Host $host; |
| 视频列表全是灰块没缩略图 | 安装时没选 ffmpeg | 重装时选「全部」,或在参数里补装 |
| 文件时间差 8 小时 | 时区没设 | 安装参数里改 Asia/Shanghai |
| 改完 nginx 没反应 | 只跑了 -t | 补 -s reload |
完成检查清单
- [ ]
https://pan.example.com能打开,强制跳 HTTPS - [ ] 管理员密码是自己生成的强密码,不是
admin - [ ] 百度网盘存储状态显示「正常」
- [ ] 能在线预览图片/视频,能下载文件
- [ ] 上传一个大文件(>100MB)不报 413
- [ ]
IP:5244从外网已打不开 - [ ]
data目录有定时备份