После выхода версии BTSync 2.0 от компании BitTorrent многие пользователи озаботились поисками альтернативного программного обеспечения для безоблачной синхронизации файлов. Основные претензии, которые предъявляются к BTSync можно классифицировать в три большие группы:
- Ошибки, баги. Ну, эта группа она специфична для любого программного продукта сложнее вывода на экран "Hello World!", хотя и в таком можно накосячить, были бы таланты.
- Платная ежегодная подписка на продукт. Вот этот пункт взбаламутил сообщество любителей синхронизации больше всего. Как так? Ведь обещали же, что продукт BTSync будет бесплатным навечно! А тут вводят ограничение на не более, чем 10 синхронизируемых папок в бесплатной версии.
- Сомнения относительно безопасности передаваемых данных. Тут все покрытой непроницаемой тайной мрака. Поскольку BTSync не является продуктом с открытым исходным кодом, да и построен он на фирменных протоколах, то у пользователей нет никакого другого выхода, кроме как доверять словам компании, о том, что все данные шифруются и не могут быть перехвачены.
Исходя из пунктов 2 и 3, многие пользователи решили остаться на старых версиях BTSync выпущенных до версии 2.0, либо поискать альтернативу. Впрочем, оставаться на старой версии, все равно нельзя бесконечно долго, рано или поздно придется перейти на новую версию. А в стане альтернативных клиентов по сути есть только один достойный игрок. Да, конечно, есть множество различных синхронизаторов, можно использовать облачные сервисы, но уникальный функционал реализованный в BitTorrent Sync на текущий момент смог реализовать только один проект, да и то только в очень отдаленном приближении. И имя этому проекту Syncthing.
Целью настоящей статьи является попытка проанализировать насколько хорошо работает Syncthing по сравнению с BTSync и понять можно ли его использовать или нет. Ну и бонусом идет небольшое исследование относительно того, что будет, когда истечет триальный срок использования BTSync и что с этим можно поделать.
BTSync vs Syncthing
И та и другая системы предназначены для того, чтобы синхронизировать файлы между компьютерами и мобильными устройствами напрямую, минуя каких-либо посредников. Такая схема обмена позволяет обеспечить относительно беспроблемную передачу больших объемов файлов и одновременно обезопасить сами передаваемые данные, поскольку они не передаются через посредников.
В пику BTSync разработчики Syncthing реализуют свое детище на основе принципов программного обеспечения с открытым исходным кодом и с применением открытых и документированных протоколов передачи данных. Таким образом, любой желающий может проверить Syncthing на отсутствие каких-либо лазеек или любого вкрапления вредоносного кода. Но, за плечами BitTorrent огромный опыт, связанный с разработкой как самого протокола BitTorrent, так и клиентов для передачи файлов по этому протоколу. Без тени сомнения mTorrent выпускаемый компанией BitTorrent — самый популярный клиент для настольных компьютеров под управлением Windows. И даже шумиха по поводу излишнего количества рекламы и встроенных майнеров не смогла свергнуть mTorrent с пьедестала.
В отличие от BTSync, которая работает под Windows в виде обычного приложения, Syncthing устанавливается в систему в виде сервиса, доступ к которому можно получить через web-браузер. Насколько это удобное решение, зависит от варианта использования. На серверных установках, разумеется, удобнее использовать подход, реализованный в Syncthing, а на обычных компьютерах, мне кажется реализация в виде приложения имеет больше шансов на успех. Но тем не менее подобная особенность больше влияет на удобство использования, а не на работоспособность вообще.
Для проверки обеих систем пришлось задействовать два устройства, разнесенные географически на удаление порядка 100 км. В качестве первого устройства пришлось взять NAS от Synology. На него были установлены и BTSync и Syncthing. Вернее, BTSync там уже был установлен давно и активно использовался, а вот Syncthing был установлен впервые. Обоим продуктам были предоставлены разные каталоги с файлами для мониторинга. В качестве второго устройства выступил обычный настольный компьютер под управлением Windows 8.1 x64. Однако, в качестве подопытной системы выступил Linux Ubuntu, запущенный под виртуальной машиной. На виртуальную машину под Debian были установлены оба программных продукта. B BTSync и Syncthing были связаны со своими удаленными копиями, произошел обмен ключами и подключены каталоги для обмена.
Небольшая ремарка. На «персоналке» нагрузка ни от BTSync, ни от Syncthing незаметна, поскольку компьютер весьма производительный. А вот на NAS нагрузка от Syncthing оказалась более чем заметной. Syncthing не только потреблял почти всю свободную память, коей на NAS не так уж и много, но и заставлял молотить единственный процессор на полной загрузке. И это без какой-либо синхронизации вообще, только в режиме поддержки готовности к соединению.
Обе машины подключены к Интернет с так называемыми серыми адресами IPv4. Извне до них достучаться невозможно, поскольку у них нет никаких глобальных персонализированных адресов. IPv6 аналогично не работает. Вернее, он есть в пределах локальной сети, но провайдеры не предоставляют услуг по передаче данных посредством IPv6. Поэтому можно смело утверждать, что тестирование проводилось в настоящих, реальных и тяжелых условиях, когда только самые продвинутые системы синхронизации могут пройти через все ограничения и создать устойчивое подключение.
После установки программ, подключения и связи папок, BTSync, как и положено нашел удаленный пир на Synology и принялся активно синхронизировать файлы. Сделал он это настолько быстро, что подобное поведение можно считать обыденным. Однако, для Syncthing ситуация оказалась совершенно нерабочей. За 12 часов попыток подключения, удаленная машина так и не была обнаружена. Соответственно не прошло никакой синхронизации, хотя оба устройства работали с внешними «трекерами» для Syncthing.
Способность BTSync пробиваться и подключаться там, где другие не могут этого сделать, кстати, такой способностью обладает еще и Skype, является прямым следствием использования протокола BitTorrent. Кроме того, поскольку BTSync использует протокол, применяемый для обычного обмена файлами в p2p сетях, то в распоряжении BTSync находится вся инфраструктура пиринговой сети, а это сотни p2p трекеров и миллионы p2p клиентов. И всего этого у Syncthing нет и как я понимаю не предвидится в ближайшем будущем.
Вывод: в какой-то мере Syncthing может выступать заменителем BTSync, но лишь отчасти и только там, где есть возможность создания прямого подключения между устройствами. Стоит ли его использовать? Возможно да, если машины с Syncthing могут обмениваться данными, то почему бы его и не использовать? Но на мой взгляд, Syncthing находится еще пока в самом начале пути и до BTSync ему еще очень далеко. Тем не менее пожелаю разработчикам Syncthing удачи в их нелегком труде и надеюсь, что в будущем продукт будет конкурировать с BTSync на равных. Ознакомиться с вариантами применения BTSync можно в одной из моих прошлых статей.
Что будет с BTSync по окончании триала?
Этот вопрос мучил меня с тех пор, как BTSync разделился на платную и бесплатные версии. И будучи по натуре экспериментатором, я решил провести небольшое исследование и поставил опыт.
Было создано три одинаковых виртуальных машины для Oracle VirtualBox в которых была установлена Windows 8.1 x32 с названиями BTSync1, BTSync2 и BTSync3 соответственно. В Windows я отключил синхронизацию времени и удалил VirtualBox Addons, иначе перевести дату на виртуальной машине будет невозможно. В каждую машину был установлен свой собственный BTSync версии 2.х. Машины BTSync1 и BTSync2 были объединены в одну личность (в терминах BTSync) BTSync1. Машина BTSync3 получила личность BTSync3.
Далее, в личности BTSync1 было создано 12 папок для синхронизации, они заполнены мелкими файлами. В личности BTSync3 было создано лишь несколько папок для синхронизации, но и в них были файлы. BTSync1 дополнительно подключил несколько папок от BTSync3. Работоспособность и нормальный обмен файлами были проверены, после чего я перевел время на два месяца вперед во всех машинах. Переводить дату только на одной машине не очень разумно, поскольку в этом случае есть высокая вероятность того, что может быть нарушена синхронизация.
Естественно, что все BTSync тут же обрадовали меня сообщением, что время вышло и некоторые из функций работать не будут. Работать отказались все папки свыше 10 штук, они просто стали неактивными. Как система выбрала папки, которые надо отключить — непонятно. Дополнительно отключился режим «не скачанного файла», когда он как бы есть в файловой системе, но скачивается только тогда, когда к нему обращаешься. В общем-то, такой режим для безоблачного обмена и не требуется. Кроме того, исчезает автоматическое информирование и подключение папок для обмена в пределах одной личности, т.е. придется ручками вводить ключи или сканировать QR-коды, все, как и раньше. Ну и напоследок, менять уровни доступа к папкам теперь нельзя «на лету». Функционал явно не такой уж и популярный.
По наблюдению — после того как заканчивается срок бесплатного тестирования инструментария окошко с предупреждением выскакивает только один раз. Во всех последующих запусках BTSync никаких надоедливых напоминаний не всплывает. Что есть очень хорошо. Программной можно пользоваться и далее.
Неактивные папки при уменьшении общего количества папок становятся активными и участвуют в синхронизации. Лимит на 10 папок считается не на личность, а на конкретную установку программы. Вообще, с одной стороны, ограничение на 10 папок выглядит очень маленьким, но с другой стороны, если у тебя происходит синхронизация на одном компьютере более 10 фолдеров, то стоит пересмотреть структуру хранения данных и перенастроить синхронизацию. Либо, переходить на коммерческую подписку.
Пробный период подсчитывается для каждой конкретной установки, а не для личности. Так, у вас в рамках одной личности может быть несколько устройств, для каждого будет свой пробный период. Однако, платная лицензия распространяется на все подключенные устройства работающий под одной и той же личностью. Такой подход, открывает небольшую лазейку для организации вечного триала. Так, например, грамотная деинсталляция при помощи Revo позволяется начать использоваться BTSync с чистого листа, даже если он подключен в качестве устройства личности, которая существует и используется BTSync много-много лет. Но, раскатывать губу в этом случае опять же нет особой нужды, поскольку подобный механизм поведения может измениться в будущем и придется заводить каждый раз себе новую личность.
Вывод: В целом не стоит бояться и опасаться нововведений в BTSync. При обычном, домашнем использовании применяемые ограничения практически нисколько не ущемляют пользователя. Ну а если BTSync используется в компании и потребности бизнеса выходят за рамки возможностей бесплатной версии, то тут придется раскошеливаться.
Update: сейчас данный комплекс продуктов зовется Resilio Sync
Update-2022: за несколько лет развития Syncthing наконец-то научился обнаруживать другие устройства быстро и без стеснения.