Total Pageviews

Tuesday 19 September 2017

Resilio Sync翻墙方案 — 解决无法获得追踪器列表等问题


本方案适用于Resilio Sync 2.4、2.5系列,其他版本未经测试,但应当可用。
现状
GFW主要对Sync进行如下干扰:
  1. DNS污染,这种情况下会提示「Cannot get the list of trackers」。其实是污染了config.getsync.com(或config.resilio.com),其他如update.resilio.com等,只是影响软件的升级,并不影响日常下载上传。config.getsync.com的作用是在程序启动初期,从http://config.getsync.com/sync.conf 下载一个配置文件(sync.conf),该文件里包含了Tracker Server、Relay Server的IP V4/V6地址用于Sync启动时获取节点; 如果无法获得Sync.conf,则无法连接到Tracker Server,自然无法获得节点。
  2. 阻断访问Tracker Server,Sync的Tracker Server共有两个:
  • 173.244.217.42
  • 209.95.56.60
我所在的联通已经封锁了对这两个IP的访问,也就无法获得节点更新。如果您所在运营商并未如此限制,则只进行解决方法1即可。
解决方法
  1. DNS污染的问题比较容易解决,可以使用dnscrypt或者直接将正确的域名地址写在hosts里面,以下提供一组(来自OpenDNS):
  • 13.32.193.199
  • 13.32.193.207
  • 13.32.193.246
  • 13.32.193.204
  • 13.32.193.181
  • 13.32.193.186
  • 13.32.193.84
  • 13.32.193.86
2. Sync自身虽然提供了代理设置功能,但如果将代理设置为翻墙代理,一方面会将所有的流量都交给代理来处置,比较浪费;另一方面Sync的连接数很高,会给代理软件带来比较大的处理负担(CPU占用超高,假死),所以最好是仅将Tracker Server通过翻墙代理访问,其他对节点的访问仍然直连。即不在Sync里面设置代理,而是使用Proxifier,如下图在Proxifier里面创建一条规则:


注1: 我所用代理软件为Surge,所以转向Sock5代理端口为6153,请大家根据实际情况配置即可。
注2: 虽然GFW也阻止了对Relay Server的访问,但不建议将Relay Server也通过翻墙代理访问,那样会带来比较大的流量消耗。
如设置生效,在Proxifier的中看到的效果应当如下图,有从Tracker中返回的数据。


如果完成上述内容后,在线节点数仍未改善,可以重启一下Sync。



FROM  https://medium.com/@dawnray/resilio-sync%E7%BF%BB%E5%A2%99%E6%96%B9%E6%A1%88-d6f0551fec48
--------

以尽可能快的速度传输文件——Resilio Sync 的一点使用笔记


其实需求很简单:
  • 在国内传输文件
  • 文件比较大(> 10G)
  • 不依靠商业网盘(Google Drive ,百度云)之类的中转,也不想(通过服务器转存的方式)中转
  • 尽可能逼近物理带宽极限
折腾了两天,终于有一点进展了,遂决定记下来,分享给和有着同样需求的朋友们。

Direct

可能有人会说,同步文件不是很容易嘛,直接 rsync 就好了,的确,如果大家都有公网 IP ,且互相信任 SSH 的话,一个 rsync 再加上 --progress -avz 之类的参数是非常舒服的,尤其适合海外高带宽 VPS/物理服务器之间传输一些很大的东西,但是在本文的应用场景中,不是这样。
其次对于一方有公网 IP 的话,我们可以在有公网 IP 的一方开一个服务器(在大陆的话不能监听 80,443 等常用端口,因为这些端口已经被 ISP 给封掉了),如果数据不重要的话直接 php -S 0.0.0.0:8888 这样就可以直接让对方来访问并且下载了(ISP 想劫持的爱咋咋地),严谨一点的话可以用 certbot 弄个证书,这样可以稍微安全一点,这种方案我们需要考虑的问题是 DDNS 和公网 IP,前者配置比较麻烦,后者… 有的时候弄不到。

Syncthing

