打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

Rclone:修订间差异

来自iSrv 百科
Bill​(留言 | 贡献)
创建页面,内容为“远程存储 挂载、传输 备份 数据。 == 安装 == == 命令参数 == == 挂载 == == 服务 == === 文件服务 === Systemd === WebDAV === Systemd 分类:Linux”
 
Bill​(留言 | 贡献)
无编辑摘要
 
第16行: 第16行:


[[Systemd]]
[[Systemd]]
<span id="rclone-完整实操教程对接alist阿里云盘解决403防盗链"></span>
= Rclone 完整实操教程(对接Alist+阿里云盘,解决403防盗链) =
<span id="一软件简介"></span>
== 一、软件简介 ==
Rclone 是跨云存储同步工具,支持阿里云盘、OneDrive、S3、Alist WebDAV 等几十种存储。 搭配 Alist 管理多网盘,是服务器备份、异地同步、文件挂载的首选方案。 本次环境:Arch / Ubuntu + Alist + 阿里云盘Open驱动 + Rclone WebDAV对接。
-----
<span id="安装-rclone"></span>
= 1. 安装 Rclone =
<span id="一键安装通用linux"></span>
== 一键安装(通用Linux) ==
<syntaxhighlight lang="bash">curl https://rclone.org/install.sh | sudo bash</syntaxhighlight>
== 验证版本 ==
<syntaxhighlight lang="bash">rclone version</syntaxhighlight>
-----
<span id="配置远端存储对接alist-webdav"></span>
= 2. 配置远端存储(对接Alist WebDAV) =
<span id="方式1交互式配置新手推荐"></span>
== 方式1:交互式配置(新手推荐) ==
<syntaxhighlight lang="bash">rclone config</syntaxhighlight>
操作步骤: 1. 输入 <code>n</code> → 创建新远端 2. 名字填写:<code>alist</code> 3. 存储类型选择:<code>webdav</code> 4. URL:<code>http://你的Alist地址/dav</code> 5. '''Vendor(关键):填写 <code>other</code>,不要选alist'''(避免触发直链API导致403) 6. 填入Alist账号、密码 7. 不需要Bearer令牌,直接回车跳过 8. 确认保存,退出配置。
<span id="方式2直接编辑配置文件"></span>
== 方式2:直接编辑配置文件 ==
配置文件路径:<code>~/.config/rclone/rclone.conf</code>
<syntaxhighlight lang="ini">[alist]
type = webdav
url = http://127.0.0.1:5244/dav
vendor = other
user = admin
pass = 你的Alist密码</syntaxhighlight>
== 测试连通性 ==
<syntaxhighlight lang="bash"># 列出根目录
rclone lsf alist:
# 列出aliyunpan下所有文件
rclone lsf alist:aliyunpan/</syntaxhighlight>
<blockquote>前提:Alist存储设置 1. Web代理:开启 2. WebDAV策略:'''本地代理'''(不再302直链跳转,彻底规避阿里云403 Forbidden)
</blockquote>
-----
<span id="核心命令大全日常高频使用"></span>
= 3. 核心命令大全(日常高频使用) =
<span id="列出文件"></span>
== 3.1 列出文件 ==
<syntaxhighlight lang="bash"># 列出目录结构
rclone ls alist:aliyunpan/Data/
# 只打印文件路径(适合脚本)
rclone lsf alist:aliyunpan/Data/</syntaxhighlight>
<span id="下载文件最常用"></span>
== 3.2 下载文件(最常用) ==
<span id="单文件下载解决403防盗链参数"></span>
=== 单文件下载(解决403防盗链参数) ===
<syntaxhighlight lang="bash">rclone copy alist:aliyunpan/Data/backup.tar.gz ./ \
--no-traverse \
--header Referer:"https://www.aliyundrive.com" \
--progress</syntaxhighlight>
参数说明: - <code>--no-traverse</code>:禁止批量遍历目录,减少API请求,防止风控 - <code>--header</code>:携带Referer绕过CDN防盗链 - <code>--progress</code>:显示实时下载进度
<span id="整目录同步双向备份"></span>
=== 整目录同步(双向备份) ===
<syntaxhighlight lang="bash"># 云端 → 本地(只新增,删除远端文件不会删除本地)
rclone sync alist:aliyunpan/Data/BackUp /home/bill/backup --progress
# 严格双向同步,本地和云端完全一致(慎用--delete,会删除多余文件)
rclone sync alist:aliyunpan/Data/BackUp /home/bill/backup --delete --progress</syntaxhighlight>
<span id="上传本地文件到云盘"></span>
== 3.3 上传本地文件到云盘 ==
<syntaxhighlight lang="bash">rclone copy ./opt_affine.tar.gz alist:aliyunpan/Data/</syntaxhighlight>
<span id="文件移动重命名"></span>
== 3.4 文件移动、重命名 ==
<syntaxhighlight lang="bash"># 云端内部移动文件
rclone moveto alist:old.tar.gz alist:aliyunpan/tmp/new.tar.gz</syntaxhighlight>
<span id="校验文件完整性"></span>
== 3.5 校验文件完整性 ==
<syntaxhighlight lang="bash">rclone check ./local.tar.gz alist:aliyunpan/Data/local.tar.gz</syntaxhighlight>
-----
<span id="rclone-fuse-挂载网盘到本地目录重点"></span>
= 4. Rclone FUSE 挂载网盘到本地目录(重点) =
把Alist网盘挂载成本地文件夹,像操作本地硬盘一样读写文件。
== 前置条件 ==
# 安装fuse工具
<syntaxhighlight lang="bash"># Ubuntu/Debian
apt install fuse3
# Arch
pacman -S fuse3</syntaxhighlight>
<ol start="2" style="list-style-type: decimal;">
<li>开启普通用户权限 编辑 <code>/etc/fuse.conf</code>,取消注释:</li></ol>
<syntaxhighlight lang="ini">user_allow_other</syntaxhighlight>
<span id="后台挂载命令适配阿里云杜绝io报错403"></span>
== 4.1 后台挂载命令(适配阿里云,杜绝IO报错+403) ==
<syntaxhighlight lang="bash"># 先清理旧挂载
pkill rclone
fusermount -u /home/bill/mnt/aliyun
# 执行挂载
rclone mount alist:aliyunpan /home/bill/mnt/aliyun \
  --allow-other \
  --vfs-cache-mode writes \
  --poll-interval 0 \
  --no-modtime \
  --no-size \
  --no-checksum \
  --daemon</syntaxhighlight>
