使用 AList + rclone 将夸克网盘挂载为本地磁盘:Windows/Linux 双平台部署指南

📑 目录
  1. 目录
  2. 1. 架构概述与原理
    1. 1.1 为什么需要这个方案?
    2. 1.2 架构图
    3. 1.3 核心机制:VFS 异步写入缓存
  3. 2. 环境准备与工具下载
    1. 2.1 工具清单
    2. 2.2 目录规划
    3. 2.3 下载与解压
  4. 3. AList 部署与夸克网盘配置
    1. 3.1 启动 AList 服务
    2. 3.2 配置夸克网盘
      1. 3.2.1 登录 AList 管理后台
      2. 3.2.2 获取夸克网盘 Cookie
      3. 3.2.3 在 AList 中添加夸克网盘
    3. 3.3 AList 持久化运行(可选)
  5. 4. rclone 配置与 WebDAV 远程
    1. 4.1 交互式配置
    2. 4.2 验证配置
    3. 4.3 配置文件位置
  6. 5. 挂载为本地磁盘(核心:VFS 异步写入缓存)
    1. 5.1 基础挂载命令
    2. 5.2 参数详解
    3. 5.3 写入流程图解
    4. 5.4 验证挂载
    5. 5.5 高级缓存策略(按需选择)
      1. 场景 A:大文件写入(视频、压缩包)
      2. 场景 B:小文件频繁读写(代码项目、文档)
      3. 场景 C:只读挂载(媒体库、资料库)
  7. 6. 开机自启与生产级部署
    1. 6.1 方案一:Windows 计划任务(推荐)
    2. 6.2 方案二:nssm 注册为系统服务
    3. 6.3 方案三:启动脚本(适合临时使用)
  8. 7. 性能调优与故障排查
    1. 7.1 性能监控
    2. 7.2 常见问题排查
      1. 问题 1:挂载后无法写入,提示 "磁盘写保护"
      2. 问题 2:文件写入后,夸克网盘看不到
      3. 问题 3:缓存目录占用过大
      4. 问题 4:程序打开文件很慢
      5. 问题 5:开机后挂载失败
    3. 7.3 Cookie 自动更新(进阶)
  9. 9. Linux 下部署方案(Ubuntu/Debian/CentOS 通用)
    1. 9.1 目录规划(Linux 标准路径)
    2. 9.2 安装 AList
    3. 9.3 AList systemd 服务
    4. 9.4 配置夸克网盘(与 Windows 相同)
    5. 9.5 安装 rclone
    6. 9.6 rclone 配置
    7. 9.7 创建挂载点并挂载
    8. 9.8 启用 FUSE 的 allow_other
    9. 9.9 systemd 服务化挂载(生产级)
    10. 9.10 开机启动顺序控制
    11. 9.11 Linux 性能调优
      1. 系统级优化
      2. rclone 高级参数(Linux 专用)
    12. 9.12 Linux 故障排查
      1. 查看日志
      2. 常见问题
    13. 9.13 Linux 与 Windows 方案对比
    14. 9.14 Docker 部署(进阶)
  10. 10. 双平台命令速查表
    1. 10.1 平台差异速查
    2. 10.2 通用 rclone 参数(双平台适用)
  11. 8. 完整命令速查表
    1. 8.1 AList 命令
    2. 8.2 rclone 配置命令
    3. 8.3 rclone 挂载命令
    4. 8.4 服务管理命令
  12. 附录:参考资源

Windows 下将夸克网盘映射为本地磁盘:AList + rclone 完整技术指南

适用场景:需要将夸克网盘作为本地独立磁盘(如 Q:)使用,支持被任意程序(IDE、编译器、媒体播放器)读写,并通过异步缓存实现"本地速度写入、后台异步上传"。

技术栈:AList(WebDAV 网关)+ rclone(带 VFS 缓存的挂载器)+ Windows 服务化部署


目录

  1. 架构概述与原理
  2. 环境准备与工具下载
  3. AList 部署与夸克网盘配置
  4. rclone 配置与 WebDAV 远程
  5. 挂载为本地磁盘(核心:VFS 异步写入缓存)
  6. 开机自启与生产级部署
  7. 性能调优与故障排查
  8. 完整命令速查表

1. 架构概述与原理

1.1 为什么需要这个方案?

夸克网盘官方客户端仅提供文件同步功能,无法映射为本地磁盘。当需要:

  • 在 IDE 中直接编译输出到网盘
  • 让视频剪辑软件直接读取网盘素材
  • 实现"写入即返回"(程序不等待上传完成)

就需要通过 协议转换 + 虚拟文件系统 实现。

1.2 架构图

