Syncthing: Ваше личное, децентрализованное и свободное облако

Опубликовано: 07.10.2025

Эта статья была подготовлена для форума LINUX.ORG.RU. Там вы можете ознакомиться с комментариями читателей и оставить собственный.

Введение

Syncthing — это свободный P2P‑инструмент синхронизации файлов между вашими устройствами без централизованного облака и подписок. Данные остаются у вас, ключи — у вас, инфраструктура — тоже у вас.

Это обзорная статья, написанная, чтобы дать читателю представление о технологии. Здесь нет конкретных команд для запуска и технических деталей. Вместо этого я предлагаю читателю установить Syncthing и самостоятельно попробовать его на практике.

Проблемы коммерческих «облаков» и как Syncthing отстаивает нашу свободу

Когда мы загружаем файл в коммерческое облако, мы, по сути, отдаем его на хранение третьей стороне. Что это значит на деле:

Syncthing — это противоположность вышеописанному. Это не сервис, а программа. Она не хранит ваши данные на центральном сервере, потому что центрального сервера просто нет. Ваши данные синхронизируются напрямую между вашими устройствами (Peer-to-Peer). Вы — единственный владелец и контролёр своих данных.

Это не «облако» в том смысле, который сейчас подразумевают корпорации. Однако это облако в том смысле, который вкладывался в этот термин изначально. Хранение и обработка данных отвязаны от конкретных физических машин и их настроек. Вместо этого программная среда, в которой живут ваши данные, существует как бы «поверх» машин. Конкретная машина становится несущественна для целостности данных.

Таким образом, ваше облако — это ваши машины.

Ключевые особенности

Гибкая организация облачных папок

С Syncthing очень легко создавать новые расшаренные папки. Нет необходимости складывать всё в единственную папку. Вместо одной большой папки “Dropbox” или “Яндекс.Диск” вы создаете логические группы для разных типов данных. Это позволяет тонко настроить, что и где хранить.

Вот некоторые примеры, какие папки использую я. У каждой папки можно задать свои настройки версионирования и на каких устройствах она хранится.

Примечание: Если вы используете файловую систему с дедупликацией, например btrfs, то вы можете без дополнительных затрат места на диске держать идентичные копии файлов в разных расшаренных папках.

Версионирование файлов

Syncthing умеет сохранять старые версии изменённых/удалённых файлов — это и «страховка от ошибки», и элемент стратегии бэкапа.

Варианты:

Для каждой облачной папки на каждом устройстве можно выставить отдельные настройки версионирования. Это позволяет гибко выбирать между надёжностью и экономией места на устройстве.

Обнаружение конфликтов

Syncthing автоматически отслеживает конфликты правок, когда файл изменялся с нескольких устройств.

В этом случае он выбирает более свежий по дате вариант файла как основной, а прочие — как конфликтные. Конфликтные варианты переименовываются в <filename>.sync-conflict-<date>-<time>-<modifiedBy>.<ext>, и затем эти файлы распространяются по облаку в обычном порядке.

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

Примечание: По моему опыту, Syncthing крайне редко обнаруживает «ложно-положительные» конфликты (т.е. когда конфликта правок на самом деле нет, но облако считает, что есть). Этим он выгодно отличается от некоторых коммерческих решений, с которыми мне приходилось иметь дело ранее. В том случае ложные конфликты и потеря файлов были обычным делом.

Режимы работы папок

Следует отметить, что режим работы папки контролируется тем пиром, на котором, собственно, выставлена настройка. Пиры не знают и не проверяют, какие режимы стоят у других пиров. Таким образом, например, режим Receive Only защищает от случайного распространения изменений, внесенных локально. Но не от злоумышленника, который получил контроль над узлом. Чтобы злоумышленник не мог безвозвратно испортить ваши файлы, включите версионирование на более чем одном устройстве. Чем больше устройств с версионированием включено - тем выше избыточность и надёжность хранения версий.

Зашифрованные реплики на недоверенных машинах (Receive Encrypted)

Хотите держать копию на VPS, но чтобы владелец машины не имел доступа к данным? Для этого есть особый тип папки — Receive Encrypted:

Ограничение очевидно: на таком узле содержимое просматривать/использовать/модифицировать нельзя — только хранить и ретранслировать.

Сеть

Прямая работа в LAN:

Интернет и NAT:

Важно: discovery/relay — это лишь «сигнализация» и транспорт. Данные остаются шифрованными end‑to‑end, а аутентификация машин — через Device ID.

Поддерживаемые ОС

Syncthing‑Lite на Android: доступ «по требованию»

Сейчас развивается приложение Syncthing‑Lite для Android — оно позволяет работать с вашим облаком Syncthing без загрузки полной копии файлов на телефон:

Этот проект является возрождением старой версии приложения, которая была уже какое-то время брошена.

К сожалению, прямо сейчас у меня приложение не заработало — соединение между пирами есть, но оглавление папки не загрузилось. Такого приложения очень не хватает для расширения возможностей Syncthing. Надеюсь, что разработчик продолжит работу над ним.

Ну а пока это приложение в разработке, вы можете воспользоваться стабильной версией «обычного» варианта приложения: https://github.com/Catfriend1/syncthing-android.

Заключение

Syncthing — это не просто утилита, а технология, меняющая принцип хранения и доступа к данным. Это практический инструмент, который даёт пользователю безопасность и свободу в управлении своими данными. Он реализует принципы свободного программного обеспечения не просто по букве, но и по духу.