Synology NAS同步Dropbox和GoogleDrive

Posted by GOOD21 on November 23, 2016

Cloud Sync

Synology DSM自带的Cloud Sync支持同步各种网盘到指定的文件夹。

其中百度云Onedrive在国内同步没什么问题,但是DropboxGoogleDrive因为GFW的原因,只有科学上网才可以用。

Docker

Synolocy DSM里面的Docker简直屌爆了,有了它你能干的事情就多了。

首先,你要有一个VPS,搭一个Shadowsocks的Server。推荐搬瓦工的,这里就不细说了。

你可以在注册表里搜shadowsocks-privoxy 选择gd41340811/shadowsocks-privoxy

1

下载之后在映像里点击启动–>高级设置

6

端口设置里,设置你的本地端口,默认是“自动”,你也可以指定固定的未被占用的端口。

3

环境里,要加入你的Shadowsocks Server的SERVER_ADDRSERVER_PORTPASSWORD

4

设置完成之后,启动实例,在控制面板–>网络–>代理服务器–>高级设置,设置代理,其中http和https都对应容器端口8118的本地端口32771。(注:7070就是全局的ss代理,8118是provixy的pac代理,如果想要区分http和https的请求,在这里改就可以了)

5

之后,你的NAS就可以科学上网了。

privoxy

因为群晖NAS只支持http代理,所以必须要用privoxy

gd41340811/shadowsocks-privoxy是根据bluebu这哥们改写的,他写的是代理全部,所有的请求都走shadowsocks代理,但是其实我们只需要Dropbox和GoogleDrive走代理。

github地址:https://github.com/GOOD21/shadowsocks-privoxy dockerhub:https://hub.docker.com/r/gd41340811/shadowsocks-privoxy/
欢迎 fork star

在privoxy里配置改为如下:

# forward-socks5  / 127.0.0.1:7070  .  # 打开就是代理全部请求
forward          /    .
forward-socks5  .dropbox*.com 127.0.0.1:7070  . # 代理dropbox的请求
forward-socks5  .*google*.* 127.0.0.1:7070  . # 代理googledrive相关请求

这里关于dropbox有个地方比较坑,几乎网上的文章写的配置都是这样的:

forward-socks5 .dropbox.com 127.0.0.1:7070 .
forward .dropbox.com:443 .

这样的话,在CloudSync里暂停同步之后再恢复同步是好用的,但是后续的10s一次检查就一直显示连接中,根据抓包的请求发现:

connecting cfl.dropboxstatic.com:443
connecting notify.dropboxapi.com:443

这些请求根本没走代理,改成.dropbox*.com之后就好使了。

在github上有个gfwlist2privoxy的repo,可以把所有gfwlist转换成privoxy的actionfiles,这样就实现了PAC。(然而感觉在NAS上并没有什么卵用…)

按需同步

在CloudSync的设置里可以调整轮询期,默认是10s。

我是拿来做备份的,不需要实时性,所以改成了3600s。

2