Syncthing: открытая альтернатива Bittorrent Sync [P2P-протокол для синхронизации файлов]

Syncthing — кроссплатформенное приложение клиента/сервера для синхронизации файлов напрямую между клиентами, написанное на Go. Похожий на BitTorrent Sync, этот инструмент может использоваться для синхронизации файлов между компьютерами, но, в отличие от BitTorrent Sync, код Syncthing полностью открыт. Как утверждают разработчики, «Syncthing заменяет Dropbox и BitTorrent Sync на что-то открытое, надежное и децентрализованное. Ваши данные — это ваши данные, и вы решаете, где они должны храниться, будут ли они доступны кому-то ещё и как они передаются по Интернету. При использовании syncthing, контроль возвращается вам”.

syncthing
Веб-интерфейс Syncthing

Открытым является код не только Syncthing. P2P-протокол, который использует Syncthing, названный «Block Exchange Protocol», также открыт.

В отличие от облачных инструментов синхронизации на Dropbox, Syncthing передает файлы напрямую между другими компьютерами, на которые вы установили Syncthing, и это дает нам следующие преимущества: ваши файлы не хранятся на каких-либо облачных серверах, скорость передачи не зависит от сторонних серверов, а также отсутствуют ограничения по свободному пространству (конечно, очевидно, единственным ограничением является свободное место на жестких дисках компьютеров).

Главные возможности Syncthing:

  • вы можете синхронизировать так много папок, как вам нужно, с различными людьми
  • отзывчивый веб-интерфейс
  • кроссплатформенность: Syncthing работает на Linux, Mac OS X, Windows, FreeBSD и Solaris. Также доступен неофициальный порт на Android
  • Syncthing не требует каких-либо глубоких настроек и должен работать изначально, и через локальную сеть, и через Интернет
  • безопасность и приватность: данные хранятся только на ваших компьютерах без использования центрального сервера, вся связь защищена с помощью TLS, каждый компьютер идентифицируется сильным криптографическим сертификатом, и только отмеченные вами компьютеры могут подключаться к вашему кластеру
  • открытое приложение и протокол, на котором оно работает

Важно также заметить, что при использовании Syncthing, вы можете выбрать, с какими компьютерами делиться каждым репозиторием. То есть, например, вы можете создать несколько репозиториев и включить/выключить обмен файлами с некоторыми существующими компьютерами “на лету”:

syncthing

Также в Syncthing присутствует опция под названием “мастер-репозиторий”, которая, если она включена, защищает файлы от изменений, сделанных на других компьютерах, но изменения, сделанные на текущем компьютере, будут по-прежнему отправляться всем остальным.

Учтите, что Syncthing находится в состоянии постоянной разработки, и часто добавляются новые/улучшенные возможности. Например, текущий релиз включает простую систему версий файлов, но в будущем будет добавлена более продвинутая система работы с различными редакциями файлов.

Вот ещё несколько скриншотов Syncthing (веб-интерфейс):

syncthing

syncthing

syncthing

Загрузить Syncthing

Загрузить Syncthing:

  • Загрузить Syncthing — бинарные файлы доступны для Linux (32bit, 64bit, ARMv5, ARMv6 — поэтому утилита работает и на Raspberry Pi, ARMv7), Mac и Windows, а также доступны исходные коды приложения
  • Syncthing также доступен для Android в виде неофициального порта
  • Arch Linux: вы можете установить Syncthing через AUR: последний релиз | git: https://aur.archlinux.org/packages/syncthing-git/

Чтобы запустить Syncthing на Linux-машине, просто загрузите архив, распакуйте его и дважды кликните на исполняемом файле «syncthing» в распакованной папке (или выполните его с помощью команды «./syncthing», находясь в распакованной папке). После запуска в вашем стандартном веб-браузере должна открыться новая вкладка с веб-интерфейсом Syncthing.

Вы захотите добавить несколько компьютеров — чтобы сделать это, вы можете прочитать руководство о начале работы с Syncthing здесь. Вы можете также изучить документацию проекта: http://discourse.syncthing.net/t/getting-started/46.

Сообщить об ошибках вы можете на странице проекта в GitHub.