┌─────────────────────────────────────────────────────────────┐
│                        Windows 系统层                          │
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────────┐  │
│  │   IDE/编辑器  │    │  媒体播放器  │    │   任意程序读写    │  │
│  └──────┬──────┘    └──────┬──────┘    └────────┬────────┘  │
│         │                  │                    │            │
│         └──────────────────┴────────────────────┘            │
│                            │                                │
│                    ┌─────────▼──────────┐                   │
│                    │   Q: (本地磁盘)     │                   │
│                    │   rclone mount      │                   │
│                    │   VFS 缓存层        │                   │
│                    └─────────┬──────────┘                   │
│                              │                              │
│                    ┌─────────▼──────────┐                   │
│                    │   WebDAV 协议       │                   │
│                    │   http://127.0.0.1  │                   │
│                    └─────────┬──────────┘                   │
│                              │                              │
│                    ┌─────────▼──────────┐                   │
│                    │   AList 网关        │                   │
│                    │   夸克网盘 API      │                   │
│                    └─────────┬──────────┘                   │
│                              │                              │
│                    ┌─────────▼──────────┐                   │
│                    │   夸克网盘云端      │                   │
│                    └────────────────────┘                   │
└─────────────────────────────────────────────────────────────┘

1.3 核心机制:VFS 异步写入缓存

rclone 的 --vfs-cache-mode writes 实现了以下写入流程:

程序 write() → 本地缓存目录 → 程序 close() → 立即返回成功
                                                    ↓
                                            后台异步上传 → 夸克网盘

这意味着:

  • 程序感知到的写入速度 = 本地磁盘速度(非网盘上传速度)
  • 程序不会阻塞等待上传完成
  • 上传在后台静默进行,完成后自动清理缓存

2. 环境准备与工具下载

2.1 工具清单

工具版本要求用途下载地址
AListv3.xWebDAV 网关,聚合夸克网盘GitHub Releases
rclonev1.66+挂载器,提供 VFS 缓存rclone.org/downloads
nssm (可选)v2.24将 rclone 注册为 Windows 服务nssm.cc

2.2 目录规划

建议统一目录结构,便于后续维护:

D:\CloudMount\
├── alist\              # AList 程序目录
│   ├── alist.exe
│   └── data\           # AList 数据库与配置(自动生成)
├── rclone\             # rclone 程序目录
│   ├── rclone.exe
│   └── rclone.conf      # 远程配置(自动生成)
├── cache\              # VFS 缓存目录(手动创建)
│   └── vfs
└── logs\               # 日志目录(手动创建)
    └── rclone.log

2.3 下载与解压

# 以管理员身份运行 PowerShell

# 创建目录
New-Item -ItemType Directory -Path "D:\CloudMount\alist" -Force
New-Item -ItemType Directory -Path "D:\CloudMount\rclone" -Force
New-Item -ItemType Directory -Path "D:\CloudMount\cache\vfs" -Force
New-Item -ItemType Directory -Path "D:\CloudMount\logs" -Force

# 下载 AList(示例:v3.41.0,请替换为最新版本)
# 访问 https://github.com/alist-org/alist/releases 获取最新版本号
$alistVersion = "3.41.0"
Invoke-WebRequest -Uri "https://github.com/alist-org/alist/releases/download/v$alistVersion/alist-windows-amd64.zip" -OutFile "D:\CloudMount\alist.zip"
Expand-Archive -Path "D:\CloudMount\alist.zip" -DestinationPath "D:\CloudMount\alist" -Force

# 下载 rclone(示例:v1.68.0,请替换为最新版本)
$rcloneVersion = "1.68.0"
Invoke-WebRequest -Uri "https://downloads.rclone.org/v$rcloneVersion/rclone-v$rcloneVersion-windows-amd64.zip" -OutFile "D:\CloudMount\rclone.zip"
Expand-Archive -Path "D:\CloudMount\rclone.zip" -DestinationPath "D:\CloudMount\rclone-temp" -Force
# 将解压后的 rclone.exe 移动到目标目录
Move-Item -Path "D:\CloudMount\rclone-temp\rclone-v$rcloneVersion-windows-amd64\rclone.exe" -Destination "D:\CloudMount\rclone\rclone.exe" -Force
Remove-Item -Path "D:\CloudMount\rclone-temp" -Recurse -Force

# 添加 rclone 到系统 PATH(当前会话生效)
$env:Path += ";D:\CloudMount\rclone"
# 永久添加(需要重启终端)
[Environment]::SetEnvironmentVariable("Path", $env:Path, "Machine")

# 验证安装
D:\CloudMount\alist\alist.exe version
D:\CloudMount\rclone\rclone.exe version

3. AList 部署与夸克网盘配置

3.1 启动 AList 服务

cd D:\CloudMount\alist

# 首次启动,获取初始密码
.\alist.exe server

输出示例:

INFO[2024-07-20] reading config file: data\config.json
INFO[2024-07-20] load config from env with prefix: ALIST_
INFO[2024-07-20] init logrus...
INFO[2024-07-20] start server @ 0.0.0.0:5244
Successfully created the admin user and the initial password is: xK9mP2nQ5vR8

记录初始密码xK9mP2nQ5vR8(每次安装不同,请记录实际值)

AList 默认监听 0.0.0.0:5244,即所有网卡的 5244 端口。

3.2 配置夸克网盘

3.2.1 登录 AList 管理后台

  1. 浏览器访问:http://127.0.0.1:5244
  2. 点击页面底部的 【管理】 按钮
  3. 使用账号 admin 和初始密码登录

