Syncthing

Syncthing – свободная кроссплатформенная система синхронизации данных

Логотип Syncthing

Каж­дый день мы исполь­зу­ем в про­цес­се сво­ей рабо­ты и досу­га мно­же­ство раз­лич­ных элек­трон­ных устройств: мобиль­ные теле­фо­ны, план­ше­ты, теле­ви­зо­ры, и т. д. Но как лег­ко, а глав­ное без­опас­но син­хро­ни­зи­ро­вать дан­ные меж­ду ними? В этом слу­чае помо­жет сво­бод­ная, крос­сплат­фор­мен­ная систе­ма син­хро­ни­за­ции дан­ных с откры­тым исход­ным кодом для Linux, Android, macOS и Windows – Syncthing.

Как работает Syncthing?

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

Установка

Syncthing рабо­та­ет на всех попу­ляр­ных ста­ци­о­нар­ных и мобиль­ных плат­фор­мах. Поря­док уста­нов­ки для самых рас­про­стра­нён­ных из них я при­ве­ду ниже.

Linux

Debian, Ubuntu, Linux Mint

Для Debian, Ubuntu и осно­ван­ных на них дис­три­бу­ти­вов есть сер­вис apt.syncthing.net, отку­да мож­но уста­но­вить Syncthing с помо­щью штат­но­го пакет­но­го мене­дже­ра Apt:

curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt update
sudo apt install syncthing

Arch Linux, Manjaro Linux

Syncthing есть в штат­ных репо­зи­то­ри­ях Arch/Manjaro Linux. Уста­нав­ли­ва­ет­ся как обыч­но:

sudo pacman -S syncthing

Так же мож­но уста­но­вить пакет syncthing-gtk – гра­фи­че­ский интер­фейс Syncthing на GTK+:

sudo pacman -S syncthing-gtk

Android

Syncthing для Android есть в Google Play.

macOS

Для macOS соби­ра­ет­ся DMG пакет на Github.

Windows

Уста­но­воч­ни­ки для 32 и 64 раз­ряд­ных вер­сий Windows мож­но най­ти на офи­ци­аль­ном сай­те Syncthing.

Запуск и настройка

В моём Arch Linux перед нача­лом рабо­ты нуж­но раз­ре­шить авто­ма­ти­че­ский старт Syncthing при каж­дой загруз­ке систе­мы от име­ни мое­го поль­зо­ва­те­ля:

sudo systemctl enable syncthing@imatvey.service

Теперь запус­ка­ем демон Syncthing:

sudo systemctl start syncthing@imatvey.service

Заме­ни­те «imatvey» на имя сво­е­го поль­зо­ва­те­ля в систе­ме, когда буде­те выпол­нять коман­ду на сво­ем устрой­стве!

Вза­и­мо­дей­ствие с Syncthing на деск­топ­ных систе­мах осу­ществ­ля­ет­ся через веб-интер­фейс, кото­рый досту­пен по адре­су:

Откры­ва­ем его в сво­ём люби­мом бра­у­зе­ре и полу­ча­ем пол­ный кон­троль над Syncthing.

Далее всё про­сто. Нуж­но доба­вить в Syncthing ката­ло­ги, кото­рые тре­бу­ет­ся син­хро­ни­зи­ро­вать и доба­вить одно или несколь­ко устройств, меж­ду кото­ры­ми будет выпол­нять­ся син­хро­ни­за­ция. Всё! Syncthing сама под­клю­чит все устрой­ства друг к дру­гу и син­хро­ни­зи­ру­ет на них дан­ные.