Ubuntu 24.04使用Rclone通过WebDAV挂载NAS完整教程
Rclone 是一款强大的命令行工具,支持超过 70 种云存储和网络协议,被誉为”云存储的瑞士军刀”。本教程将详细介绍如何在 Ubuntu 24.04 桌面版上使用 Rclone 通过 WebDAV 协议挂载局域网内的 NAS 设备,实现像本地磁盘一样访问网络存储,并配置 systemd 服务实现开机自动挂载。
教程概述
本教程将带你完成在 Ubuntu 24.04 上使用 Rclone 挂载 NAS 的完整过程。内容包括:
- 环境准备:安装 Rclone 和必要依赖
- 配置远程存储:通过交互式向导配置 WebDAV 连接
- 手动挂载测试:验证配置正确性
- 性能优化:针对大文件和大量小文件传输的参数调优
- 服务配置:创建 systemd 服务实现开机自动挂载
- 问题排查:常见问题的解决方案
实际环境
本教程基于以下实际环境编写:
| 项目 | 配置 |
|---|---|
| 操作系统 | Ubuntu 24.04 LTS 桌面版 |
| 内核版本 | 6.14.0-37-generic |
| Rclone 版本 | v1.72.1 |
| NAS 地址 | 192.168.5.5:5005 |
| 挂载协议 | WebDAV (HTTP) |
| 挂载点 | /mnt/nas |
步骤 1:安装 Rclone
Rclone 提供多种安装方式,推荐使用官方安装脚本以获取最新版本。
方式一:官方脚本安装(推荐)
1 | curl https://rclone.org/install.sh | sudo bash |
命令解释:
curl https://rclone.org/install.sh:从官方下载安装脚本| sudo bash:以管理员权限执行脚本,自动完成下载、解压和安装
方式二:APT 包管理器安装
1 | sudo apt update |
命令解释:
sudo apt update:更新软件包列表sudo apt install rclone:从 Ubuntu 官方仓库安装 rclone
版本说明:APT 仓库中的版本可能不是最新的,如需最新功能建议使用官方脚本安装。
验证安装
1 | rclone --version |
预期输出:
1 | rclone v1.72.1 |
步骤 2:配置 FUSE 权限
Rclone 使用 FUSE(用户空间文件系统)实现挂载功能。为了让其他用户也能访问挂载点,需要启用 user_allow_other 选项。
1 | sudo sed -i 's/#user_allow_other/user_allow_other/g' /etc/fuse.conf |
命令解释:
sudo sed -i 's/#user_allow_other/user_allow_other/g' /etc/fuse.conf:sed -i:直接修改文件内容s/#user_allow_other/user_allow_other/g:取消user_allow_other前的注释符号
sudo chmod 644 /etc/fuse.conf:设置配置文件权限为所有用户可读
验证配置:
1 | cat /etc/fuse.conf | grep user_allow_other |
预期输出:
1 | user_allow_other |
权限说明:此配置允许非 root 用户使用
--allow-other参数,使挂载点对所有用户可见。
步骤 3:创建挂载点目录
创建用于挂载 NAS 的目录:
1 | sudo mkdir -p /mnt/nas |
命令解释:
sudo mkdir -p /mnt/nas:创建挂载点目录-p:递归创建,如果父目录不存在则一并创建
sudo chown $USER:$USER /mnt/nas:将目录所有权设置为当前用户
步骤 4:配置 WebDAV 远程存储
Rclone 提供两种配置方式:交互式向导和命令行直接配置。
方式一:交互式配置向导
适合初次配置,有详细的步骤提示。
启动配置向导
1 | rclone config |
配置步骤
选择新建远程存储:输入
n创建新配置1
2
3
4
5
6
7
8e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> n输入远程存储名称:输入
nas(或其他便于记忆的名称)1
2Enter name for new remote.
name> nas选择存储类型:输入
webdav或对应的数字编号1
2Type of storage to configure.
Storage> webdav输入 WebDAV 服务器地址:
1
2URL of http host to connect to.
url> http://192.168.5.5:5005地址格式:
http://IP地址:端口,根据你的 NAS 实际配置填写。选择 WebDAV 服务商类型:通常选择
other1
2Name of the WebDAV site/service/software you are using.
vendor> other输入用户名:
1
2User name.
user> your_username输入密码:选择
y输入密码1
2
3
4
5
6
7
8
9Password.
y) Yes, type in my own password
g) Generate random password
n) No, leave this optional password blank
y/g/n> y
Enter the password:
password: ********
Confirm the password:
password: ********Bearer Token:直接回车跳过
1
2Bearer token instead of user/pass.
bearer_token>高级配置:选择
n跳过1
2Edit advanced config?
y/n> n确认配置:选择
y保存1
2
3
4
5Keep this "nas" remote?
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y退出配置:输入
q1
e/n/d/r/c/s/q> q
查看配置文件
配置完成后,可查看生成的配置文件:
1 | cat ~/.config/rclone/rclone.conf |
预期输出:
1 | [nas] |
安全说明:密码已由 Rclone 自动加密存储,配置文件中显示的是加密后的字符串。
方式二:命令行直接配置(推荐)
适合快速配置或脚本自动化,无需交互操作。
步骤 1:加密密码
Rclone 要求配置文件中的密码必须加密存储,使用 rclone obscure 命令加密:
1 | rclone obscure "你的密码" |
示例:
1 | rclone obscure "mypassword123" |
输出:
1 | k6RGTJnU2KyxOeZC4V6XMuWsjYVXLVG-iqI8MA |
注意:记录下输出的加密字符串,下一步需要使用。
步骤 2:创建配置文件
确保配置目录存在:
1 | mkdir -p ~/.config/rclone |
直接写入配置文件:
1 | cat > ~/.config/rclone/rclone.conf << 'EOF' |
完整示例:
1 | cat > ~/.config/rclone/rclone.conf << 'EOF' |
验证配置
1 | cat ~/.config/rclone/rclone.conf |
步骤 5:测试连接和目录列表
验证配置是否正确:
1 | rclone lsd nas:/ |
命令解释:
rclone lsd:列出远程存储的目录nas:/:远程存储名称和根路径
预期输出:
1 | -1 2024-07-04 00:00:00 -1 共享文件 |
步骤 6:手动挂载测试
在配置 systemd 服务之前,先手动测试挂载功能:
1 | rclone mount nas:/ /mnt/nas --vfs-cache-mode full --allow-other & |
命令解释:
rclone mount:挂载远程存储nas:/:挂载 NAS 根目录/mnt/nas:本地挂载点--vfs-cache-mode full:启用完整缓存模式,支持读写--allow-other:允许其他用户访问挂载点&:后台运行
验证挂载:
1 | df -h /mnt/nas |
卸载挂载点:
1 | fusermount3 -u /mnt/nas |
步骤 7:创建 Systemd 服务(开机自启动)
创建 systemd 服务文件,实现开机自动挂载和故障自动恢复。
创建服务文件
1 | sudo nano /etc/systemd/system/rclone-nas.service |
服务配置内容
将以下内容写入文件(根据实际情况修改用户名和路径):
1 | [Unit] |
重要:请将
User=cpu、Group=cpu和/home/cpu/替换为你的实际用户名和家目录路径。
参数详解与优化策略
以下是 Rclone mount 的完整参数说明,分为多个类别,帮助你根据实际需求自定义优化策略。
一、基础挂载参数
| 参数 | 默认值 | 说明 |
|---|---|---|
--config |
~/.config/rclone/rclone.conf |
配置文件路径,systemd 服务中建议显式指定 |
--allow-other |
false | 允许其他用户访问挂载点,需要 /etc/fuse.conf 中启用 user_allow_other |
--default-permissions |
false | 使挂载文件遵循文件系统权限,配合 --allow-other 使用可限制访问 |
--umask |
022 | 文件权限掩码,002 表示组用户可写 |
--uid |
当前用户 | 挂载文件的所有者 UID |
--gid |
当前用户 | 挂载文件的所有者 GID |
--attr-timeout |
1s | 文件属性缓存时间,增大可提升性能但可能导致属性不一致 |
二、VFS 缓存模式(核心参数)
--vfs-cache-mode 是最重要的参数之一,决定了文件的缓存策略:
| 模式 | 说明 | 适用场景 |
|---|---|---|
off |
不缓存,直接读写远程 | 只读访问、流媒体播放 |
minimal |
仅缓存同时读写的文件 | 轻量使用、节省磁盘空间 |
writes |
只读文件直接读取,写入文件先缓存到本地 | 推荐:一般使用场景 |
full |
所有读写都通过本地缓存 | 推荐:需要完整文件系统兼容性 |
重要:没有
--vfs-cache-mode时,rclone 只能顺序写入,无法随机读写,大多数应用程序无法正常工作。
三、VFS 缓存控制参数
| 参数 | 默认值 | 说明 |
|---|---|---|
--cache-dir |
系统缓存目录 | 本地缓存文件存储位置 |
--vfs-cache-max-size |
off | 缓存最大空间,超出后自动清理最旧文件 |
--vfs-cache-max-age |
1h | 缓存文件最长保留时间 |
--vfs-cache-min-free-space |
off | 磁盘最小剩余空间,低于此值时清理缓存 |
--vfs-cache-poll-interval |
1m | 检查过期缓存的间隔时间 |
--vfs-write-back |
5s | 文件关闭后延迟多久上传到远程 |
缓存大小建议:
1 | # 大容量缓存(适合频繁访问大文件) |
四、读取性能优化参数
| 参数 | 默认值 | 说明 |
|---|---|---|
--buffer-size |
16M | 每个打开文件的内存缓冲区大小 |
--vfs-read-ahead |
0 | 预读取到磁盘的数据量(仅 full 模式) |
--vfs-read-chunk-size |
128M | 分块读取的初始块大小 |
--vfs-read-chunk-size-limit |
off | 分块大小上限,off 表示无限制 |
--vfs-read-wait |
20ms | 等待顺序读取的时间 |
--vfs-read-chunk-streams |
0 | 并行下载流数量(适合高性能对象存储) |
分块读取说明:
Rclone 采用分块读取策略,初始块大小为 --vfs-read-chunk-size,然后逐次翻倍直到达到 --vfs-read-chunk-size-limit:
1 | # 示例:--vfs-read-chunk-size 100M --vfs-read-chunk-size-limit 500M |
读取优化建议:
1 | # 大文件顺序读取(视频、镜像等) |
五、目录缓存参数
| 参数 | 默认值 | 说明 |
|---|---|---|
--dir-cache-time |
5m | 目录列表缓存时间 |
--poll-interval |
1m | 轮询远程变更的间隔(需远程支持) |
--vfs-fast-fingerprint |
false | 使用快速指纹检测文件变更(不检查哈希) |
目录缓存建议:
1 | # 单用户使用,远程很少被其他方式修改 |
六、传输并发参数
| 参数 | 默认值 | 说明 |
|---|---|---|
--transfers |
4 | 并行传输文件数 |
--checkers |
8 | 并行检查文件数 |
并发建议:
| 场景 | --transfers |
--checkers |
说明 |
|---|---|---|---|
| 保守设置 | 4 | 8 | 适合普通 NAS、低带宽 |
| 局域网 NAS | 8 | 16 | 适合千兆局域网 |
| 高性能存储 | 16-32 | 32-64 | 适合万兆网络、高性能 NAS |
| 云存储(S3等) | 8-16 | 16-32 | 注意 API 限制 |
七、日志与调试参数
| 参数 | 默认值 | 说明 |
|---|---|---|
--log-level |
NOTICE | 日志级别:DEBUG, INFO, NOTICE, ERROR |
--log-file |
无 | 日志输出文件路径 |
--stats |
1m | 统计信息输出间隔 |
--stats-one-line |
false | 单行输出统计信息 |
八、场景化配置模板
场景 1:局域网 NAS 日常使用(本教程采用)
1 | --vfs-cache-mode full \ |
场景 2:低配置设备 / 磁盘空间有限
1 | --vfs-cache-mode writes \ |
场景 3:只读媒体库(视频、音乐等)
1 | --vfs-cache-mode off \ |
场景 4:开发环境(频繁读写小文件)
1 | --vfs-cache-mode full \ |
缓存目录说明
服务配置使用 /home/cpu/.rclone_cache 作为缓存目录(位于用户主目录下),请确保:
- 该路径所在分区有足够空间(建议预留
--vfs-cache-max-size的 1.5 倍) - 使用支持稀疏文件的文件系统(ext4、btrfs、xfs 等),避免使用 FAT/exFAT
- 如需更改缓存位置,同时修改
ExecStartPre和--cache-dir参数 - 请将路径中的
cpu替换为你的实际用户名
性能提示:如果有 SSD,将缓存目录放在 SSD 上可显著提升性能
步骤 8:启用并启动服务
刷新 Systemd 配置
1 | sudo systemctl daemon-reload |
命令解释:
sudo systemctl daemon-reload:重新加载 systemd 管理器配置,使新创建的服务文件生效
启动服务
1 | sudo systemctl start rclone-nas |
检查服务状态
1 | sudo systemctl status rclone-nas |
预期输出:
1 | ● rclone-nas.service - Rclone Mount for NAS WebDAV (Ultra Performance) |
设置开机自启动
1 | sudo systemctl enable rclone-nas |
命令解释:
sudo systemctl enable rclone-nas:创建符号链接,使服务在系统启动时自动运行
步骤 9:验证挂载
检查挂载状态
1 | df -h /mnt/nas |
预期输出:
1 | 文件系统 大小 已用 可用 已用% 挂载点 |
查看挂载内容
1 | ls -la /mnt/nas/ |
测试读写
1 | # 创建测试文件 |
传输优化策略
针对不同的传输场景,可使用以下优化参数:
大文件传输优化
适用于视频、镜像等大文件:
1 | rclone copy /本地路径 nas:/远程路径 \ |
大量小文件传输优化
适用于代码仓库、配置文件等小文件目录:
1 | rclone copy /本地路径 nas:/远程路径 \ |
参数对照表
| 场景 | –transfers | –checkers | –buffer-size |
|---|---|---|---|
| 大文件传输 | 8 | 16 | 256M |
| 小文件传输 | 16 | 32 | 128M |
| 混合场景 | 12 | 24 | 192M |
常用管理命令
服务管理
1 | # 启动服务 |
手动挂载/卸载
1 | # 卸载挂载点 |
查看 Rclone 日志
1 | tail -f ~/rclone-nas.log |
常见问题处理
1. 挂载失败:Transport endpoint is not connected
现象:访问 /mnt/nas 时提示 “Transport endpoint is not connected”
原因:Rclone 进程异常退出,但挂载点未正确清理
解决方案:
1 | # 强制卸载 |
2. 权限错误:allow-other 失败
现象:启动服务时提示 “fusermount: option allow_other only allowed if ‘user_allow_other’ is set”
原因:FUSE 配置未启用 user_allow_other
解决方案:
1 | sudo sed -i 's/#user_allow_other/user_allow_other/g' /etc/fuse.conf |
3. 服务启动失败:找不到配置文件
现象:服务启动失败,日志显示找不到远程存储 “nas”
原因:systemd 服务以指定用户运行,但配置文件路径不正确
解决方案:
确保服务文件中 --config 参数指向正确的配置文件路径:
1 | # 检查配置文件位置 |
4. 网络断开后无法自动恢复
现象:网络恢复后,挂载点仍然不可用
原因:Rclone 未能自动重连
解决方案:服务配置已包含 Restart=on-failure,会自动重启。如需手动恢复:
1 | sudo systemctl restart rclone-nas |
5. 缓存占用过多磁盘空间
现象:~/.rclone_cache 目录占用空间过大
解决方案:
1 | # 查看缓存占用 |
或调整服务配置中的缓存参数:
--vfs-cache-max-size:减小最大缓存大小--vfs-cache-max-age:减少缓存保留时间
配置文件汇总
Rclone 配置文件
路径:~/.config/rclone/rclone.conf
1 | [nas] |
Systemd 服务文件
路径:/etc/systemd/system/rclone-nas.service
FUSE 配置文件
路径:/etc/fuse.conf
关键配置:user_allow_other
参考来源
- Rclone 官方文档:https://rclone.org/docs/
- Rclone WebDAV 配置:https://rclone.org/webdav/
- Rclone Mount 命令:https://rclone.org/commands/rclone_mount/
- Rclone VFS 缓存:https://rclone.org/commands/rclone_mount/#vfs-file-caching
总结
通过以上详细步骤,您已在 Ubuntu 24.04 桌面版上成功完成了使用 Rclone 挂载 NAS 的完整配置:
🎉 配置成果
- ✅ Rclone 安装:最新版本 v1.72.1
- ✅ WebDAV 连接:成功配置并测试连接
- ✅ 本地挂载:NAS 已挂载到
/mnt/nas - ✅ 性能优化:针对大文件和小文件传输的参数调优
- ✅ 自动启动:systemd 服务实现开机自动挂载
- ✅ 故障恢复:服务异常自动重启
🔧 快速恢复清单
重装系统后,按以下顺序恢复 NAS 挂载:
- 安装 Rclone:
curl https://rclone.org/install.sh | sudo bash - 配置 FUSE:修改
/etc/fuse.conf - 创建挂载点:
sudo mkdir -p /mnt/nas - 配置远程存储:
rclone config - 创建服务文件:复制 systemd 配置
- 启用服务:
sudo systemctl enable --now rclone-nas
📁 关键文件位置
| 文件 | 路径 |
|---|---|
| Rclone 配置 | ~/.config/rclone/rclone.conf |
| 服务文件 | /etc/systemd/system/rclone-nas.service |
| 运行日志 | ~/rclone-nas.log |
| 缓存目录 | ~/.rclone_cache |
| 挂载点 | /mnt/nas |
现在您可以像使用本地磁盘一样访问 NAS 存储了!如遇问题,请参考常见问题处理部分或查阅 Rclone 官方文档。