扫盲 BTSync(Resilio Sync)——不仅是同步利器,而且是【分布式】网盘

2015-01-18IT IT.网络 IT.翻墙 IT.软件介绍

★引子


  几周前(2014年末),俺发了一篇《博客开通【免翻墙】镜像,另通告网盘电子书的问题》,其中提到了:俺的【Dropbox 网盘】连续几个月总是处于“流量超限”的状态,基本上【没法】用来下载电子书了。当时就提到了俺的备选计划——用 BT sync 来作为“第三网盘”。
  (发本文之前不久)经过多位热心读者的大力支持,经过几天的不懈努力,已经完成了“微软网盘”到“BitTorrent Sync”的迁移工作。再次向这批热心读者表示感谢。可惜俺不能说出他们的名字/网名,以免给他们带来不必要的麻烦——他们只能作为“幕后无名英雄”。
  既然迁移工作已经完成,今天就发一篇教程,向大伙儿简单扫盲一下 BitTorrent Sync 的使用。


★事先说明


  GFW 从2017年7月开始封锁 BTsync 官方的追踪服务器(Tracker Server),导致墙内大部分 BTsync 客户端无法正常工作。对此,俺专门写了一篇博文(如下),介绍应对的招数。
聊聊 GFW 如何封杀 Resilio Sync(BTSync)?以及如何【免翻墙】继续使用?

  另外,“BitTorrent Sync”从2016年开始改用新的名称——“Resilio Sync”,不过俺还是习惯于原来的名称。为了打字省力,本文使用简称“BT Sync”这个名称。


★BT Sync 是啥?


  BT 下载,相信大伙儿都知道的。今儿个要介绍的 BT Sync,跟 BT 下载一样,都是 BitTorrent 公司发明滴玩意儿,都是采用 P2P 协议来进行传输。
  简而言之,BT sync 是一个文件同步工具,让你在几台不同的设备之间,同步文件。
  既然是“文件同步工具”,那么最基本的“增量同步”功能,当然是必不可少的。另外,据俺测试:同步完成之后,如果在“发起端”对文件改名,但是文件内容不变,BT Sync【不会】重传文件内容——这算是比较智能的。


★BT Sync 有啥优点?


◇作为“同步工具”的优点


  首先来说说 BT Sync 作为同步工具的优点。至少有如下几个:
1. 不需要有自己的服务器
2. 不需要有公网 IP——如果两台设备都在【内网】,只要这两台设备都能访问到公网,就可以相互同步
3. 文件数量【无】限制,文件大小【无】限制
4. 支持多种网络形态——可以“公网上互相同步”,也可以是“局域网内相互同步”。
5. 支持各种操作系统(以下列表摘自洋文维基百科)
Microsoft Windows (XP SP3 or later)
Mac OS X (10.6 or later)
Linux
FreeBSD
NAS Devices
Android
Amazon Kindle Fire
iOS
Windows Phone

◇作为“分布式网盘”的优点


  再来说说 BT Sync 作为“分布式网盘”的优点——这也就是为啥,俺决定用它来分享“电子图书馆”和“翻墙工具”。
1. 【没有】存储空间的限制——真要说空间限制,那就是参与节点的硬盘容量(如今【TB 级】的硬盘已经不稀奇了)
2. 【没有】下载流量的限制——与之对比,大部分商业网盘都有这个限制。就是因为这个限制,俺的 Dropbox 网盘才会瘫痪。
3. 【没有】文件大小限制——与之对比,大部分商业网盘对“单个文件大小”都作了限制。
4. 【没有】审查——俺想在上面分享啥,就分享啥——咱们朝廷管不了,美国的版权法也管不了(一想到这点,心里那个爽啊)。
5. 【没有】费用——老读者都明白,俺是很讨厌付费服务的——其实俺不缺钱,俺是担心身份暴露(即使“比特币”支付,也【不是】彻底“匿名”的)
6. 【很难】被封杀——与之对比,国外的商业网盘,GFW 说封杀就封杀(比如俺用来分享电子书的“微软网盘”和“Dropbox 网盘”都撞墙了)

  (看完这些优点,或许你就明白——为啥 BTSync 被称为“Dropbox 终结者”)

◇“安全方面”的优点


  不同的 BT Sync 节点之间进行数据传输时,会采用“强加密”的方式,以防止数据传输流量被嗅探(偷窥)。
  只有参与同步的节点,才能解密;而那些帮你中转的“中转服务器”,是没有办法解密的。因此,即使你的 ISP(电信运营商)监视你的流量,也【无法】知道你通过 BT Sync 传输了啥文件。