这是最关键的一步,Cookie 的正确性直接决定挂载成败。

方法:Chrome 开发者工具

  1. 打开 Chrome 浏览器(⚠️ 必须使用 Chrome,Firefox 获取的 Cookie 可能无效)
  2. 访问 https://pan.quark.cn登录账号
  3. F12 打开开发者工具 → 切换到 Network 标签
  4. 刷新页面(F5
  5. 在请求列表中找到以 sort?file? 开头的请求
  6. 点击该请求 → 右侧 Headers → 找到 Request Headers 中的 cookie: 字段
  7. 右键 → Copy value,复制完整的 Cookie 字符串

Cookie 示例(已脱敏):

__kp=xxxxxxxx; __kps=xxxxxxxx; __ktd=xxxxxxxx; __puus=xxxxxxxx; __kp=xxxxxxxx; __kps=xxxxxxxx; __ktd=xxxxxxxx; __puus=xxxxxxxx; ctoken=xxxxxxxx; sdfi=xxxxxxxx

注意事项

  • Cookie 包含多个键值对,必须完整复制,不要遗漏任何部分
  • Cookie 有效期通常为 7-30 天,失效后需重新更新
  • 不要分享 Cookie 给他人,否则对方可访问你的网盘

3.2.3 在 AList 中添加夸克网盘

  1. 在 AList 管理后台,左侧菜单 → 【存储】【添加】
  2. 配置如下:
配置项说明
驱动夸克选择夸克网盘
挂载路径/quark自定义路径,后续 rclone 访问用
序号0排序用,可默认
WebDAV 策略302 重定向推荐,直链下载
根文件夹 ID00 表示根目录
Cookie[粘贴复制的完整 Cookie]从 Chrome 获取的 Cookie
  1. 点击 【保存】
  2. 回到 AList 主页(http://127.0.0.1:5244),确认 /quark 目录能正常显示文件

3.3 AList 持久化运行(可选)

AList 需要持续运行,建议注册为 Windows 服务:

# 下载 nssm
Invoke-WebRequest -Uri "https://nssm.cc/release/nssm-2.24.zip" -OutFile "D:\CloudMount\nssm.zip"
Expand-Archive -Path "D:\CloudMount\nssm.zip" -DestinationPath "D:\CloudMount\nssm" -Force

# 注册 AList 为服务
D:\CloudMount\nssm\nssm-2.24\win64\nssm.exe install AList

# 在弹出的 GUI 中配置:
# Path: D:\CloudMount\alist\alist.exe
# Arguments: server
# Startup directory: D:\CloudMount\alist
# 然后点击 Install service

# 启动服务
Start-Service AList
Set-Service AList -StartupType Automatic

4. rclone 配置与 WebDAV 远程

4.1 交互式配置

cd D:\CloudMount\rclone
.\rclone.exe config

按提示操作:

No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n

name> quark
  # 远程名称,后续挂载用 quark:

Type of storage to configure.
Choose a number from below...
  ...
  49 / WebDAV
  \   \"webdav\"
  ...
Storage> 49
  # 选择 WebDAV

URL> http://127.0.0.1:5244/dav/quark
  # AList 的 WebDAV 地址,注意 /dav/quark 不是 /quark

Vendor> 5
  # 选择 "Other"(其他)

User> admin
  # AList 的管理员账号

Password> y
  # 输入 y 表示要输入密码

Enter the password: [输入 AList 密码,不显示]

Confirm the password: [再次输入确认]

Bearer token> 
  # 直接回车,留空

Edit advanced config?> n
  # 不编辑高级配置

Remote config
--------------------
[quark]
type = webdav
url = http://127.0.0.1:5244/dav/quark
vendor = other
user = admin
pass = *** ENCRYPTED ***
--------------------

y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

q) Quit config
q> q

4.2 验证配置

# 列出远程根目录
D:\CloudMount\rclone\rclone.exe ls quark:

# 测试上传(创建一个测试文件)
"test content" | Out-File -FilePath "D:\test.txt" -Encoding utf8
D:\CloudMount\rclone\rclone.exe copy "D:\test.txt" quark:

# 验证上传成功
D:\CloudMount\rclone\rclone.exe ls quark:
# 应显示 test.txt

4.3 配置文件位置

rclone 配置保存在:

  • 默认路径:%APPDATA%\rclone\rclone.conf
  • 自定义路径(推荐):D:\CloudMount\rclone\rclone.conf

如需指定配置文件路径:

$env:RCLONE_CONFIG = "D:\CloudMount\rclone\rclone.conf"

5. 挂载为本地磁盘(核心:VFS 异步写入缓存)

5.1 基础挂载命令

# 以管理员身份运行 PowerShell

cd D:\CloudMount\rclone

.\rclone.exe mount quark: Q: `
  --vfs-cache-mode writes `
  --vfs-cache-max-size 10G `
  --vfs-write-back 10s `
  --vfs-cache-max-age 1h `
  --cache-dir "D:\CloudMount\cache\vfs" `
  --network-mode `
  --log-file "D:\CloudMount\logs\rclone.log" `
  --log-level INFO

5.2 参数详解

参数作用
quark:远程名称指向 AList 的 WebDAV
Q:盘符挂载为本地磁盘 Q:
--vfs-cache-modewrites核心参数:写入缓存模式。文件写入时先缓存到本地,再异步上传
--vfs-cache-max-size10G本地缓存目录最大占用 10GB
--vfs-write-back10s文件关闭后 10 秒再异步回写网盘,程序 close() 后立即返回
--vfs-cache-max-age1h缓存文件保留 1 小时,超时后清理
--cache-dirD:\CloudMount\cache\vfs自定义缓存目录位置
--network-mode-Windows 下以网络驱动器模式挂载,兼容性更好
--log-file路径日志输出路径,便于排查问题
--log-levelINFO日志级别:DEBUG / INFO / WARNING / ERROR

5.3 写入流程图解

┌─────────────────────────────────────────────────────────────┐
│                     程序写入文件流程                           │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. 程序调用 write()                                        │
│         │                                                   │
│         ▼                                                   │
│  2. 数据写入本地缓存目录                                     │
│     D:\CloudMount\cache\vfs\quark\...                 │
│         │                                                   │
│         ▼                                                   │
│  3. 程序调用 close()                                        │
│         │                                                   │
│         ▼                                                   │
│  4. rclone 立即返回 "写入成功" 给程序                         │
│     (程序不阻塞,继续执行)                                  │
│         │                                                   │
│         ▼                                                   │
│  5. 10 秒后(--vfs-write-back 10s)                          │
│         │                                                   │
│         ▼                                                   │
│  6. rclone 后台异步上传文件到夸克网盘                        │
│         │                                                   │
│         ▼                                                   │
│  7. 上传完成后,缓存文件标记为可清理                         │
│                                                             │
└─────────────────────────────────────────────────────────────┘

5.4 验证挂载

挂载成功后:

  1. 打开 "此电脑",应出现 Q: 盘符
  2. 右键 Q:属性,显示类型为 "本地磁盘""网络驱动器"
  3. 测试写入:
    # 在 PowerShell 中测试
    "Hello from local disk" | Out-File -FilePath "Q:\test.txt" -Encoding utf8
    # 应瞬间完成(因为写入缓存)
    
    # 10 秒后查看夸克网盘,文件应已同步

5.5 高级缓存策略(按需选择)

场景 A:大文件写入(视频、压缩包)

.\rclone.exe mount quark: Q: `
  --vfs-cache-mode full `           # 全缓存模式,读写都缓存
  --vfs-cache-max-size 50G `       # 增大缓存到 50GB
  --vfs-write-back 30s `           # 大文件延迟 30 秒回写
  --vfs-read-ahead 512M `          # 预读 512MB
  --cache-dir "D:\CloudMount\cache\vfs" `
  --network-mode

场景 B:小文件频繁读写(代码项目、文档)

.\rclone.exe mount quark: Q: `
  --vfs-cache-mode writes `
  --vfs-cache-max-size 5G `
  --vfs-write-back 5s `            # 快速回写
  --vfs-cache-poll-interval 5s `   # 5 秒轮询缓存状态
  --cache-dir "D:\CloudMount\cache\vfs" `
  --network-mode

场景 C:只读挂载(媒体库、资料库)

.\rclone.exe mount quark: Q: `
  --read-only `                    # 只读模式
  --vfs-cache-mode full `
  --vfs-cache-max-size 20G `
  --vfs-read-ahead 1G `
  --cache-dir "D:\CloudMount\cache\vfs" `
  --network-mode

6. 开机自启与生产级部署

6.1 方案一:Windows 计划任务(推荐)

# 以管理员身份运行 PowerShell

$action = New-ScheduledTaskAction `
  -Execute "D:\CloudMount\rclone\rclone.exe" `
  -Argument "mount quark: Q: --vfs-cache-mode writes --vfs-cache-max-size 10G --vfs-write-back 10s --cache-dir \"D:\CloudMount\cache\vfs\" --network-mode --log-file \"D:\CloudMount\logs\rclone.log\" --log-level INFO"

$trigger = New-ScheduledTaskTrigger -AtLogon

$settings = New-ScheduledTaskSettingsSet `
  -AllowStartIfOnBatteries `
  -DontStopIfGoingOnBatteries `
  -StartWhenAvailable `
  -RestartCount 3 `
  -RestartInterval (New-TimeSpan -Minutes 1)

$principal = New-ScheduledTaskPrincipal `
  -UserId "$env:USERNAME" `
  -LogonType Interactive `
  -RunLevel Highest

Register-ScheduledTask `
  -TaskName "QuarkMount" `
  -Action $action `
  -Trigger $trigger `
  -Settings $settings `
  -Principal $principal

# 启动任务测试
Start-ScheduledTask -TaskName "QuarkMount"

# 查看任务状态
Get-ScheduledTask -TaskName "QuarkMount" | Get-ScheduledTaskInfo

6.2 方案二:nssm 注册为系统服务

# 下载 nssm(如未下载)
# https://nssm.cc/release/nssm-2.24.zip

D:\CloudMount\nssm\nssm-2.24\win64\nssm.exe install QuarkMount

# 在弹出的 GUI 中配置:
# ┌────────────────────────────────────────────┐
# │ Application:                               │
# │   Path: D:\CloudMount\rclone\rclone.exe  │
# │   Startup directory: D:\CloudMount\rclone  │
# │   Arguments: mount quark: Q: --vfs-cache-mode writes --vfs-cache-max-size 10G --vfs-write-back 10s --cache-dir "D:\CloudMount\cache\vfs" --network-mode --log-file "D:\CloudMount\logs\rclone.log" --log-level INFO │
# │                                            │
# │ Details:                                   │
# │   Display name: Quark Cloud Mount          │
# │   Description: Mount Quark Drive as Q:     │
# │                                            │
# │ Log on:                                    │
# │   This account: [你的 Windows 账号]          │
# │                                            │
# │ Process / I/O:                             │
# │   Output: D:\CloudMount\logs\rclone.log  │
# │   Error: D:\CloudMount\logs\rclone-error.log │
# └────────────────────────────────────────────┘

# 启动服务
Start-Service QuarkMount
Set-Service QuarkMount -StartupType Automatic

# 查看服务状态
Get-Service QuarkMount

6.3 方案三:启动脚本(适合临时使用)

创建 D:\CloudMount\start-quark.bat

@echo off
title Quark Mount
cd /d D:\CloudMount\rclone

rclone.exe mount quark: Q: ^
  --vfs-cache-mode writes ^
  --vfs-cache-max-size 10G ^
  --vfs-write-back 10s ^
  --vfs-cache-max-age 1h ^
  --cache-dir "D:\CloudMount\cache\vfs" ^
  --network-mode ^
  --log-file "D:\CloudMount\logs\rclone.log" ^
  --log-level INFO

if errorlevel 1 (
    echo Mount failed! Check logs.
    pause
)

双击运行即可挂载。


7. 性能调优与故障排查

7.1 性能监控

# 查看 rclone 实时活动(需另开终端)
D:\CloudMount\rclone\rclone.exe rc vfs/stats

# 查看缓存使用情况
Get-ChildItem "D:\CloudMount\cache\vfs" -Recurse | Measure-Object -Property Length -Sum

# 查看日志尾部
Get-Content "D:\CloudMount\logs\rclone.log" -Tail 50 -Wait

7.2 常见问题排查

问题 1:挂载后无法写入,提示 "磁盘写保护"

原因:AList 的 WebDAV 权限未开启写入。

解决

  1. 访问 AList 管理后台 → 【设置】→【WebDAV】
  2. 确认 "允许 WebDAV 写入" 已勾选
  3. 重启 AList 服务

问题 2:文件写入后,夸克网盘看不到

原因:缓存未回写或 Cookie 失效。

排查

# 查看 rclone 日志
Get-Content "D:\CloudMount\logs\rclone.log" -Tail 100

# 常见错误:
# - "401 Unauthorized": AList 密码错误或 Cookie 失效
# - "upload failed": 夸克网盘 API 限制或空间不足
# - "context canceled": 上传超时

解决

  • 检查 AList 中夸克网盘的 Cookie 是否过期,重新获取并更新
  • 增加 --vfs-write-back 时间,给上传更多缓冲
  • 检查夸克网盘剩余空间

问题 3:缓存目录占用过大

# 手动清理缓存
Remove-Item -Path "D:\CloudMount\cache\vfs\*" -Recurse -Force

# 或者在挂载参数中减小缓存上限
--vfs-cache-max-size 5G

问题 4:程序打开文件很慢

原因:rclone 默认需要先从网盘下载文件到缓存。

优化

# 增加预读缓存
--vfs-read-ahead 1G
--buffer-size 1G

# 或使用全缓存模式(首次加载慢,后续读取快)
--vfs-cache-mode full

问题 5:开机后挂载失败

原因:rclone 启动时 AList 尚未就绪。

解决:在计划任务中添加延迟:

$trigger = New-ScheduledTaskTrigger -AtLogon
$settings = New-ScheduledTaskSettingsSet -Delay (New-TimeSpan -Seconds 30)

Cookie 过期后需要手动更新,可以编写 PowerShell 脚本自动检测:

# D:\CloudMount\scripts\check-cookie.ps1

$logContent = Get-Content "D:\CloudMount\logs\rclone.log" -Tail 50
if ($logContent -match "401|Unauthorized|cookie") {
    # 发送通知(例如通过 Bark、企业微信等)
    Write-Output "Cookie may expired at $(Get-Date)" | Out-File -Append "D:\CloudMount\logs\alert.log"
    # 或者调用 AList API 重新获取 Cookie(需配合浏览器自动化)
}

注册为每小时运行的计划任务即可。


9. Linux 下部署方案(Ubuntu/Debian/CentOS 通用)

Linux 下核心逻辑与 Windows 完全一致,但服务管理、路径格式和挂载方式有差异。以下提供 systemd 服务化部署的完整方案。

9.1 目录规划(Linux 标准路径)

/opt/cloudmount/
├── alist/              # AList 程序目录
│   ├── alist
│   └── data/           # AList 数据库与配置
├── rclone/             # rclone 二进制
│   └── rclone
├── cache/              # VFS 缓存目录
│   └── vfs/
├── logs/               # 日志目录
│   └── rclone.log
└── scripts/            # 辅助脚本
    └── check-cookie.sh

9.2 安装 AList

# 创建目录
sudo mkdir -p /opt/cloudmount/{alist,rclone,cache/vfs,logs,scripts}

# 下载 AList(以 v3.41.0 为例,替换为最新版本)
ALIST_VERSION="3.41.0"
cd /opt/cloudmount/alist
sudo wget "https://github.com/alist-org/alist/releases/download/v${ALIST_VERSION}/alist-linux-amd64.tar.gz"
sudo tar -xzf alist-linux-amd64.tar.gz
sudo rm alist-linux-amd64.tar.gz
sudo chmod +x alist

# 验证
./alist version

9.3 AList systemd 服务

创建服务文件:

sudo tee /etc/systemd/system/alist.service << 'EOF'
[Unit]
Description=AList - A file list program that supports multiple storage
After=network.target
Wants=network.target

[Service]
Type=simple
WorkingDirectory=/opt/cloudmount/alist
ExecStart=/opt/cloudmount/alist/alist server
Restart=on-failure
RestartSec=5s
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
EOF

# 启动并启用自启
sudo systemctl daemon-reload
sudo systemctl enable alist
sudo systemctl start alist
sudo systemctl status alist

AList 默认监听 0.0.0.0:5244,与 Windows 一致。

9.4 配置夸克网盘(与 Windows 相同)

  1. 浏览器访问 http://<服务器IP>:5244
  2. 点击底部 【管理】,用初始密码登录
  3. 左侧 【存储】→【添加】
  4. 驱动选择 夸克网盘
  5. 挂载路径填 /quark
  6. Cookie 获取方式(与 Windows 相同):
    • Chrome 打开 https://pan.quark.cn 并登录
    • F12 → Network → 刷新 → 找到 sort? 请求 → 复制完整 Cookie
  7. 根文件夹 ID 填 0
  8. 保存

9.5 安装 rclone

# 方式一:官方安装脚本(推荐)
curl https://rclone.org/install.sh | sudo bash

# 方式二:手动下载
RCLONE_VERSION="1.68.0"
cd /opt/cloudmount/rclone
sudo wget "https://downloads.rclone.org/v${RCLONE_VERSION}/rclone-v${RCLONE_VERSION}-linux-amd64.zip"
sudo unzip -o rclone-v${RCLONE_VERSION}-linux-amd64.zip
sudo mv rclone-v${RCLONE_VERSION}-linux-amd64/rclone .
sudo rm -rf rclone-v${RCLONE_VERSION}-linux-amd64*
sudo chmod +x rclone

# 验证
/opt/cloudmount/rclone/rclone version

9.6 rclone 配置

# 使用交互式配置
/opt/cloudmount/rclone/rclone config

配置参数与 Windows 完全一致:

name> quark
Storage> webdav
URL> http://127.0.0.1:5244/dav/quark
Vendor> other
User> admin
Password> [AList密码]
Bearer token> [回车留空]

9.7 创建挂载点并挂载

# 创建挂载点
sudo mkdir -p /mnt/quark

# 基础挂载(前台测试)
sudo /opt/cloudmount/rclone/rclone mount quark: /mnt/quark   --vfs-cache-mode writes   --vfs-cache-max-size 10G   --vfs-write-back 10s   --vfs-cache-max-age 1h   --cache-dir /opt/cloudmount/cache/vfs   --log-file /opt/cloudmount/logs/rclone.log   --log-level INFO   --allow-other   --allow-non-empty

Linux 特有参数

参数作用
--allow-other允许其他用户访问挂载点(必须配合 /etc/fuse.conf 配置)
--allow-non-empty允许挂载到非空目录

9.8 启用 FUSE 的 allow_other

# 编辑 fuse 配置
sudo sed -i 's/#user_allow_other/user_allow_other/' /etc/fuse.conf

# 验证
grep "user_allow_other" /etc/fuse.conf

9.9 systemd 服务化挂载(生产级)

创建 rclone mount 服务:

sudo tee /etc/systemd/system/rclone-quark.service << 'EOF'
[Unit]
Description=rclone mount for Quark Drive
After=network-online.target alist.service
Wants=network-online.target
Requires=alist.service

[Service]
Type=notify
ExecStart=/opt/cloudmount/rclone/rclone mount quark: /mnt/quark   --vfs-cache-mode writes   --vfs-cache-max-size 10G   --vfs-write-back 10s   --vfs-cache-max-age 1h   --cache-dir /opt/cloudmount/cache/vfs   --log-file /opt/cloudmount/logs/rclone.log   --log-level INFO   --allow-other   --allow-non-empty   --daemon
ExecStop=/bin/fusermount -u /mnt/quark
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target
EOF

# 启动并启用
sudo systemctl daemon-reload
sudo systemctl enable rclone-quark
sudo systemctl start rclone-quark
sudo systemctl status rclone-quark

关键设计

  • Requires=alist.service:确保 AList 先启动
  • After=network-online.target:等待网络就绪
  • ExecStop=/bin/fusermount -u:服务停止时安全卸载
  • Type=notify:rclone 支持 systemd 通知机制

9.10 开机启动顺序控制

确保启动顺序:网络 → AList → rclone mount

# 查看启动依赖
systemctl list-dependencies rclone-quark

# 手动测试重启后的自动挂载
sudo reboot
# 重启后检查
systemctl status alist
systemctl status rclone-quark
df -h /mnt/quark
ls /mnt/quark

9.11 Linux 性能调优

系统级优化

# 增大文件描述符限制(/etc/security/limits.conf)
sudo tee -a /etc/security/limits.conf << 'EOF'
* soft nofile 65536
* hard nofile 65536
EOF

# 增大内核缓存参数(/etc/sysctl.conf)
sudo tee -a /etc/sysctl.conf << 'EOF'
vm.dirty_ratio = 40
vm.dirty_background_ratio = 10
vm.vfs_cache_pressure = 50
EOF

sudo sysctl -p

rclone 高级参数(Linux 专用)

# 大文件场景(视频、ISO)
sudo /opt/cloudmount/rclone/rclone mount quark: /mnt/quark   --vfs-cache-mode full   --vfs-cache-max-size 50G   --vfs-write-back 30s   --vfs-read-ahead 512M   --buffer-size 1G   --cache-dir /opt/cloudmount/cache/vfs   --log-file /opt/cloudmount/logs/rclone.log   --allow-other   --allow-non-empty

# 小文件高频场景(代码、文档)
sudo /opt/cloudmount/rclone/rclone mount quark: /mnt/quark   --vfs-cache-mode writes   --vfs-cache-max-size 5G   --vfs-write-back 5s   --vfs-cache-poll-interval 5s   --transfers 8   --checkers 16   --cache-dir /opt/cloudmount/cache/vfs   --log-file /opt/cloudmount/logs/rclone.log   --allow-other   --allow-non-empty

9.12 Linux 故障排查

查看日志

# rclone 日志
sudo tail -f /opt/cloudmount/logs/rclone.log

# systemd 服务日志
sudo journalctl -u rclone-quark -f
sudo journalctl -u alist -f

# 系统日志
sudo dmesg | grep -i fuse

常见问题

问题 1:挂载失败,提示 "fusermount: failed to open /dev/fuse: Permission denied"

# 解决:将用户加入 fuse 组
sudo usermod -a -G fuse $USER
# 重新登录生效

问题 2:其他用户无法访问 /mnt/quark

# 确认 --allow-other 已启用
# 确认 /etc/fuse.conf 中 user_allow_other 已取消注释
# 检查挂载点权限
sudo chmod 755 /mnt/quark

问题 3:服务启动但 df 看不到挂载

# 检查 rclone 是否以 daemon 模式运行
ps aux | grep rclone

# 手动检查挂载
mount | grep quark

# 强制重新挂载
sudo systemctl stop rclone-quark
sudo fusermount -u /mnt/quark
sudo systemctl start rclone-quark

问题 4:Cookie 过期后自动通知

# 创建监控脚本
sudo tee /opt/cloudmount/scripts/check-cookie.sh << 'EOF'
#!/bin/bash
LOG_FILE="/opt/cloudmount/logs/rclone.log"
ALERT_LOG="/opt/cloudmount/logs/alert.log"

if grep -qE "401 Unauthorized|cookie|Unauthorized" "$LOG_FILE" 2>/dev/null; then
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] Cookie may be expired!" >> "$ALERT_LOG"
    # 发送邮件/钉钉/企业微信通知(需配置)
    # curl -X POST ...
fi
EOF

sudo chmod +x /opt/cloudmount/scripts/check-cookie.sh

# 添加到 crontab,每小时检查
sudo crontab -l > /tmp/crontab_backup 2>/dev/null || true
sudo tee -a /tmp/crontab_backup << 'EOF'
0 * * * * /opt/cloudmount/scripts/check-cookie.sh
EOF
sudo crontab /tmp/crontab_backup
sudo rm /tmp/crontab_backup

9.13 Linux 与 Windows 方案对比

维度WindowsLinux
挂载方式rclone mount + --network-moderclone mount + --allow-other
服务管理计划任务 / nssmsystemd
卸载命令任务管理器结束进程 / taskkillfusermount -u /mnt/quark
缓存目录D:\CloudMount\cache\vfs/opt/cloudmount/cache/vfs
挂载点Q: 盘符/mnt/quark 目录
开机自启计划任务延迟启动systemd After=alist.service
多用户访问自动支持--allow-other + user_allow_other
性能调优有限内核参数、文件描述符、缓存策略更灵活
Docker 集成较复杂原生支持,可容器化部署

9.14 Docker 部署(进阶)

如需在 Linux 上以 Docker 运行:

# docker-compose.yml
version: '3.8'

services:
  alist:
    image: xhofe/alist:latest
    container_name: alist
    restart: unless-stopped
    ports:
      - "5244:5244"
    volumes:
      - /opt/cloudmount/alist/data:/opt/alist/data
    environment:
      - PUID=1000
      - PGID=1000

  rclone-mount:
    image: rclone/rclone:latest
    container_name: rclone-quark
    restart: unless-stopped
    privileged: true
    cap_add:
      - SYS_ADMIN
    devices:
      - /dev/fuse:/dev/fuse
    depends_on:
      - alist
    volumes:
      - /opt/cloudmount/rclone/rclone.conf:/config/rclone/rclone.conf:ro
      - /opt/cloudmount/cache/vfs:/cache
      - /mnt/quark:/mnt/quark:rshared
    command: >
      mount quark: /mnt/quark
      --vfs-cache-mode writes
      --vfs-cache-max-size 10G
      --vfs-write-back 10s
      --cache-dir /cache
      --allow-other
      --allow-non-empty
      --log-file /cache/rclone.log
      --log-level INFO

启动:

cd /opt/cloudmount
sudo docker-compose up -d

10. 双平台命令速查表

10.1 平台差异速查

操作Windows (PowerShell)Linux (Bash)
启动 AList.\alist.exe server./alist server
AList 服务注册nssm install AListsystemctl enable alist
rclone 配置rclone configrclone config
挂载命令rclone mount quark: Q: --network-moderclone mount quark: /mnt/quark --allow-other
卸载任务管理器 / taskkillfusermount -u /mnt/quark
查看日志Get-Content log -Tailtail -f log
服务状态Get-Servicesystemctl status
缓存清理Remove-Item -Recurserm -rf /opt/cloudmount/cache/vfs/*
开机自启计划任务 / nssmsystemd service

10.2 通用 rclone 参数(双平台适用)

# 核心异步写入参数(Windows & Linux 通用)
--vfs-cache-mode writes       # 写入缓存模式
--vfs-cache-max-size 10G      # 缓存上限
--vfs-write-back 10s          # 延迟回写时间
--vfs-cache-max-age 1h        # 缓存保留时间
--cache-dir <path>            # 缓存目录
--log-file <path>             # 日志文件
--log-level INFO              # 日志级别

# 性能优化参数
--vfs-cache-mode full         # 全缓存模式(读写都缓存)
--vfs-read-ahead 512M         # 预读缓存
--buffer-size 1G              # 传输缓冲区
--transfers 8                 # 并发上传数
--checkers 16                 # 并发检查数

最后更新:2026-07-20

双平台方案核心差异:Windows 用 --network-mode + 计划任务/nssm,Linux 用 --allow-other + systemd。AList 和 rclone 配置逻辑完全一致,Cookie 获取方式也完全相同。

8. 完整命令速查表

8.1 AList 命令

# 启动(前台)
D:\CloudMount\alist\alist.exe server

# 重置密码
D:\CloudMount\alist\alist.exe admin set NEW_PASSWORD

# 查看版本
D:\CloudMount\alist\alist.exe version

8.2 rclone 配置命令

# 交互式配置
rclone config

# 列出远程
rclone listremotes

# 测试连通性
rclone ls quark:

# 上传文件
rclone copy local.txt quark:

# 下载文件
rclone copy quark:remote.txt .

8.3 rclone 挂载命令

# 标准挂载(推荐)
rclone mount quark: Q: `
  --vfs-cache-mode writes `
  --vfs-cache-max-size 10G `
  --vfs-write-back 10s `
  --cache-dir "D:\CloudMount\cache\vfs" `
  --network-mode

# 大文件优化
rclone mount quark: Q: `
  --vfs-cache-mode full `
  --vfs-cache-max-size 50G `
  --vfs-write-back 30s `
  --vfs-read-ahead 512M `
  --cache-dir "D:\CloudMount\cache\vfs" `
  --network-mode

# 只读挂载
rclone mount quark: Q: `
  --read-only `
  --vfs-cache-mode full `
  --vfs-cache-max-size 20G `
  --cache-dir "D:\CloudMount\cache\vfs" `
  --network-mode

8.4 服务管理命令

# 计划任务
Register-ScheduledTask -TaskName "QuarkMount" -Action $action -Trigger $trigger -Settings $settings
Start-ScheduledTask -TaskName "QuarkMount"
Stop-ScheduledTask -TaskName "QuarkMount"
Unregister-ScheduledTask -TaskName "QuarkMount" -Confirm:$false

# nssm 服务
nssm install QuarkMount
nssm start QuarkMount
nssm stop QuarkMount
nssm remove QuarkMount confirm

附录:参考资源


最后更新:2026-07-20

如有问题,优先检查 D:\CloudMount\logs\rclone.log 日志,90% 的问题都能在日志中找到线索。