在尝试的过程中试过这一个开源产品,幸运的是,它可以在国内正常使用,不幸的是,它的速度(至少在我的网络环境下)非常慢,由于双方都没有公网 IP,只能依赖官方提供的(其实也是志愿者提供的) Relay 进行中继,分到过新加坡的中继服务器,速度非常慢,大约 40 K/s 上下。

Resilio Sync + Private Peer

所以此时我们就需要一个比较好的方案可以兼顾不同的网络环境(是否具有公网 IP),本文介绍的方案是自建 “Relay” 的 Resilio Sync 方案。
名词约定:所有运行了 Resilio Sync 并且填入了 Key(即参与同步)的机器被称为 Peer,如果是自己的 VPS(即不需要文件,只是作为中继的 Peer)我们称为 Relay。
对于 Resilio Sync 网上已经有了很多的教程,且现在配置文件地址似乎已经可以直接访问(即在大陆可以直接使用),对于桌面端用户可以直接下载最新版使用:Resilio: Download File Sync Software for Windows, Mac, Linux
具体的使用方法网上已经有了非常详细的介绍,这里不再累述,在本地添加好目录之后就需要将 Key 给被传输方了,这里我之前想错的地方在于,以为大陆内对于任何资源都会有合适的 Peer 帮助中继(其实没有),这样如果只有自己和对方机器拥有 Key 的话,Resilio Sync 会尝试打洞,但是在个人测试环境下(双方都没有公网 IP),这种方法是无效的,所以我们需要几个 Peer 作为 Relay,既然没有志愿者来作为 Relay ,我们就自己找机器作为自己的 Relay,此时找一台 VPS 安装 Resilio Sync 后添加自己的 Key 并开始运行即可。
在这种情况下,若自己没有公网 IP,则每一次同步文件的时候会同时传输到一些有公网 IP 的 Peer(也就是自己部署了 Sync 并且填入了 Key 的 VPS) 上,然后这些 Peer 再将文件传输到目标接受方,当然并不需要等文件全部传完,这个是实时的。
若有公网 IP 的话,在条件允许的情况下会尝试和接受方直接传输数据,接受方如果希望优先接受来自传输源的数据的话,可以指定 “Predefined Host” 并填写来源 IP。
上图传输状态中前 2 台是 VPS,最后一台主机是我的电脑(也就是文件的原始位置,此时通过一些手段已经获取了公网 IP),可以看到拥有了公网 IP 之后的传输速度是远大于前两台的(因为大陆直连了)。
但是这样的中间服务器节点是否是 Relay 呢?答案是否定的,在官方的论坛中有这样一个回答:
It’s not currently possible to run your own relay/tracker servers for Sync as such - this will likely be a feature that’s implemented in the “business grade”/“enterprise” edition of Sync.
You can, however, use the pre-defined hosts options within Sync to list the IPs of your known devices to allow connection without needing to go via Sync’s relay/tracker servers. However, this assumes that direct connections can be established between the IPs you list. If direct connections cannot be established, Sync will fallback to using its relay/tracker to establish connections.
所以这个方案的弊端在于,每一次同步的时候都需要同步参与方都有足够的存储空间(因为每一个 Peer 都会存储完整的文件),且对于双方的文件交换(例如对方取文件后是否删除)来说管理起来还是有一定的难度,但是国内的国情导致了公网 IP 地址并不非常易得(需要打电话给 ISP 申请),且国内没有高速的官方 Relay,只有使用自建 Peer 的方式来给自己的传输加速,希望不久的将来 IPv6 普及率上升之后这个问题可以得到很根本的解决,因为那个时候传输文件真的就直逼带宽瓶颈了。
--------------

分享一个Resilio Sync PRO密钥

复制下面这段文字,用BASE64解码,另存为*.btskey,在应用程序内载入即可。

