第一步:在 PVE 宿主机上部署 Alist 服务
Alist 是连接本地与夸克网盘的关键,它通过夸克官方 API 访问云盘内容,推荐使用 Docker 部署,简单且环境隔离。
创建工作目录:在 PVE 宿主机上为 Alist 创建一个数据目录。
bash
mkdir -p /root/alist/data cd /root/alist编写
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启动容器:在
/root/alist目录下,运行命令以启动 Alist 服务。bash
docker-compose up -d获取管理员密码:首次启动后,通过日志或命令查看初始密码。
bash
# 方法一:查看 Docker 容器日志 docker logs alist # 方法二:进入容器执行命令获取 docker exec -it alist ./alist admin登录并配置 Alist:在浏览器中访问
http://<你的PVE宿主机IP>:5244,使用用户名admin和你获取到的密码登录。登录后,请务必前往“管理” -> “个人资料”中修改密码。
第二步:在 Alist 中添加夸克网盘
成功登录 Alist 管理界面后,需要进行存储配置。
获取认证信息:登录夸克网盘网页版,按
F12打开“开发者工具”。在“网络 (Network)”标签页中,找到一个以sort?开头的请求,从请求头 (Request Headers) 中复制cookie的值,并从 URL 参数中找到pdir_fid的值,妥善保存备用。添加存储:在 Alist 管理后台,进入“存储” -> “添加”。关键配置如下:
驱动:选择 夸克网盘。
挂载路径:自定义,例如
/quark。根文件夹ID:填入上一步获取的
pdir_fid值。Cookie:填入上一步复制的完整 Cookie 值。
其他选项保持默认,点击“保存”即可。
第三步:在 PVE 宿主机上用 rclone 挂载 Alist
rclone 可以将 Alist 提供的 WebDAV 服务挂载为本地目录,方便 LXC 访问。
安装 rclone:
bash
apt update && apt install rclone -y配置 rclone:运行
rclone config,按提示新建一个 WebDAV 类型的远程连接。选择
n) New remote-> 输入名称,例如quark。Storage类型输入webdav。URL输入http://localhost:5244/dav/quark。Vendor选择other。User输入admin。Password输入你在 Alist 中设置的密码。保存并退出。
创建挂载点并挂载:创建本地目录并手动挂载测试。
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:提升写入性能,可根据需要调整。
第四步:设置开机自动挂载:
创建服务文件:
bash
nano /etc/systemd/system/rclone-quark.service填入以下内容 (请将
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启用并启动服务:
bash
systemctl daemon-reload systemctl enable rclone-quark.service配置完成后,你可以用
systemctl start rclone-quark.service手动测试一下,没问题就可以重启PVE验证了。
第五步:将宿主机目录共享给 LXC 容器
推荐使用 PVE 官方提供的 Bind Mounts 功能,它将宿主机目录直接“映射”到容器内部,高效稳定。
前提:该方法需要 特权容器 (Privileged Container)。如果你的容器是无特权的,请先通过 Web 界面关闭“无特权容器”选项。
确认路径:确保上一步挂载的目录
/mnt/quark在 PVE 宿主机上可访问。执行挂载命令:在 PVE 宿主机上,使用
pct set命令将/mnt/quark映射到目标容器内。bash
# 将 <容器ID> 替换为你的 LXC 容器 ID,如 103 pct set <容器ID> -mp0 /mnt/quark,mp=/mnt/quark这会将宿主机的
/mnt/quark映射到容器的/mnt/quark目录。重启容器:重启目标 LXC 容器使配置生效。
bash
pct restart <容器ID>
第六步:在 LXC 容器内为 Docker 服务配置存储
现在,LXC 容器内的 /mnt/quark 目录就直接指向夸克网盘了,你可以像使用本地目录一样使用它。
测试访问:进入 LXC 容器,验证挂载是否成功。
bash
pct enter <容器ID> ls /mnt/quark在 Docker 中使用:对于需要在 Docker 容器中访问此存储的服务,使用
-v或--mount参数将 LXC 内的目录挂载到 Docker 容器中即可。bash
docker run -d \ --name my_app \ -v /mnt/quark:/data \ # 将共享目录挂载到容器的 /data 路径 your_docker_image