openWrt使用rclone挂载webDav

前言

觉得路由器(linux)硬盘太小,又不好扩展(x86机器可以插硬盘、但arm机器的硬盘是焊死的无法扩展)。
这个时候,我们可以通过davfs或者rclone将外部资源如webDav挂载到本机上用来作为自己的硬盘。

它有个同类竞品 davfs2,它也与可直接用于挂载服务器的软件nfs类似。

Rclone 是一个的命令行工具,支持在不同对象存储、网盘间同步、上传、下载数据。并且通过一些设置可以实现离线下载、服务器备份等非常实用的功能。Rclone 有很多种使用方式,挂载是其中的一种。

友情提示: 挂载作为一个实验性功能它有很多局限性和问题。挂载后并不能当做一个真正的磁盘来使用,在进行文件操作时会使用本地磁盘进行缓存,即占用本地磁盘空间。使用不当还可能造成磁盘写满、VPS卡死等问题。

安装rclone

# 新版的rclone依赖fuse3,所系需要安装(尽管rclone的子依赖包含fuse但那是旧版本)
opkg install fuse3-utils rclone

配置rclone远端实例

执行命令rclone config,进入会话式配置(远端)界面

挂载webdav(远端)

这是最基本的格式:

# rclone mount webdav:/目录  /挂载至本机的目录
  rclone mount aliyun:/ali  /alidrive

但是为了更好的体验,且有某些需求的情况下,我们需要加一些参数

rclone mount aliyun:/ali  /alidrive --cache-dir /aliyuntmp --allow-other --allow-non-empty --vfs-cache-mode writes --header "Referer:https://www.aliyundrive.com/"

参数解释:
-cache-dir /aliyuntmp 设置缓存,减少和挂载点的直接交互,提升相应速度,-cache-dir /缓存路径
--allow-other 允许除挂载机以外的主机使用
--allow-non-empty 覆盖或清空本地挂载目录
--vfs-cache-mode writes 缓存模式--vfs-cache-mode writes|full|其它值
--header "Referer:https://www.aliyundrive.com/" 绕过阿里网盘近期做校验,解决访问资源403问题
--log-level DEBUG --log-file /rclone-log.txt 日志级别和文件

使用效果

挂载完成后,就可以像本地的文件系统一样操作webdav了。
比如打开文件

root@ImmortalWrt:~# cat /alidrive/temp/a.txt 
哈哈

自启动

在openWrt>系统>启动项 选项卡本地启动脚本,添加如下代码即可

sleep 10 && (rclone mount aliyun:/ali  /alidrive --cache-dir /aliyuntmp --allow-other --allow-non-empty --vfs-cache-mode writes --header "Referer:https://www.aliyundrive.com/" --log-level DEBUG --log-file /rclone-log.txt &)

扩展篇幅--挂载参数

更多参考这里
如果读取大文件导致挂载设备崩溃的话,添加参数--vfs-read-chunk-size 32M,后边的值越小越好,当然会知道速度变慢,自己取舍。
如果写文件导致崩溃的话,加参数--buffer-size 32M

扩展篇幅--使用自带软件包安装

不推荐,错误一堆

安装

如果你不喜欢命令行,可以用openWrt自带的软件包页面安装,搜索luci-app-rclone安装即可。
此包不单单会让rclone在openwrt以界面的存在,还安装了所有需要的依赖

安装完成后,你就会发现,他几乎把所有的根rclone相关的包都装上了

但是要想运行还是存在问题,需要再openWrt自带的软件包页面安装一个fuse3-utils,即可。

使用

之后重启openWrt 就会发现侧边栏多了个 网络存储>Rclone。进去之后,就可以通过网页来使用了

配置远端,和上边的命令行的交互式配置一样内容

验证配置远端是否成功

挂载远端

🙂 不知道为什么,最终我通过页面没挂载成功,这里有解决视频

!!! 切记 不要命令行和界面混用,比如在命令行生成配置,然后在luci-app-rclone中再使用,这样是互不关联的。

扩展篇幅--Clouddrive2

如果是windows,可以试试Clouddrive2。
如果你熟悉docker,那也可以再linux上试试Clouddrive2。

posted @ 2024-02-05 17:58  丁少华  阅读(1937)  评论(0编辑  收藏  举报