为什么从 AList 切到 OpenList

去年(2025 年下半年)AList 项目方改了付费策略:

  • 基础功能依然开源免费
  • 夸克、UC、115、阿里云盘 OpenAPI 这些热门挂载需要"赞助版"授权,单年 99 元

钱不多,但我有三个理由换:

  1. 稳定性——AList 自从商业化后,社区版更新变慢,夸克 cookie 每 2 周就失效一次
  2. 开源协议——OpenList(社区 fork 版)完全 MIT,没有任何授权弹窗
  3. 服务器——就 68 块一年的机器,省 99 就赚了 99

结果:夸克网盘挂载后连续运行 25 天没掉线过,远超原来 AList 的 2 周水平。


环境准备

服务器:Ubuntu 22.04 LTS,Docker 27.x + Compose v2 已装好。 安装目录 /srv/www/AList网盘管理/(保留原名,方便 Nginx 反代不用改)。

1. 先停掉旧 AList(保留数据迁移)

cd "/srv/www/AList网盘管理"
docker compose down

# 备份!备份!备份!
cp -r data/ data_backup_before_openlist_$(date +%Y%m%d)

2. 换新的 docker-compose.yml

# /srv/www/AList网盘管理/docker-compose.yml
services:
  openlist:
    image: ghcr.io/openlist-org/openlist:latest
    container_name: openlist
    restart: unless-stopped
    user: "1000:1000"                # 避免 root 写文件权限问题
    ports:
      - "127.0.0.1:5244:5244"        # 只允许本机访问,外网全靠 Nginx 反代
    volumes:
      - ./data:/opt/alist/data
    environment:
      - TZ=Asia/Shanghai
      - PUID=1000
      - PGID=1000
    deploy:
      resources:
        limits:
          cpus: '0.60'
          memory: 256M
        reservations:
          cpus: '0.10'
          memory: 64M
    memswap_limit: 256M
    healthcheck:
      test: ["CMD", "wget", "-qO-", "http://127.0.0.1:5244/api/public/settings"]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 15s

3. 启动并初始化密码

cd "/srv/www/AList网盘管理"
docker compose pull
docker compose up -d

# 等 10 秒,第一次启动会初始化 SQLite
sleep 12

# 查看初始管理员密码(随机生成的,会打印一行类似 "password: XXXX")
docker compose logs openlist | grep "password"

浏览器打开 http://服务器IP:5244,用用户名 admin + 刚才的密码登录。登录后第一件事:改密码。


挂载夸克网盘(核心步骤,一个都不能漏)

① 先登录夸克 PC 网页版拿 Cookie

Chrome 打开 https://pan.quark.cn ,登录账号。必须用账号密码或短信登录,别用微信扫码登录(扫码登录的 Cookie 有效期特别短)。

登录后按 F12 → Application(应用)→ 左侧 Storage → Cookies → https://pan.quark.cn ,复制这两个值:

  • __puus(必填,鉴权用)
  • quark_session(必填,会话用)

技巧:按了登录之后千万不要点"退出登录",直接关浏览器页面。点退出登录 Cookie 立刻失效。

② OpenList 管理后台添加驱动

后台 → 存储 → 添加 → 选「夸克网盘(Cookie)」,填写:

挂载路径:      /夸克云盘
根文件夹ID:   留空(默认就是根目录)
Cookie:       __puus=xxx; quark_session=yyy;  ← 刚才复制的两个,分号拼接
Cookie 来源:  pc                       ← 很重要!选 mobile 和 web 的 2 周必掉
下载 API:     cloud-drive-v2           ← 新版本默认这个,下载速度更快

驱动选项里把"在线播放转码"勾掉(不勾的话视频播放会被夸克限流,速度只剩 200KB/s)。

保存,点"同源"测试,应该立刻列出你夸克根目录的文件。

③ 优化:单 IP 并发 3 线程 + 分片大小 32MB

存储设置 → 全局传输设置:

  • 上传并发数:3
  • 分片大小:32 MB
  • 下载并发:6
  • 下载分片大小:16 MB
  • 重试次数:5

这组参数在我的 200M 峰值带宽下实测下载速度可以跑到 18~22 MB/s。更高的并发反而触发夸克风控(返回 403)。


踩过的 4 个坑,你直接绕

坑 1:Nginx 反代缺了 websocket 升级头

OpenList 后台的日志流(WebSocket)走 /api/ws,没配升级头的话后台永远白屏。

# /srv/www/AList网盘管理/nginx 子配置(在主 conf 里 include)
location / {
    proxy_pass http://127.0.0.1:5244;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    # ↓ 这 6 行是关键,缺 WebSocket 升级头后台日志白屏
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_read_timeout 86400s;
    proxy_send_timeout 86400s;
    proxy_buffering off;
}

坑 2:夸克 __puus 每 1 个月自动失效

实测:夸克网页登录的 Cookie 大概 30~35 天失效。OpenList 支持自动刷新 Cookie,但要填对 cookie_source=pc。

解决办法:在 OpenList 后台 → 存储 → 编辑夸克驱动 → 开启"Cookie 自动续期"(版本 ≥ 2026.3.15 才有)。配合夸克 App 保持登录(手机开一下夸克 App 就行,不用操作),实测已经稳了 25 天无掉线。

坑 3:挂载后中文文件名乱码(Nginx 默认 charset)

打开文件时浏览器显示 %E6%B5%8B%E8%AF%95.mp4 这种 URL 编码字符?乱码原因是 Nginx 没加 UTF-8。

server {
    charset utf-8;                 # ← 加这一行,放在 server 块最顶部
    listen 443 ssl http2;
    server_name 5244.mccok.cn;
    ...
}

坑 4:用 latest 镜像版本每次 docker compose up 都拉一遍

解决:pin 住稳定版 tag。打开 https://github.com/orgs/openlist-org/packages?repo_name=openlist ,挑最新的 tag(例如 2026.7.0),把 docker-compose.yml 里的 image: ghcr.io/openlist-org/openlist:latest 改成具体 tag。


最终状态

Nginx 反代 → Docker OpenList 容器(5244)
              ↳ 存储1:/夸克云盘   → 4.2T / 可用 7.8T
              ↳ 存储2:/本地磁盘  → 服务器 40GB

4K 电影从夸克网盘拉下来看,拖动进度条 0.8 秒起播(比我自己本地百度网盘 VIP 还快)。下载大文件(40G 蓝光原盘)基本能跑到我家里 500M 宽带的满速 62MB/s。

开源 + 免费 + 稳定 + 高速。 四连满足。唯一遗憾:为什么没早点换。

(完)