BTsync是什么

Resilio Sync (以前叫做 BitTorrent Sync,简称BTsync) 是一款颠覆性的免费跨平台文件同步软件。借助p2p的技术,使多台电脑间进行点对点自动分享/同步文件,电脑即可作为服务端,也可以作为用户端,使用的用户越多,下载也越快。

具体技术原理,可以查看官网的文章:https://www.resilio.com/blog/whats-the-difference-between-peer-to-peer-and-client-server
其实就是类似BT。

这样的服务大众的软件是没有审计的,你可以传输任何内容,于是你懂的,不能过滤和审计的软件都会被墙掉。
在这款软件使用的人数过多了后,当局者终于注意到了这款软件,并且限制了链接。
很多同学在输入了连接密钥后,BTsync一直显示”正在连接”。

解决方案

在了解了btysnc的原理后,我们知道P2P连接中需要tracker服务器。在BT下载中,client需要向tracker服务器报告信息,并获取其他连入网络的peer用户。“连接不上”服务器,是因为gfw阻断了我们和tracker服务器的连接,导致我们获取不到这个key的用户(peer)信息。

google关键词,找到btysnc官方的帮助文章,见
https://help.resilio.com/hc/en-us/articles/210587126-Cannot-connect-to-trackers
(当然这个网址也是要翻墙才能访问的。。

据文章所述,下载 https://config.resilio.com/sync.conf 配置文件,需要保证你的网络可以连接到BTsync的 trakcer 追踪 和 relay 中继服务器。
在配置文件中,可以看到 tracker 和 relay 的ipv4地址和ipv6地址。
我们只需要ipv4的地址,端口也不需要。
总结如下4个地址(因为relays有两个地址一样端口不同):

1
2
3
4
173.244.217.42
209.95.56.60
107.182.230.198
173.244.209.150

将以上4个地址加入路由器/代理软件的白名单配置中,即可解决btysnc无用户的问题。

脚本化

自己写了个一句话命令获取最新的 trakcer 和 relay 服务器的ipv4地址

1
curl -s https://config.resilio.com/sync.conf | jq -r '.trackers[0,1].addr[0:-5],.relays[0,2].addr[0:-5]'

PS: 命令仅支持Linux/macOS
命令依赖强大的jq工具来解析json文件

jq for Linux(Linux一般是默认安装了jq)

1
2
3
4
# CentOS
sudo yum install -y jq
# Debian/Ubuntu
sudo apt install -y jq

jq for macOS

1
brew install jq