@搁浅被注册了3年前
Rclone 是一个的命令行工具,支持在不同对象存储、网盘间同步、上传、下载数据。支持多种国外主流网盘比如 Google Drive、 OneDrive、BOX、AWS S3 等。
最近折腾在群晖 NAS 里使用 rclone 挂载 Google Drive 无限容量的共享云端硬盘(团队盘),反复失败最后发现是代理问题。
rclone 并不会走系统(群晖)的全局代理,需要在当前终端中设置梯子的 HTTP 代理才能顺利挂载 Google Drive。
export HTTP_PROXY=http://127.0.0.1:1087; export HTTPS_PROXY=http://127.0.0.1:1087;
实现挂载的方案有两种:
- 使用官方 rclone ,配置群晖的开机启动脚本;
- 使用 docker 版 rclone,设置自动重新启动。
方法 1:使用官方 rclone 进行配置(推荐使用)
使用 root 用户登录群晖 SSH,设置代理
安装 rclone:
curl https://rclone.org/install.sh | sudo bash
然后配置 rclone:
rclone config
按照提示完成操作,最后得到 rclone.conf 配置文件。安装配置教程参考
配置完成后执行 rclone config file
得到配置文件 rclone.conf 的路径留用,或使用 cp 命令复制到比如 /volume1/homes/admin/Rclone
目录下。
在群晖控制面板里新增共享文件夹 GoogleDrive
作为挂载目录,去除勾选“使用回收站”,否则可能会报目录不为空的错误。
尝试执行下面的命令启动 rclone,确保已经在前一步对当前终端设置了 HTTP 代理。
rclone --config=/volume1/homes/admin/Rclone/rclone.conf mount GoogleDrive: /volume1/GoogleDrive --allow-other --allow-non-empty --buffer-size 32M --vfs-read-chunk-size=32M --vfs-read-chunk-size-limit 2048M --vfs-cache-mode writes --dir-cache-time 96h --daemon
--config
字段为配置文件 rclone.conf 的绝对路径;GoogleDrive: /volume1/GoogleDrive
,中 GoogleDrive
为新建 rclone 配置时设置的 name
字段,冒号后面留空默认为云盘根目录,/volume1/GoogleDrive
为前面新建的挂载目录的绝对路径。
使用 df -h
命令查看当前挂载的卷,出现 GoogleDrive: 显示大小为 1.0P 代表挂载成功,实际无限容量。
打开 File Station 应用即可查看 GoogleDrive 目录。

