Syncthing: синхронизация файлов между устройствами без чужого облака
Утром вы изменили документ на ноутбуке и выключили его. Вечером открыли домашний компьютер — актуальная версия уже на месте. Файл не проходил через Google Drive или Dropbox: его принял ваш собственный узел Syncthing.
Syncthing напрямую синхронизирует выбранные папки между доверенными устройствами, а место хранения контролирует пользователь. Центральный сервер необязателен.
Но если два компьютера редко включены одновременно, им сложно обменяться изменениями. Постоянный VPS решает эту проблему: принимает файлы от одного устройства и позже передает их другому.
Важно понимать его назначение. Syncthing — не сетевой диск и не файловый менеджер в браузере, а автоматическая репликация выбранных папок.
Syncthing за пять шагов
Минимальная схема запуска:
- Установить Syncthing на нужные компьютеры.
- Запустить еще один экземпляр на VPS.
- Открыть панель сервера через SSH-туннель.
- Обменяться идентификаторами устройств и подтвердить подключение.
- Добавить общую папку, выбрать режим синхронизации и включить историю версий.
Что такое Syncthing и как он работает
Syncthing — бесплатная программа с открытым исходным кодом для непрерывной синхронизации файлов. Она работает на Windows, macOS, Linux и других настольных и серверных системах.
Каждая установка получает уникальный Device ID — криптографический идентификатор. Чтобы два узла начали обмениваться данными, их нужно добавить друг к другу и явно разрешить доступ к конкретной папке. Единого аккаунта Syncthing, в котором хранятся устройства и файлы, нет.
Когда файл меняется, Syncthing делит его на блоки, сравнивает контрольные суммы и передает только недостающие части. Небольшая правка внутри крупного файла поэтому не всегда требует повторной отправки всего файла.
Службы обнаружения помогают устройствам найти друг друга, но не хранят файлы. Если прямое соединение невозможно, зашифрованный трафик может пройти через более медленный ретранслятор.
Что меняет VPS
Без сервера ноутбук может синхронизироваться с домашним ПК напрямую, но оба устройства должны хотя бы ненадолго оказаться онлайн одновременно. VPS превращает схему в постоянно доступную точку обмена.
Например, утром ноутбук передает проект на сервер и выключается. Вечером домашний компьютер получает новую версию с VPS.
Syncthing подходит для документов, заметок Obsidian, исходного кода, фотографий и семейных папок. Кэши, node_modules и результаты сборки лучше исключать через .stignore. Работающие базы данных и образы виртуальных машин синхронизировать не стоит.
VPS также создает копию данных за пределами дома. Но полноценным бэкапом она становится только вместе с версионированием и отдельным резервным архивом: ошибочное удаление тоже может распространиться на все устройства.
Syncthing или Nextcloud: что выбрать
Инструменты часто сравнивают, хотя они решают разные задачи.
| Критерий | Syncthing | Nextcloud |
|---|---|---|
| Модель | Папки копируются между устройствами | Файлы находятся на центральном сервере |
| Нужен сервер | Нет, VPS необязателен | Да |
| Работа с файлами в браузере | Нет полноценного веб-диска | Есть |
| Публичные ссылки | Нет | Есть |
| Совместное редактирование | Не предусмотрено | Можно подключить |
| Лучший сценарий | Одинаковые папки на своих устройствах | Личное или командное облако |
Syncthing выбирают для незаметной фоновой синхронизации. Nextcloud — когда нужны веб-доступ, ссылки, учетные записи, календарь и совместная работа.
Как установить Syncthing на VPS через Docker Compose
Ниже — установка для VPS с Ubuntu 24.04. Панель останется на локальном адресе сервера, а подключаться к ней будем через SSH-туннель.
1. Установите Docker
sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo systemctl enable --now docker2. Создайте каталог и Compose-файл
sudo mkdir -p /opt/syncthing/data
sudo chown -R 1000:1000 /opt/syncthing/data
cd /opt/syncthing
sudo nano compose.yamlВставьте:
services:
syncthing:
image: syncthing/syncthing:latest
container_name: syncthing
hostname: syncthing-vps
environment:
- PUID=1000
- PGID=1000
- STGUIADDRESS=
volumes:
- ./data:/var/syncthing
network_mode: host
restart: unless-stoppedИспользуется официальный образ Syncthing. Режим host помогает устанавливать прямые соединения, а пустое значение STGUIADDRESS оставляет панель на 127.0.0.1:8384.
Запустите контейнер:
sudo docker compose up -d
sudo docker compose ps3. Разрешите соединения
Сначала откройте SSH, чтобы не потерять доступ:
sudo ufw allow OpenSSH
sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp
sudo ufw enable22000/TCP используется основным протоколом синхронизации, 22000/UDP — QUIC. Порт панели 8384 открывать не нужно. Порт локального обнаружения 21027/UDP обычно не требуется на публичном VPS.
4. Откройте панель через SSH
На своем компьютере выполните:
ssh -L 9999:127.0.0.1:8384 root@IP_СЕРВЕРАНе закрывая терминал, откройте:
http://127.0.0.1:9999После входа перейдите в Actions → Settings → GUI и задайте логин с паролем. Если позже панель понадобится по домену, размещайте ее за HTTPS-прокси и не отключайте авторизацию.
5. Добавьте устройства и папку
Установите Syncthing на компьютер, затем:
- На компьютере и VPS выберите Actions → Show ID.
- Добавьте Device ID каждого узла на другом устройстве.
- На компьютере нажмите Add Folder, выберите каталог и разрешите доступ серверу.
- На VPS примите папку и задайте путь, например
/var/syncthing/Files.
На компьютерах для двусторонней работы оставьте Send & Receive. На VPS удобно выбрать Receive Only: сервер продолжит принимать и передавать изменения между узлами, но случайные локальные правки на самом VPS не разойдутся по всей сети.
Почему Syncthing не заменяет бэкап
Если удалить или зашифровать файл на одном устройстве, изменение может попасть на остальные. Поэтому на VPS стоит открыть настройки папки и включить File Versioning.
Практичный вариант — Staggered File Versioning с хранением истории 30–90 дней. Когда удаленный узел заменяет или удаляет файл, прежняя версия помещается в .stversions. Старые копии занимают место, поэтому ограничьте срок хранения.
Надежная схема состоит из трех уровней:
- Syncthing поддерживает актуальные рабочие копии.
- Версионирование помогает отменить часть ошибок.
- Отдельный бэкап по расписанию хранится независимо от Syncthing.
Может ли VPS хранить файлы, не видя содержимое
У Syncthing есть режим недоверенного устройства. На основном компьютере для папки задается пароль, а на VPS выбирается Receive Encrypted. Сервер хранит зашифрованные данные и может передать их другому доверенному устройству с тем же паролем.
Скрываются содержимое, имена, временные метки и структура каталогов. Видимыми остаются данные об общей папке и приблизительные размеры файлов.
Разработчики пока считают эту возможность тестовой. Пароль и Folder ID нужно хранить отдельно: без них восстановление зашифрованной папки может оказаться невозможным.
Какой VPS нужен для Syncthing
Нагрузка зависит не только от объема данных, но и от количества файлов, частоты изменений и первого индексирования. Для личного узла с документами и несколькими десятками гигабайт обычно достаточно стартовой конфигурации:
- 1 vCPU;
- 1 ГБ RAM;
- SSD или NVMe;
- диск с запасом под файлы и
.stversions; - стабильное сетевое подключение.
Большая фотоколлекция или сотни тысяч файлов потребуют больше ресурсов. Основная нагрузка обычно возникает при первом сканировании и вычислении хешей.
Для такой задачи подойдет базовый VPS на tropic.host с Ubuntu. Начать можно с небольшой конфигурации и увеличить ресурсы вместе с объемом коллекции. При выборе диска учитывайте не только текущие папки, но и будущие файлы, временные данные и историю версий.
Пять ошибок, которых стоит избежать
- Открывать порт 8384 всему интернету. Для настройки используйте SSH-туннель, а для постоянного веб-доступа — HTTPS, пароль и обратный прокси.
- Считать серверную копию готовым бэкапом. Включите версии и делайте отдельные резервные архивы.
- Синхронизировать кэши и зависимости. Исключайте ненужные каталоги через
.stignore. - Не следить за диском. Каталог
.stversionsсо временем может занять значительный объем. - Оставлять потерянное устройство доверенным. Удалите его на остальных узлах и защитите конфигурацию Syncthing, в которой находятся ключи устройства.
Что важно знать о смартфонах
Официальное Android-приложение прекратило поддержку в конце 2024 года, но существуют клиенты сообщества. Официального клиента для iOS также нет: ограничения фоновой работы мешают постоянной синхронизации. Перед подключением основной фототеки стоит проверить выбранное мобильное приложение на небольшой тестовой папке.
Вывод
Syncthing подходит тем, кому нужны одинаковые папки на нескольких устройствах без обязательного облачного посредника. VPS делает систему удобнее: компьютеры больше не обязаны быть онлайн одновременно, а за пределами дома появляется постоянно доступная копия.
Для безопасной настройки достаточно не публиковать административную панель напрямую, включить версионирование и дополнить синхронизацию независимым бэкапом.
FAQ
Нужен ли VPS для Syncthing?
Нет. Устройства могут синхронизироваться напрямую. VPS нужен как постоянно включенный узел для обмена изменениями в разное время.
Можно ли открыть файлы Syncthing через браузер?
Веб-панель предназначена для настройки, а не для просмотра документов как в Google Drive. Для веб-диска лучше подойдет Nextcloud.
Является ли Syncthing резервным копированием?
Нет. Удаление и повреждение могут распространиться на другие устройства. Версионирование помогает, но не заменяет отдельный бэкап.
Нужно ли открывать порт 8384?
Нет. Оставьте панель на 127.0.0.1:8384 и подключайтесь через SSH-туннель. Для синхронизации откройте 22000/TCP и 22000/UDP.
Может ли владелец VPS прочитать файлы?
При обычной настройке — потенциально да. Режим Receive Encrypted хранит их зашифрованными, но пока считается тестовым и требует надежно сохранить пароль и Folder ID.
