打开/关闭搜索
搜索
打开/关闭菜单
22
4
1
206
iSrv 百科
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
所有页面
页面分类
上传文件
文档目录
运维管理
Linux栏目
打开/关闭外观设置菜单
无法加载偏好设置。请检查您的网络连接并重试。
重试
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
登录
查看“︁Rclone”︁的源代码
来自iSrv 百科
分享此页面
查看
阅读
查看源代码
查看历史
associated-pages
页面
讨论
更多操作
←
Rclone
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
远程存储 [[挂载]]、传输 [[备份]] 数据。 == 安装 == == 命令参数 == == 挂载 == == 服务 == === 文件服务 === [[Systemd]] === [[WebDAV]] === [[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]]
返回
Rclone
。
查看“︁Rclone”︁的源代码
来自iSrv 百科