YnRvczFfZXlKeklqb2dJbTV4TmpSbU5HZ3JXRGh4V0hGaWFXUm9kRXR5VFdkTmNFVmFNSGRZYVVKTGJFeHdTV0Z3U0RVeE16a3lhSGRxTUZGcFFXSk9UVEZHZDJKR1dHcEpRMEZoVjJ3NFYzWmlkVnBQZW5wSVRYWm1OVFJMV1UxWFZHVnNWRlpqUzNKR1FVcFlNbVZVTUd0dFQybENNbTh6UTFCalZGZDJWV2xDTHpSc1RUbFFOMUZzYWxWU1Z6UkVNVkZOVWt0V2NFaHdhRzVJVnpJdlptZHFOMDVNYVRobU1uaE5hMU5ETkVSd1JWVnBRMHBYWkhwUFdYRkliVzFPTUZkT1VFdDZRV2c0UmtKb2FuTnZVVk5CYTFoS04wOVdTMGM1V0Vsa1ZUY3pXbk5sVldOeFdXMVdWVW8wV0RjMFMwNXdZbWxZWmswdmVtbHNVMnBJSzBVNVkzWk1aMDkyWWxwbFZqbENaWGx2ZUROd1QzcFJZVUpPZUZOUVQzRllXRXBUUkhFMWJWUmhSWE12V0dwcFZHdEpWMjF1VkhKdWRWSm5iMDFEWjBSQk9IZEJTM1JJWWpSdlZrZHVXbTFqZVU4eE5saG9RM2R2TDJWa2VIRnhaejA5SWl3Z0ltUWlPaUFpWlhsS2FtRjVTVFpKUTBwcFpFYzVlbGw2Um1aYVdHeExZVzFPTlZOVVdrcFJNSEJKVmxab1lWWXhSbGRVYWtac1ZsZG9XVlpyV2xkTk1VcFhVMnRXVlZKVVJsWlpWRVpYWkZaYWNWVnNVbXBOTVVwNVdrY3hkMUZzVWtWUlZGWldVWHBzTVZacmFHdFVWazV3VDBoc1VGRXpVak5VVjNoclZqSk9jazFJYUZWaGVsSTFWWHBPUTFReVVsaGlSM1JUWWxWd2IxWnROVXRVUmxKWlZWUldWRko2UlhwV1ZWVTFUVlp3ZFZkdFJsVldiVkoxVlZkNFNrMXNXWGxYYmtac1ltMTRiMVpXYUhkbGJFVjNUVlZLYW1KWGFFNVhWbFl3WkZad1ZWSllaRlJTYkVwT1ZXNXdVMkpHYkhCa1JYQlZWbFJHU2xZd1VuTldNa1Y1WkVaU2FsWkZSWGRVYlRWdVRVZEtjazFXWkU1U1IyTjNWbXhXWVZSc1NuSk5WemxxVWxWd01GbFZVbE5sUlRGSllrWmFXbUV4UlhoVmJURnpUVVV4U1ZwSVpFNWlSM2hWV1d4b2IxSXlUa1ZTYkU1c1ZsaGtlVlZzV205T1YwWkdVbFJPVW1KV1NuVldWRVpEWVVkS1NWWnJXa3hOVjNoWlZtcEdiMkZ0U2pWUFZXeFNWbFJzVDFsdE1UTk5iRTV6VWxSQ1lXRnNTbEZXYlhCQ1pVWlJkMVZyU2xwaGExWjVWMjB3TVdSVk5YVlhibFpTVFRKbmVsbDZSbGRUYXpsR1RWVTFhRk5IZUZGVVJFRTFUVVpPYzJKRldsZFRSa3BYVmxWYVNrMXNVa1JrUmtwWFVqSm9VbFl3VWxOamJHeHlUbGhHVGxKSGVGcFhibXd3WWpKR1ZrMVZlRlpXTVZwVlUzcENkMlJGTlRaVmJscFVZVzE0U1ZwRVFuSmxWa1owVFZWc2FsSkdXWGRXUmxaVFpFWnJlV1ZJY0U5V2JXaExWMVprYjFNeFpFZFNhMXBxVFVoU01WVnNhRmRsYkUxM1ZHcFNhVkpzU2pWVVZtUjNaRmRPU0dGRk5XRmxiRlYzV1cweE5HSkZPVlZoUnpsVVUwVldlVlZXYUU1TlYxWlpWV3hTVGxJeVRUVlZSazVLWXpCc1JGTnRjR0ZSTUdzeVUxVk9TMkpIVmxaalNHUmFZbFJHYUZwSGRITmpWMGw1V2tkNGJGWllRVEpYYTJONFZERktTRk5ZYkZaaVdHaExXVmN3TldKc1RsaE9WVGxQVmpCd01GWkhlRWRoYlVwVllVaENWVkpWTlVOWlZscHlaVmRTU1ZGdFJsSk5SM041VlRGV1QxTXlWa2RXYmxKWFZrVktWRmx0Y3pGamJHdDNWMnMxVG1KVlZqTmFWVll3WVcxV2MxTnNhRnBsYTBweVZGVmFSbVZHUm5SbFJtUlVVbFJXTlZVeFpITk5NVzkzWWtoU1YyRnNTbkZWVkVKeVRXeE9WbFZyY0d4U1ZGWkdWbXhTVjFSc1drZGhla0pWVmxaS1ExbDZRbk5TUms1MFkwZHdUazFWV25kV1JFcHpVVzFHV0ZOcVZrNVdlbFpRVm10YVlWVkdiRFpSYlRsb1lrWndlbFpzWkhOVVZrVjNVbTVDWVZKWGFIcGFSRVozVmtaT1ZWZHJjRkpOU0VGNlZqSjRiMU15Vm5SVFdHeFBWakpvY0ZWVVFuTmxiRTVXVkd0MGEySlZOVXBXVnpWM1UyMUdkRTlYTldGWFIzaE1XV3hrU21WWFZraGtSMFpZVWxoQ1ZsWXllR3RVTWxaWFkwWnNWbFl5ZUZGWlZsWkhZMFpTZEdNemFGVk5WbHBJVmpKNFlWWkdTa2hWYTA1VlYwaENWRll5ZUVkV2JGWlZVbXhvVTFaR1draFdWM1JYVlRGV1YxVnJXazlXVm5CWVZGWldkMVV4VWxoalJrNVZWbXhzTkZkcVNuTlVWa1YzVW01Q1dtVnJjRmhaVldSVFUxWlNXR0pHUW1oV1ZWa3dWMjE0Ym1ReVRYZGlSVkpVWWxob2MxVXdWa2RqUmxGNVlrVktiRlpVUmxaV1ZsSkhWVVphUmxaWWJGVk5Sa3BEV2tSS1lWVnNRbFZOUjJ4dFZWUXdPVWxwZDJkSmJXeDFXbTA0YVU5cFFqZEpiVGw1V2tkV2VWTlhVV2xQYVVGcFdWYzFhR1JYZUcxWlZ6VXhZVEphZFdJeWRIVmlWekY2VFVSWk5XTlhiek5PUTBselNVTkthR05wU1RaSlJFRnpTVU5LYkdWSVFXbFBhVUY1VFZSUk1VOVVSVEpQUkVGM1RFTkJhVmt6U214SmFtOW5UVlJSTkUxVVVYbE9lazAwVG5sM1owbHVUakpaTUd4clNXcHZaMGx1VGpWaWJVNVJZMjA0ZUVscGQyZEpiVTU2WkVOSk5rbERTblpNVjJNeFRsVTFlbE5IVGxkV1UwbHpTVU5LZW1SdFRrUmlNbEpzU1dwdlowbHVUalZpYlU1UlkyMDRhVXhEUVdsWk1teHJTV3B2WjBsdFpIRmFWMjk1WW1sSmMwbERTakJsV0VKc1NXcHZaMGx1UW14amJrNTJZbTFHYzBscGQyZEpiVGwzWkVoTmFVOXBRamRKYlZwMllrZFNiR05zVG14Wk0wcHNaRU5KTmtsRFNrSldNRkpPVkhwU1JsVXhUa0pVYkdoQ1YyeEtWRTFyTUhsT1JscENUbXRrUWxJeFNsaFdWRkpSVGxaWmFVeERRV2xqTWxab1pFaE5hVTlwUVhobVdEQnpTVU5LYkdWSVFXbFBhVUY1VFZSUk1VOVVSVEpQUkVGM1psRTlQU0o5
cat <保存含有以上代码的文件>|base64 -D > <解码后要保存文件名>.btskey
-----------
https://briteming.blogspot.com/2017/03/linux-vpsbtsync.html

No comments:

Post a Comment