在 DigitalOcean VPS 上利用 BTSync 搭建私有云储存

BTSync(BitTorrent Sync)其实是一个点对点的文件传输服务,把它搭建在 VPS 上作为文件储存系统也算是一个比较另类的用法。你可以把它理解为一个私有的 Dropbox,但是它不属于任何一个公司。其所有的控制权,从文件传输到存储再到发布,都在你自己的手上。由于传输过程全程加密,且不经过任何中继服务器,这种基于 BitTorrent 协议的同步方式具有非常高的安全性。理论上只要你不向外提供密钥,就没有第二个人能够获取这些文件,即使它们在整个互联网范围内都是流通的。另外,由于传输过程完全建立在两个终端之间,文件传输速度理论上就是带宽允许的速度。我在实验室的服务器上测试过,在同一个局域网下文件的读写基本跑满了路由器的允许速率。

当然我并没有真的把 BTSync 作为 Dropbox 的替代品来使用,毕竟还需要考虑 VPS 的稳定性、本地和 VPS 之间的传输环境,并且其功能也不如 Dropbox 丰富,比如最有用的文件历史版本的功能就暂时还不提供。其实关键是前一段时间我的 DigitalOcean 获得了$100的 Promo Code,这个数额意味着在未来两年的时间内我基本可以不花钱地使用 Shad0wS0cks、VPN 了,想着最大化利用 DO 的价值,就把这个 BTSync 作为备用的文件备份方案。由于 DigitalOcean 最小的套餐也有20G的硬盘空间,正常情况下这个云储存至少能提供10~15G的空间,这已经比 Dropbox 的免费方案慷慨多了。

以下内容的操作环境为:DigitalOcean,32位 CentOS6.5,20GB SSD Disk;如果用的是其他 Linux 方法也大同小异,貌似 Ubuntu 最为简单,DO 官方就有说明。本地 Windows 需安装 BTSync 的客户端;SSH 客户端用的是 PuTTY。

首先需要确定自己的 Linux 版本,在这里复制适合的 BTSync 客户端下载地址。在 PuTTY 中以 root 登陆,在服务器上新建一个文件夹用来存放待同步的数据,比如在 /usr 下新建一个名为 BTSyncStorage 的文件夹:

mkdir /usr/BTSyncStorage/

然后进入该路径:

cd /usr/BTSyncStorage/:

然后从上一步获取的链接中下载 BTSync,以32位 CentOS6.5 为例(我也不知道为什么链接不是以 .tar.gz 结尾):

wget http://download-new.utorrent.com/endpoint/btsync/os/linux-i386/track/stable

在 /usr/BTSyncStorage/ 中解压:

tar -zxvf stable

这时候用 ls 命令已经可以看到 /usr/BTSyncStorage/ 路径下多出了几个文件

执行程序:

./btsync

这个时候会得到一个端口号 PID=xxxx,最好记下这个数字,等等结束进程时需要用到。把配置文件保存到当前路径:

./btsync --dump-sample-config > sync.conf

然后编辑这个配置文件,需要修改一下端口号以及登陆的账号密码:

vi sync.conf

端口号只要不与其他程序冲突即可,我用的8089;登陆的账号密码自己设定,去掉前方的注释符。

保存 sync.conf 后需要杀掉进程后重启一次,这里的xxxx就是前面记下的 PID:

kill -9 xxxx
./btsync --config sync.conf

到这里命令行的配置就结束了,接下来的操作可以直接在浏览器中可视化完成。浏览器中输入 http://VPS's IP:Port/gui/,比如我的是 http://162.243.xxx.xxx:8089/gui/。然后输入刚才在配置文件中设定的登陆账号和密码。第一次访问会要求接受协议。

然后就进入了 BTSync for Linux 的 GUI 页面。这个时候可以放着这个页面不管,先配置本地的客户端来新建传输并获取密钥。在 Windows 客户端 BitTorrent Sync Beta 中点击添加文件夹,选择想要同步的文件夹。自己用的话可以把链接有效时间和有效次数都设为不限制,权限为读写。然后点击复制,会得到一串 https://link.getsync.com/#xxxxxxx 形式的密钥。

复制密钥,回到刚才浏览器中的 GUI 控制面板中,点击 Enter a key or link,粘贴。

选择 VPS 中存放的路径。确定后就会自动开始同步数据,到这里 BTSync 的搭建就全部完成了。点击用户节点标签可以查看当前连接的用户,其他一些具体的设置可以在偏好设置中调整。

如果本地与 VPS 之间的通讯有问题,可以开启代理。我用的是 Shad0ws0cks 的全局代理,跟浏览器插件 Foxyproxy 一样设置就行了。

之后只要 VPS 正常运行,Linux 端的 BTSync 就会一直保持着在线。只要让 Windows 下客户端保持后台工作,就实现了和 Dropbox 一样的实时监听、同步功能。有多台设备需要同步的话,只需要在客户端下进行相同的设置即可。相比 Dropbox 和其他类似的文件共享服务,在 VPS 上搭建 BTSync 有以下一些优缺点:

优点

  • 安全;
  • 传输速度快;
  • 文件的上传、储存不受监视,内容不受限制;
  • 可控程度高。

缺点

  • 功能不够完善;
  • 普及度不够高,想要分享文件几乎不可行,没人会愿意为了接收一个文件特意去安装一个客户端;
  • 使用体验跟 VPS 的稳定性高度相关;
  • 门槛较高,遇到问题不会有客服。


4 Comments

  1. LeeJon 2016-10-15 Reply

    sync.conf 里面是啥?tar -zxvf stable 解包出来的压根没有这个呢!发出来?

  2. 亲,我这里有个独立ip主机3.8折的广告推荐给你如何?佣金10%,如果可以的话,请加我qq:2954243953

  3. 大肥羊 2014-11-04 Reply

    专业的东西还是交给专业的人去做吧。

Leave a reply

Your email address will not be published.