<span id="参数详解针对阿里云403优化"></span>
=== 参数详解(针对阿里云403优化) ===
{| class="wikitable"
|-
! 参数
! 作用
|-
| <code>--vfs-cache-mode writes</code>
| 只缓存写入,不预读取全部文件信息,避免批量触发阿里风控,不要用full
|-
| <code>--poll-interval 0</code>
| 关闭自动轮询刷新目录,减少API调用
|-
| <code>--no-modtime</code>
| 不读取文件修改时间,规避WebDAV权限读取失败
|-
| <code>--no-size --no-checksum</code>
| 禁止预获取文件大小与校验,防止提前触发下载403
|-
| <code>--daemon</code>
| 后台守护进程运行
|}
<span id="卸载挂载点"></span>
== 4.2 卸载挂载点 ==
<syntaxhighlight lang="bash">fusermount -u /home/bill/mnt/aliyun</syntaxhighlight>
<span id="开机自动挂载写入fstab"></span>
== 4.3 开机自动挂载(写入fstab) ==
<syntaxhighlight lang="ini">alist:aliyunpan  /home/bill/mnt/aliyun  fuse.rclone  allow_other,vfs-cache-mode=writes,poll-interval=0,no-modtime,_netdev  0  0</syntaxhighlight>
<code>_netdev</code>:等待网络就绪再挂载,避免开机失败。
-----
<span id="定时自动备份shell脚本-crontab"></span>
= 5. 定时自动备份(Shell脚本 + Crontab) =
<span id="一键备份脚本-backup.sh"></span>
== 一键备份脚本 backup.sh ==
<syntaxhighlight lang="bash">#!/bin/bash
# 云端路径
REMOTE="alist:aliyunpan/Data"
# 本地保存目录
LOCAL="/home/bill/bak"
LOG="/var/log/rclone-bak.log"
echo "==== 开始同步 $(date) ====" >> $LOG
rclone sync $REMOTE $LOCAL --delete --progress >> $LOG 2>&1
echo "==== 同步结束 $(date) ====" >> $LOG</syntaxhighlight>
授权执行:
<syntaxhighlight lang="bash">chmod +x backup.sh</syntaxhighlight>
<span id="添加定时任务每天凌晨4点自动同步"></span>
== 添加定时任务(每天凌晨4点自动同步) ==
<syntaxhighlight lang="bash">crontab -e</syntaxhighlight>
写入:
<pre class="cron">0 4 * * * /home/bill/backup.sh</pre>
-----
<span id="避坑指南你遇到的403问题总结"></span>
= 6. 避坑指南(你遇到的403问题总结) =
<span id="问题1rclone-copy-报错-403-forbidden"></span>
== 问题1:rclone copy 报错 403 Forbidden ==
=== 根源 ===
Alist WebDAV策略为「302重定向」,直接返回阿里云CDN直链,触发防盗链。 ### 解决方案 1. Alist存储设置: - 开启 Web代理 - WebDAV策略改为:'''本地代理''' 2. Rclone配置 <code>vendor=other</code>,不要使用alist专属API。 3. copy命令增加 <code>--no-traverse</code> + Referer请求头。
<span id="问题2挂载目录空白ls看不到文件"></span>
== 问题2:挂载目录空白,ls看不到文件 ==
# 不要用sudo执行mount命令,普通用户运行;
# 开启 <code>/etc/fuse.conf</code> 里的 <code>user_allow_other</code>;
# 不要使用 <code>--vfs-cache-mode full</code>,改用 <code>writes</code>。
<span id="问题3挂载后cp文件提示-inputoutput-error"></span>
== 问题3:挂载后cp文件提示 Input/output error ==
文件读取触发阿里云直链403。 ✅ 优先使用 <code>rclone copy</code> 命令下载,不要直接读取挂载目录里的大压缩包。
<span id="问题4普通用户挂载失败root用户正常"></span>
== 问题4:普通用户挂载失败,root用户正常 ==
权限限制:fuse不允许非root无权限挂载,开启 <code>user_allow_other</code> 即可解决。
-----
<span id="常用命令速查表"></span>
= 7. 常用命令速查表 =
{| class="wikitable"
|-
! 功能
! 命令
|-
| 查看远端文件
| rclone lsf alist:path
|-
| 下载单文件
| rclone copy remote:file ./
|-
| 目录同步
| rclone sync remote:src local:dst
|-
| 挂载网盘
| rclone mount … –daemon
|-
| 卸载
| fusermount -u 挂载目录
|-
| 杀掉后台进程
| pkill rclone
|}
-----
<span id="进阶优化"></span>
= 8. 进阶优化 =
# '''带宽限速'''
<syntaxhighlight lang="bash">rclone copy ... --bwlimit=10M</syntaxhighlight>
<ol start="2" style="list-style-type: decimal;">
<li>'''断点续传大文件'''</li></ol>
<syntaxhighlight lang="bash">rclone copy --contimeout=60 --retries=3</syntaxhighlight>
<ol start="3" style="list-style-type: decimal;">
<li>多线程下载:</li></ol>
<syntaxhighlight lang="bash">--transfers=4</syntaxhighlight>
如果你需要,我可以再补充一份:多网盘(阿里云+Cloudflare R2+NAS)三副本异地备份的完整rclone脚本。