群晖设置开机启动:
控制面板,任务计划,新增,触发的任务,用户自定义的脚本,默认开机事件,运行命令填写,文件为开机启动脚本绝对路径 :
bash /volume1/homes/admin/Rclone/GoogleDrive.sh
开机启动脚本:(均需要使用绝对路径)
#!/bin/bash export HTTP_PROXY=http://127.0.0.1:1087; export HTTPS_PROXY=http://127.0.0.1:1087; /usr/bin/rclone --config=/volume1/homes/admin/Rclone/rclone.conf mount GoogleDrive: /volume1/GoogleDrive --allow-other --allow-non-empty --buffer-size 32M --vfs-read-chunk-size=32M --vfs-read-chunk-size-limit 2048M --vfs-cache-mode writes --dir-cache-time 96h --daemon sleep 10s df -h
方法 2:使用 docker 版,支持设置代理
使用方法 2 需要有可用的 rclone.conf 配置文件。参考方法 1
一开始苦于代理的问题,方向一度转移成 docker 方案。官方 docker 镜像设置了 ENTRYPOINT
为 rclone
,无法预先执行代理设置命令,而且文档支持有限,实际问题也很多很迷。遂另寻它法,找到了另一个 docker 镜像,在它的基础上加入了代理设置方案。
Github 地址:https://github.com/gqbre/docker-rclone-proxy
使用 root 用户登录群晖 SSH,执行下面的命令新建 docker 容器
docker run -d --name docker-rclone-proxy --restart=always --cap-add SYS_ADMIN --device /dev/fuse --security-opt apparmor:unconfined -e RemotePath="GoogleDrive:" -e MountCommands="--allow-other --allow-non-empty --buffer-size 32M --vfs-read-chunk-size=32M --vfs-read-chunk-size-limit 2048M --vfs-cache-mode writes --dir-cache-time 96h" -e Proxy="true" -e ProxyTarget="172.17.0.1" -v /volume1/homes/admin/Rclone:/config -v /volume1/GoogleDrive:/mnt/mediaefs:shared gqbre/docker-rclone-proxy
可选代理配置 -e Proxy="true" -e ProxyTarget="172.17.0.1" -e ProxyPort="1087"
, 其中ProxyTarget
设置为提供代理的地址,我是群晖 docker 在 host
网络模式下跑 v2ray
做的梯子 ,地址 172.17.0.1
为群晖(Linux)下容器访问宿主主机的地址,即群晖自身的 localhost/127.0.0.1
。
除非你使用宿主网络模式 --network host
启动 docker 容器,否则不要使用 localhost/127.0.0.1
,它访问的是 docker 容器内部的回环地址。
/volume1/homes/admin/Rclone
为 rclone.conf 配置文件所在的目录;:shared
为挂载参数,如果遇到挂载参数错误、linux mounts: path xx is mounted on xx but it is not a shared mount
、Docker API 失败
等问题时,先执行下面的命令再执行 docker run
:
sudo mount --make-shared /volume1
/volume1
为你本地挂载目录 GoogleDrive
所在的主卷。
执行 docker run
后会返回容器 ID,群晖 DSM 界面的 Docker 客户端会出现一个名为 docker-rclone-proxy
的新容器。
PS. 不要在 DSM 的 Docker 客户端上编辑此 docker 容器的任何设置,否则大概率会造成容器损坏,因为群晖的 docker 实现并不完整。
群晖设置开机启动:
此容器设置了自动重启,方便实现开机自动挂载。但是群晖下应(基)该(本)需要先执行 mount --make-shared
,这降低了 docker 方法挂载的方便性,还需要通过任务计划设置开机启动,参考方法 1 。
开机启动脚本:(需要保留前面生成的容器)
mount --make-shared
在实际使用过程中,重启系统后会遇到在 File Station 应用用无法看到 GoogleDrive 目录或者目录为空但实际已经挂载成功(通过 SMB 连接查看)的情况。
此时需要打开群晖控制面板点击共享目录即可,甚至点开 Docker 客户端或者连接一下 SMB 服务都行,理由大概是会刷新一下挂载卷?真玄学操作,而方法 1 启动脚本最后的 df -h
用途其实就是这个。
推荐使用方法 1,无需干预即可实现自动挂载。本文同样也适用于挂载 OneDrive,去掉代理就行了,毕竟巨硬交了保护费。
Google Drive 共享云端硬盘(团队盘)申请:https://wangdalao.com/1949.html
Rclone 操作参考:https://p3terx.com/archives/rclone-advanced-user-manual-common-command-parameters.html
群晖 NAS 挂载 Google Drive 共享云端硬盘(团队盘)
-
Google Chrome 93
Windows
-
Google Chrome 92
Windows
大佬我按照你第一个方法挂载成功了,但是我如果在OneDrive客户端或者网页端修改了文件或者上传删除了文件,在群晖里没有变化要怎么刷新啊?群晖还是挂载当时显示的文件,上传的新文件都没显示,删除的旧文件却还在显示
-
Google Chrome 90
Windows
挂在成功了,可是我白裙所有的hyper backup的备份任务全部出错了,不能再备份了。显示无法备份dsm配置,卸载掉挂载的Google drive就又可以了。不知道你怎么解决的。我是群晖ds220+,墙外。谢谢
-
Google Chrome 78
Android 10
挂载后,群晖file station无法上传文件,CP命令可以,请问大佬怎么解决
-
Google Chrome 91
Mac OS X 11.2.1
带佬nb,清晰明了啊
-
Google Chrome 88
Windows
你好,群晖docker使用很成功,但是有个问题,就是目录挂载后不是实时刷新的,文件变化都看不到,需要重启docker才能看到新的文件变化,这个应该怎么修改参数呢?
-
Google Chrome 88
Mac OS X 10.14.6
不太理解。家里用软路由弄好了科学上网,然后根据你文章开头的代码,安装rclone提示“rl: (7) Failed to connect to 127.0.0.1 port 1087: Connection refused”,我还是搞不明白群晖怎么通过软路由科学上网啊,能说的详细一些吗?谢谢你
-
Google Chrome 87
Android 9
绑定,还是这个大佬讲的全面
-
Google Chrome 84
Mac OS X 10.16.0
已经用起来了,多谢!
-
Google Chrome 83
Windows
大神 群晖5.2怎么取得root 权限 不会装rclone 和晚上6.2的教程差异极大 蒙圈了
-
Google Chrome 83
Mac OS X 10.15.4
博主你好,我因为只想让这个程序爬墙,而不想让整个NAS爬墙,所以选择了docker的方案。
但,虽然安装、运行、都没有报错,就是挂载完了,群晖文件下面看不到内容。
使用df -h查看,发现并没有挂载成功,不过docker运行没报错。。一直找不到原因 -
Google Chrome 80
Windows
你好,请问我挂载好了之后,无法通过filestation上传文件到网盘,有什么办法解决吗
-
Google Chrome 80
Windows
大佬 我用的是软路由在路由上搭建的梯子,请问要怎么设置让我的群辉可以出国???谢谢
-
Google Chrome 80
Windows
老哥通过你的方法挂在成功了 ,但是文件夹文件视频可以在线播放。但是文件不让拷贝也不让上传。
-
Google Chrome 76
Windows
老哥 能帮我指导下吗?我的群晖挂载失败,最后一步输入授权码后就报错,估计是群晖没有走代理的原因2020/04/23 11:31:33 Failed to configure token: failed to get token: Post https://oauth2.googleapis.com/token: read tcp 192.168.1.25:46300->172.217.160.74:443: read: connection reset by peer
-
Google Chrome 78
Windows
hi,这个能挂载onedrive吗?
-
群辉怎么安装fuse