◇为啥俺【没】选择 Syncthing?


  BT Sync 流行之后,开源的 BT Sync 替代品也已经出现了——名叫 Syncthing。可惜这款工具【不】适合用来做【大范围】分享。
  考虑到有很多读者建议俺使用 Syncthing 同步电子书,专门说一下俺的顾虑——
用 Syncthing 进行同步,必须进行【双向确认】。如果是少数几个人,“双向确认”没啥关系。但俺提供的电子书,有成千上万的读者进行同步,如果采用 Syncthing 的话,单单“双向确认”这个操作,就会把俺累死 :(


★BT Sync 的下载


  要下载 BT Sync,请猛击它的官网链接 https://www.getsync.com/,就可以看到下载链接。
  如果你下载的是 Windows 上运行的 exe,会自带“数字签名”。为了保险起见,校验一下。(如何校验 exe 的数字签名,请看《扫盲文件完整性校验——关于散列值和数字签名》)


★BT Sync 的安装


  (考虑到大部分人用的是 Windows,俺就以这个系统为例)
  你下载的 exe 文件是【绿色】滴,可以直接双击运行。启动的时候,如果系统弹出一个“登录对话框”让你输入管理员密码,你直接取消掉——因为 BT Sync 在普通用户的权限下,也可以运行。
  (在《如何防止黑客入侵》系列中,俺专门强调过——能不用管理员权限,就尽量别用

  运行之后,有两种可能:
1. 如果系统的 IE 版本足够高,BT Sync 会显示出客户端界面。
2. 如果系统的 IE 版本比较低,BT Sync 会自动弹出系统中的默认浏览器,并打开 BT Sync 的 Web 管理界面(如下图)。万一没有自动弹出浏览器,你可以自己打开浏览器,访问 http://127.0.0.1:8888/ 就可以看到 BT Sync 的管理界面。

不见图 请翻墙


★BT Sync 的使用


  前面说了好多屁话,现在终于说到重点部分啦。
  (本文下面的使用说明,采用是的 BTSync 1.4 版本的截图。后来 BTSync 又出了好几个新版本,界面会有变化。大伙儿只需抓住关键点,无需在意界面的差别

◇“同步密钥”的概念


  要使用 BT Sync 的功能,首先要了解“同步密钥”的概念。
  每个参与同步的目录,都有其密钥。你只有拿到这个密钥,才能同步该目录的文件。
  对于普通的使用场景,每个同步目录对应两个密钥:一个是“读写密钥”,另一个是“只读密钥”。顾名思义,拥有“读写密钥”的节点,可以修改同步目录的内容;反之,拥有“只读密钥”的节点,只能读取,无法修改——所谓的“无法修改”,就是说:即使你修改了同步目录的内容,修改结果也【不会】同步给其它节点(所以这种修改是【无】意义的)。
  对于目前的 1.4.XXX 版本,这两种密钥的长度都是【33 个字符】。“读写密钥”总是以 A 开头;“只读密钥”总是以 B 开头。因此,密钥的有效长度是 32 个字符(有兴趣的同学可以去算一下,此密钥包含多少比特)。这么长的密钥,基本上不用担心被暴力猜解(至少10年之内不用担心)。
  至于如何得到密钥,请看下面的介绍。

◇设置语言


  考虑到大部分同学,不喜欢(或者看不懂)洋文界面。所以第一次启动之后,先把“洋文”改为“天朝文”。配置界面的截图如下。

不见图 请翻墙

不见图 请翻墙

不见图 请翻墙

◇如何“接受同步”


  先从比较简单的“接受同步”说起。
  比如说,俺已经共享了一个“翻墙软件”的同步目录,然后俺把只读密钥公布如下:
BTLZ4A4UD3PEWKPLLWEOKH3W7OQJKFPLG
  当你拿到这个密钥之后,可以通过如下步骤,导入密钥,并在你本机创建一个同步目录。(截图如下)

不见图 请翻墙

不见图 请翻墙

不见图 请翻墙

  完成上述步骤之后,BT Sync 就把你选择的目录作为同步目录。今后俺如果往自己的“翻墙工具”目录增加了新的软件,你的 BT Sync 会自动同步并保存到你的这个目录。
  在这个同步目录里面会创建一个名为 .sync 的子目录。这个 .sync 目录会包含 BT Sync 的一些配置信息(可能该目录的密钥也在里面),你【可别】把它给删喽。

  接受了某个同步目录之后,在 BT Sync 的主界面上,会显示该目录的信息。
  这时候,你可以修改该“同步目录”的“选项参数”。(截图如下)

不见图 请翻墙

不见图 请翻墙

◇如何“发起同步”


  说完“接受同步”,再来说说“发起同步”。

不见图 请翻墙
不见图 请翻墙


  跟前面一样,你可以修改该“同步目录”的“选项参数”。(截图如下)
  由于你是发起方,所以你默认就具有了“读写密钥”。这个“读写密钥”很重要,【不可轻易泄露】。一旦泄露,得到读写密钥的节点,就可以修改这个目录的内容。
  前面提到,同步目录下的 .sync 目录会包含一些配置文件(可能也含有密钥,俺不太确定)。所以,为了保险起见,当你发起【多个】同步目录的时候,这几个目录相互之间【不要】嵌套包含。

不见图 请翻墙

不见图 请翻墙

◇某些全局的“选项”


  最后,来说说全局的“选项”——也就是一开始修改“语言”的地方。
  全局选项有几个地方,俺需要提醒一下。
  1
  如果你的 BT Sync 使用 SOCKS 代理联网,【强烈建议】勾选“使用代理服务器用于主机名解析”这个复选框。
  2
  BT Sync 默认会使用当前系统的主机名,作为它的节点名(也叫“设备名”)。
如果你对隐私比较在意,建议到全局选项的界面中,把 BT Sync 的设备名修改掉,改成一个跟你本人真实身份无关的名称。


★疑难解答


  本章节专门汇总使用过程中碰到的奇奇怪怪的问题。

◇关于“找不到节点”


  如果找不到节点,可以尝试如下操作,或许就可以找到了(有时候要看运气):
1. 先把已经添加的同步目录删除(在界面上选中,点菜单中的“断开连接”)
2. 重新导入密钥

◇关于“系统时间”的误差


  运行 BT Sync 的系统,最好是开启自动时间同步。否则的话,如果系统时间严重不准,会导致 BT Sync 无法正常工作。


★俺分享的资源


  因为今天是扫盲,就先聊最基本的功能使用。以后有空再聊高级话题——其实俺也是刚上手不久,没啥高级话题可说 :(

◇翻墙工具


  在刚才示范的时候,已经提到——俺用 BT Sync 来分享翻墙工具,密钥如下:
BTLZ4A4UD3PEWKPLLWEOKH3W7OQJKFPLG
  用 BT Sync 分享翻墙工具,最大的好处是——可以绕过 GFW。只要有一个【墙内的】BT Sync 节点拿到翻墙工具,那么其它的【墙内节点】也可以同步并得到。而 GFW 是部署在天朝的国际出口。【墙内】两台电脑之间的传输,【不会】经过 GFW。

◇电子书同步密钥


  经过前几篇博文的铺垫,很多电子书爱好者估计已经跃跃欲试了。
  下面就是俺用 BT Sync 分享的电子书目录的密钥。每个目录的结构,跟俺的微软网盘上的目录结构,是基本一致的。
B7P64IMWOCXWEYOXIMBX6HN5MHEULFS4V    俺博客的“离线浏览页面”和“博客电子书制作脚本”
BRSSYZTSAC6UGYTUOJ22L4GCO7QESPPBD 政治(含大量禁书)
BNZ6DOA6W577O6GUNH7C3MY6DWC6FTDQB 心理学
BSH7FXJFVWJTKWGSX5GTWX7PHZZ2D2M7Q 历史
B2FRYA6AXCDW6CF4YJVFWKH2HAXOFICOX 经济
B3WNBTAAFFAODFR6FQ3E3L5BBSJAFNBSJ 管理
BZR4TTYHT25QWUIE6YNMAKWUGBHKSGLC6 社会学
BMBB5YLBIJJAE5H6TP27OS7YCEUKCYHZK 文艺
B6WWVBXPMZDI5IL4KED6AAHA5FO4UNKQF 哲学
BMWWZALG4P56LREF47EE2WSWHZEM4E6BL 军事
BUPSDXFA3TP7KCMLHALRHLIX2FEJEUJFE IT(信息技术)
  后续更新:
  本文发布后又过了5年(2020),俺在电子书网盘上又增加了一个【科普大类】,同步密钥如下:
BKKORLE67ZDUHGHVWAVSRK3N5I7BXLCED    科普

◇电子书清单


  大伙儿可以猛击如下链接,就可以看到【所有】电子书的列表(全都按学科进行分类了)。该清单也包含了上述密钥及相关说明。
https://github.com/programthink/books


俺博客上,和本文相关的帖子(需翻墙)
计算机网络通讯的【系统性】扫盲——从“基本概念”到“OSI 模型”
聊聊 GFW 如何封杀 Resilio Sync(BTSync)?以及如何【免翻墙】继续使用?
聊聊分布式散列表(DHT)的原理——以 Kademlia(Kad) 和 Chord 为例
提供“博客离线浏览”和“电子书制作脚本”——用 BT Sync【免翻墙】自动同步
多台电脑如何【共享】翻墙通道——兼谈【端口转发】的几种方法
如何让【不支持】代理的网络软件,通过代理进行联网(不同平台的 N 种方法)