[[分类:Linux]]
[[分类:Linux]]

2026年6月25日 (四) 19:36的最新版本

远程存储 挂载、传输 备份 数据。

安装

命令参数

挂载

服务

文件服务

Systemd

Systemd


Rclone 完整实操教程(对接Alist+阿里云盘,解决403防盗链)

一、软件简介

Rclone 是跨云存储同步工具,支持阿里云盘、OneDrive、S3、Alist WebDAV 等几十种存储。 搭配 Alist 管理多网盘,是服务器备份、异地同步、文件挂载的首选方案。 本次环境:Arch / Ubuntu + Alist + 阿里云盘Open驱动 + Rclone WebDAV对接。



1. 安装 Rclone

一键安装(通用Linux)

curl https://rclone.org/install.sh | sudo bash

验证版本

rclone version

2. 配置远端存储(对接Alist WebDAV)

方式1:交互式配置(新手推荐)

rclone config

操作步骤: 1. 输入 n → 创建新远端 2. 名字填写:alist 3. 存储类型选择:webdav 4. URL:http://你的Alist地址/dav 5. Vendor(关键):填写 other,不要选alist(避免触发直链API导致403) 6. 填入Alist账号、密码 7. 不需要Bearer令牌,直接回车跳过 8. 确认保存,退出配置。

方式2:直接编辑配置文件

配置文件路径:~/.config/rclone/rclone.conf

[alist]
type = webdav
url = http://127.0.0.1:5244/dav
vendor = other
user = admin
pass = 你的Alist密码

测试连通性

# 列出根目录
rclone lsf alist:
# 列出aliyunpan下所有文件
rclone lsf alist:aliyunpan/

前提:Alist存储设置 1. Web代理:开启 2. WebDAV策略:本地代理(不再302直链跳转,彻底规避阿里云403 Forbidden)


3. 核心命令大全(日常高频使用)

3.1 列出文件

# 列出目录结构
rclone ls alist:aliyunpan/Data/
# 只打印文件路径(适合脚本)
rclone lsf alist:aliyunpan/Data/

3.2 下载文件(最常用)

单文件下载(解决403防盗链参数)

rclone copy alist:aliyunpan/Data/backup.tar.gz ./ \
--no-traverse \
--header Referer:"https://www.aliyundrive.com" \
--progress

参数说明: - --no-traverse:禁止批量遍历目录,减少API请求,防止风控 - --header:携带Referer绕过CDN防盗链 - --progress:显示实时下载进度

整目录同步(双向备份)

