// Engineering Log
Собственное облако: Часть 2 — Синхронизация файлов в Syncthing
Опубликовано 21.09.2026
Syncthing — бесплатная программа с открытым исходным кодом (лицензия MPL 2.0) для синхронизации папок между компьютерами, серверами и сетевыми хранилищами. Файлы передаются напрямую между вашими устройствами: центрального сервера, на котором хранилась бы копия данных, нет. Если нужен не полноценный облачный сервис с веб-доступом и общими ссылками, а просто одинаковое содержимое рабочих папок на нескольких устройствах, Syncthing решает эту задачу без абонентской платы и без передачи файлов третьей стороне.
Как работает Syncthing
У каждого устройства есть уникальный идентификатор (Device ID). Чтобы два устройства начали обмениваться данными, их нужно добавить друг к другу и подтвердить связь на обеих сторонах. После этого вы выбираете, какие папки и с какими устройствами синхронизировать.
Syncthing отслеживает изменения в папках, разбивает файлы на блоки и передаёт другим устройствам только изменившиеся блоки. Соединения шифруются протоколом TLS.
Чтобы устройства нашли друг друга через интернет, используются серверы обнаружения (discovery). Если прямое соединение установить нельзя, например оба устройства находятся за NAT, трафик идёт через ретранслятор (relay). По документации Syncthing ретрансляторы не видят передаваемых данных: они получают только зашифрованный поток. Проект поддерживает общедоступные серверы обнаружения и ретрансляторы, а при необходимости их можно развернуть самостоятельно.
Достоинства
- Файлы не покидают ваши устройства. Копии хранятся только там, куда вы их синхронизируете.
- Нет единой точки отказа. Выход из строя одного устройства не останавливает обмен между остальными.
- Скорость в локальной сети. Если устройства находятся в одной сети, данные передаются напрямую, без выхода в интернет.
- Гибкая настройка. Для каждой папки задаются устройства, режим синхронизации, исключения и хранение прежних версий.
- Бесплатность. Лицензий и подписок нет.
Ограничения
- Syncthing не резервная копия. В документации это сказано прямо: любые изменения, включая удаление, распространяются на все устройства. Ошибочно удалённый или испорченный файл исчезнет везде. Хранение версий смягчает риск, но резервную копию на отдельном носителе не заменяет.
- Устройства должны быть в сети одновременно. Если ноутбук и домашний компьютер никогда не включены в одно время, изменения между ними не передадутся. Обычное решение — постоянно работающий узел: сервер, VPS или сетевое хранилище.
- Нет веб-доступа к файлам и общих ссылок. Открыть файл из браузера на чужом компьютере или отправить клиенту ссылку на скачивание нельзя.
- Нет централизованного управления. Каждое устройство настраивается отдельно; для десятков сотрудников это неудобно.
- Конфликты при одновременной правке. Если один файл изменить на двух устройствах до синхронизации, Syncthing сохранит обе версии: одна из них получит в имени пометку
sync-conflict, и разбираться с ней придётся вручную.
Приложение для Android
Официальное приложение Syncthing для Android прекратило развитие в декабре 2024 года. Разработчик объяснил это сложностями с публикацией в Google Play и отсутствием активной поддержки. Уже установленное приложение продолжает работать, но обновлений больше не будет.
Развитие продолжается в Syncthing-Fork — приложении, которое поддерживает сообщество. Оно распространяется через F-Droid и страницу релизов на GitHub и совместимо по протоколу с остальными устройствами. Для перехода достаточно экспортировать настройки из старого приложения и импортировать их в Syncthing-Fork.
Что изменилось в версии 2.0
В августе 2025 года вышел Syncthing 2.0:
- внутренняя база данных переведена с LevelDB на SQLite; при первом запуске на крупной установке однократная миграция может занять заметное время;
- сведения об удалённых файлах теперь забываются через шесть месяцев; срок меняется параметром
--db-delete-retention-interval; - готовые сборки для Windows на ARM, NetBSD и Solaris больше не выпускаются.
Как внедрить
Установите Syncthing на все устройства. Для Windows и macOS сборки доступны на официальном сайте. В Debian и Ubuntu удобнее подключить официальный репозиторий:
bashsudo mkdir -p /etc/apt/keyrings sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" | sudo tee /etc/apt/sources.list.d/syncthing.list sudo apt-get update sudo apt-get install syncthingНастройте автозапуск. На сервере Syncthing запускают как системную службу от имени отдельного пользователя, чтобы он работал без входа в систему:
bashsudo systemctl enable syncthing@myuser.service sudo systemctl start syncthing@myuser.serviceНа рабочем компьютере достаточно пользовательской службы:
systemctl --user enable --now syncthing.service.Откройте веб-интерфейс и задайте пароль. По умолчанию интерфейс доступен только с того же устройства по адресу
http://127.0.0.1:8384. На удалённый сервер к нему удобно подключаться через SSH-туннель:ssh -L 8384:127.0.0.1:8384 user@server, после чего интерфейс открывается в браузере на своём компьютере по тому же адресу.Свяжите устройства. Скопируйте Device ID одного устройства, добавьте его на другом и подтвердите запрос.
Добавьте папку и выберите режим. «Отправка и приём» — обычная двусторонняя синхронизация. «Только отправка» подходит для источника, изменения на котором не должны перезаписываться. «Только приём» — для копии, которую не правят вручную.
Включите хранение версий. Syncthing предлагает четыре варианта: «Корзина» (удалённые и заменённые файлы переносятся в папку
.stversions), «Простое» (хранится заданное число версий), «Поэтапное» (чем старше версии, тем реже они сохраняются) и «Внешнее» (решение принимает ваша программа или скрипт).Задайте исключения. Временные файлы, кеши и каталоги сборки перечисляют в файле
.stignoreв корне папки.
Постоянно работающий узел без доступа к данным
Если постоянным узлом служит арендованный VPS, которому вы не хотите доверять содержимое файлов, можно использовать режим недоверенных устройств: такой узел хранит и пересылает только зашифрованные данные, а пароль для папки задаётся на доверенных устройствах. В документации эта функция пока помечена как бета-версия, поэтому для важных данных её стоит сначала опробовать.
Типичные ошибки
- Считать синхронизацию резервным копированием и не делать отдельных копий.
- Открывать веб-интерфейс в сеть без пароля. Кто получит к нему доступ, тот управляет всеми папками устройства.
- Синхронизировать файлы, которые программа держит открытыми и постоянно меняет, например файловые базы данных. На другом устройстве окажется копия в несогласованном состоянии.
- Править один и тот же документ одновременно на нескольких устройствах и затем терять изменения среди файлов с пометкой
sync-conflict.
Кому подходит Syncthing
Syncthing хорошо подходит предпринимателям и специалистам, которым нужно держать одинаковые рабочие папки на ноутбуке, домашнем компьютере и сервере; небольшим командам, обменивающимся файлами проекта без внешнего облака; владельцам сетевых хранилищ, которым нужна синхронизация с рабочими компьютерами.
Если же нужен доступ к файлам из браузера, общие ссылки для клиентов, совместное редактирование документов и централизованное управление пользователями, лучше выбрать полноценное облачное хранилище на собственном сервере, например Nextcloud.
// Contact
Нужна помощь?
Свяжись со мной и я помогу решить проблему
Написать в TelegramОтвечаю в течение рабочего дня (03:00–13:00 GMT)
Или оставьте заявку здесь:
// Related