Zenith Horizon

Alist+Rclone 挂载夸克网盘到 lxc

2026/04/16
loading

第一步:在 PVE 宿主机上部署 Alist 服务

Alist 是连接本地与夸克网盘的关键,它通过夸克官方 API 访问云盘内容,推荐使用 Docker 部署,简单且环境隔离。

  1. 创建工作目录:在 PVE 宿主机上为 Alist 创建一个数据目录。

    bash

    mkdir -p /root/alist/data
    cd /root/alist
  2. 编写 docker-compose.yml:在此目录下创建 docker-compose.yml 文件,内容如下:

    yaml

    version: '3.3'
    services:
        alist:
            image: 'xhofe/alist:latest'  # 建议使用 latest 稳定版
            container_name: alist
            volumes:
              - './data:/opt/alist/data' # 持久化数据
            ports:
              - '5244:5244'              # 映射 Alist WebUI 和 WebDAV 端口
            environment:
              - PUID=0                   # 使用 root 用户运行,确保权限
              - PGID=0
              - UMASK=022
            restart: always
  3. 启动容器:在 /root/alist 目录下,运行命令以启动 Alist 服务。

    bash

    docker-compose up -d
  4. 获取管理员密码:首次启动后,通过日志或命令查看初始密码。

    bash

    # 方法一:查看 Docker 容器日志
    docker logs alist
    # 方法二:进入容器执行命令获取
    docker exec -it alist ./alist admin
  5. 登录并配置 Alist:在浏览器中访问 http://<你的PVE宿主机IP>:5244,使用用户名 admin 和你获取到的密码登录。登录后,请务必前往“管理” -> “个人资料”中修改密码。

第二步:在 Alist 中添加夸克网盘

成功登录 Alist 管理界面后,需要进行存储配置。

  1. 获取认证信息:登录夸克网盘网页版,按 F12 打开“开发者工具”。在“网络 (Network)”标签页中,找到一个以 sort? 开头的请求,从请求头 (Request Headers) 中复制 cookie 的值,并从 URL 参数中找到 pdir_fid 的值,妥善保存备用。

  2. 添加存储:在 Alist 管理后台,进入“存储” -> “添加”。关键配置如下:

    • 驱动:选择 夸克网盘

    • 挂载路径:自定义,例如 /quark

    • 根文件夹ID:填入上一步获取的 pdir_fid 值。

    • Cookie:填入上一步复制的完整 Cookie 值。

    • 其他选项保持默认,点击“保存”即可。

第三步:在 PVE 宿主机上用 rclone 挂载 Alist

rclone 可以将 Alist 提供的 WebDAV 服务挂载为本地目录,方便 LXC 访问。

  1. 安装 rclone

    bash

    apt update && apt install rclone -y
  2. 配置 rclone:运行 rclone config,按提示新建一个 WebDAV 类型的远程连接。

    • 选择 n) New remote -> 输入名称,例如 quark

    • Storage 类型输入 webdav

    • URL 输入 http://localhost:5244/dav/quark

    • Vendor 选择 other

    • User 输入 admin

    • Password 输入你在 Alist 中设置的密码。

    • 保存并退出。

  3. 创建挂载点并挂载:创建本地目录并手动挂载测试。

    bash

    mkdir -p /mnt/quark
    rclone mount quark:/ /mnt/quark --daemon --allow-other --vfs-cache-mode writes
    • --daemon:以后台守护进程模式运行。

    • --allow-other:允许宿主机其他用户(以及 LXC 容器)访问。

    • --vfs-cache-mode writes:提升写入性能,可根据需要调整。

第四步:设置开机自动挂载

  1. 创建服务文件

    bash

    nano /etc/systemd/system/rclone-quark.service
  2. 填入以下内容 (请将 103 替换为你的容器ID):

    ini

    [Unit]
    Description=Mount Quark Cloud via Rclone and Start LXC
    After=network-online.target
    Wants=network-online.target
    
    [Service]
    Type=simple
    User=root
    ExecStartPre=/bin/mkdir -p /mnt/quark
    ExecStartPre=/bin/sh -c 'while ! curl -s http://localhost:5244/dav/ > /dev/null; do sleep 2; done'
    ExecStart=/usr/bin/rclone mount quark:/ /mnt/quark \
        --allow-other \
        --vfs-cache-mode writes \
        --vfs-cache-max-size 8G \
        --vfs-cache-max-age 72h \
        --attr-timeout 5m \
        --dir-cache-time 1m \
        --buffer-size 128M \
        --vfs-read-chunk-size 64M \
        --vfs-read-chunk-size-limit 2G \
        --vfs-read-ahead 256M \
        --log-file /var/log/rclone-quark.log \
        --log-level INFO
    ExecStartPost=/bin/sleep 3
    ExecStartPost=/bin/bash -c 'if ! pct status 103 | grep -q "running"; then pct start 103; fi'
    ExecStop=/bin/bash -c 'pct stop 103 2>/dev/null; fusermount -uz /mnt/quark'
    Restart=on-failure
    RestartSec=10
    
    [Install]
    WantedBy=multi-user.target
  3. 启用并启动服务

    bash

    systemctl daemon-reload
    systemctl enable rclone-quark.service

    配置完成后,你可以用 systemctl start rclone-quark.service 手动测试一下,没问题就可以重启PVE验证了。

第五步:将宿主机目录共享给 LXC 容器

推荐使用 PVE 官方提供的 Bind Mounts 功能,它将宿主机目录直接“映射”到容器内部,高效稳定。

  • 前提:该方法需要 特权容器 (Privileged Container)。如果你的容器是无特权的,请先通过 Web 界面关闭“无特权容器”选项。

  1. 确认路径:确保上一步挂载的目录 /mnt/quark 在 PVE 宿主机上可访问。

  2. 执行挂载命令:在 PVE 宿主机上,使用 pct set 命令将 /mnt/quark 映射到目标容器内。

    bash

    # 将 <容器ID> 替换为你的 LXC 容器 ID,如 103
    pct set <容器ID> -mp0 /mnt/quark,mp=/mnt/quark

    这会将宿主机的 /mnt/quark 映射到容器的 /mnt/quark 目录。

  3. 重启容器:重启目标 LXC 容器使配置生效。

    bash

    pct restart <容器ID>

第六步:在 LXC 容器内为 Docker 服务配置存储

现在,LXC 容器内的 /mnt/quark 目录就直接指向夸克网盘了,你可以像使用本地目录一样使用它。

  1. 测试访问:进入 LXC 容器,验证挂载是否成功。

    bash

    pct enter <容器ID>
    ls /mnt/quark
  2. 在 Docker 中使用:对于需要在 Docker 容器中访问此存储的服务,使用 -v--mount 参数将 LXC 内的目录挂载到 Docker 容器中即可。

    bash

    docker run -d \
      --name my_app \
      -v /mnt/quark:/data \  # 将共享目录挂载到容器的 /data 路径
      your_docker_image

Author: Max

Permalink: /archives/alist-rclone

Published: 2026-04-16 22:55:01

Updated: 2026-04-16 22:46:35

License: 本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可

CATALOG