# 云端 → 本地(只新增,删除远端文件不会删除本地)
rclone sync alist:aliyunpan/Data/BackUp /home/bill/backup --progress

# 严格双向同步,本地和云端完全一致(慎用--delete,会删除多余文件)
rclone sync alist:aliyunpan/Data/BackUp /home/bill/backup --delete --progress

3.3 上传本地文件到云盘

rclone copy ./opt_affine.tar.gz alist:aliyunpan/Data/

3.4 文件移动、重命名

# 云端内部移动文件
rclone moveto alist:old.tar.gz alist:aliyunpan/tmp/new.tar.gz

3.5 校验文件完整性

rclone check ./local.tar.gz alist:aliyunpan/Data/local.tar.gz

4. Rclone FUSE 挂载网盘到本地目录(重点)

把Alist网盘挂载成本地文件夹,像操作本地硬盘一样读写文件。

前置条件

  1. 安装fuse工具
# Ubuntu/Debian
apt install fuse3
# Arch
pacman -S fuse3
  1. 开启普通用户权限 编辑 /etc/fuse.conf,取消注释:
user_allow_other

4.1 后台挂载命令(适配阿里云,杜绝IO报错+403)

# 先清理旧挂载
pkill rclone
fusermount -u /home/bill/mnt/aliyun

# 执行挂载
rclone mount alist:aliyunpan /home/bill/mnt/aliyun \
  --allow-other \
  --vfs-cache-mode writes \
  --poll-interval 0 \
  --no-modtime \
  --no-size \
  --no-checksum \
  --daemon

参数详解(针对阿里云403优化)

参数 作用
--vfs-cache-mode writes 只缓存写入,不预读取全部文件信息,避免批量触发阿里风控,不要用full
--poll-interval 0 关闭自动轮询刷新目录,减少API调用
--no-modtime 不读取文件修改时间,规避WebDAV权限读取失败
--no-size --no-checksum 禁止预获取文件大小与校验,防止提前触发下载403
--daemon 后台守护进程运行

4.2 卸载挂载点

fusermount -u /home/bill/mnt/aliyun

4.3 开机自动挂载(写入fstab)

alist:aliyunpan  /home/bill/mnt/aliyun  fuse.rclone  allow_other,vfs-cache-mode=writes,poll-interval=0,no-modtime,_netdev  0  0

_netdev:等待网络就绪再挂载,避免开机失败。



5. 定时自动备份(Shell脚本 + Crontab)

一键备份脚本 backup.sh

#!/bin/bash
# 云端路径
REMOTE="alist:aliyunpan/Data"
# 本地保存目录
LOCAL="/home/bill/bak"
LOG="/var/log/rclone-bak.log"

echo "==== 开始同步 $(date) ====" >> $LOG
rclone sync $REMOTE $LOCAL --delete --progress >> $LOG 2>&1
echo "==== 同步结束 $(date) ====" >> $LOG

授权执行:

chmod +x backup.sh

添加定时任务(每天凌晨4点自动同步)

crontab -e

写入:

0 4 * * * /home/bill/backup.sh

6. 避坑指南(你遇到的403问题总结)

问题1:rclone copy 报错 403 Forbidden

根源

Alist WebDAV策略为「302重定向」,直接返回阿里云CDN直链,触发防盗链。 ### 解决方案 1. Alist存储设置: - 开启 Web代理 - WebDAV策略改为:本地代理 2. Rclone配置 vendor=other,不要使用alist专属API。 3. copy命令增加 --no-traverse + Referer请求头。

问题2:挂载目录空白,ls看不到文件

  1. 不要用sudo执行mount命令,普通用户运行;
  2. 开启 /etc/fuse.conf 里的 user_allow_other;
  3. 不要使用 --vfs-cache-mode full,改用 writes。

问题3:挂载后cp文件提示 Input/output error

文件读取触发阿里云直链403。 ✅ 优先使用 rclone copy 命令下载,不要直接读取挂载目录里的大压缩包。

问题4:普通用户挂载失败,root用户正常

权限限制:fuse不允许非root无权限挂载,开启 user_allow_other 即可解决。



7. 常用命令速查表

功能 命令
查看远端文件 rclone lsf alist:path
下载单文件 rclone copy remote:file ./
目录同步 rclone sync remote:src local:dst
挂载网盘 rclone mount … –daemon
卸载 fusermount -u 挂载目录
杀掉后台进程 pkill rclone



8. 进阶优化

  1. 带宽限速
rclone copy ... --bwlimit=10M
  1. 断点续传大文件
rclone copy --contimeout=60 --retries=3
  1. 多线程下载:
--transfers=4

如果你需要,我可以再补充一份:多网盘(阿里云+Cloudflare R2+NAS)三副本异地备份的完整rclone脚本。

目录