Syncthing: приватная синхронизация файлов между устройствами
Syncthing синхронизирует папки между компьютерами и телефоном напрямую, без облачного сервера: данные идут по зашифрованному соединению только между вашими устройствами. В Linux он ставится из репозитория, запускается пользовательской службой systemd и управляется через веб-интерфейс на порту 8384. Ниже настройка с нуля, приватная схема для дома и решение частых проблем.

Содержание
Как Syncthing синхронизирует файлы без облака
Syncthing держит одинаковое содержимое папок на нескольких устройствах и передаёт файлы напрямую между ними. Центрального сервера с вашими данными нет: ноутбук, домашний ПК и телефон договариваются друг с другом сами. Соединение шифруется TLS, а каждое устройство опознаётся по длинному идентификатору, производному от его сертификата.
Чтобы устройства нашли друг друга через интернет, Syncthing использует серверы обнаружения и, если прямое соединение не получается, ретрансляторы. Ретранслятор видит только зашифрованный поток, но знает IP-адреса сторон. Обе функции можно отключить, если устройства всегда в одной локальной сети или доступны через VPN.
В августе 2025 года вышла ветка 2.x, в 2026 году актуальна 2.1. Главное изменение второй версии - база данных на SQLite вместо LevelDB. При первом запуске после обновления с 1.x идёт миграция базы, на больших папках она занимает заметное время, и прерывать её не стоит. Устройства 1.x и 2.x синхронизируются друг с другом, но обновить всё до одной ветки всё равно разумно.
Одна оговорка до начала: Syncthing не резервная копия. Удалили файл на ноутбуке - он удалится и на остальных устройствах. Как защититься от этого, разберём в разделе про версии файлов.
Установка в Debian, Ubuntu, Fedora и Arch
Syncthing есть в репозиториях всех основных дистрибутивов:
sudo apt install syncthing # Debian, Ubuntu, Mint
sudo dnf install syncthing # Fedora
sudo pacman -S syncthing # Arch
В Debian и LTS-версиях Ubuntu пакет может отставать от текущей версии. Разработчики ведут собственный репозиторий, для второй ветки канал называется stable-v2:
sudo 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 update
sudo apt install syncthing
Для тех, кто не любит веб-интерфейс, есть графические обёртки. В KDE удобен Syncthing Tray: значок в панели с состоянием синхронизации. В GNOME обычно ставят расширение или Flatpak-приложение с аналогичной функцией. Работают они поверх того же Syncthing, настройки общие.
Запуск как пользовательской службы systemd
Syncthing должен работать постоянно, иначе синхронизировать будет нечего. Пакеты ставят готовые юниты systemd, остаётся включить нужный. На рабочем компьютере - пользовательская служба, она стартует при входе в систему:
systemctl --user enable --now syncthing.service
systemctl --user status syncthing.service
journalctl -e --user-unit=syncthing.service
На домашнем сервере или Raspberry Pi, где никто не входит в систему, удобнее системный экземпляр от имени конкретного пользователя:
sudo systemctl enable --now syncthing@ivan.service
Вместо ivan подставьте своего пользователя. Второй вариант для сервера - оставить пользовательскую службу и разрешить ей работать без входа: sudo loginctl enable-linger ivan. Не запускайте одновременно оба варианта для одного пользователя, они будут драться за одну конфигурацию.
Во второй версии конфигурация и база по умолчанию лежат в ~/.local/state/syncthing, у систем, обновлённых со старых версий, может остаться ~/.config/syncthing. Точный путь покажет syncthing paths. Идентификатор своего устройства выводит команда syncthing device-id. Про управление службами вообще есть отдельная статья о systemctl.
Веб-интерфейс, пароль и первые настройки
Управление идёт через браузер по адресу http://127.0.0.1:8384. При первом открытии Syncthing предупредит, что пароль не задан. Задайте его сразу: "Действия", "Настройки", вкладка "Графический интерфейс". То же самое делается из консоли:
syncthing generate --gui-user=ivan --gui-password=-
С дефисом вместо пароля Syncthing читает его со стандартного ввода, так пароль не попадёт в историю команд. В конфиг он записывается в виде хэша. Если служба уже запущена, перезапустите её после изменения.
На сервере без монитора интерфейс по умолчанию слушает только локальный адрес. Открывать его в сеть на 0.0.0.0 не нужно, достаточно SSH-туннеля с вашего компьютера:
ssh -L 8384:127.0.0.1:8384 ivan@192.168.1.50
После этого откройте http://127.0.0.1:8384 у себя в браузере, и вы попадёте в интерфейс сервера. В тех же настройках, на вкладке "Подключения", решается вопрос приватности: можно снять галочки "Глобальное обнаружение" и "Ретрансляция" и прописать адреса устройств вручную в виде tcp://192.168.1.50:22000.
Как связать два устройства и расшарить папку
- На первом устройстве откройте "Действия", "Показать ID" и скопируйте идентификатор или покажите QR-код.
- На втором нажмите "Добавить удалённое устройство", вставьте ID и дайте понятное имя.
- На первом устройстве появится запрос на подключение, примите его.
- Добавьте папку: "Добавить папку", укажите путь, а на вкладке "Совместный доступ" отметьте, с какими устройствами ею делиться.
- На втором устройстве примите приглашение и выберите, куда положить папку.
У каждой папки есть ID. Он должен совпадать на всех устройствах, а локальные пути могут быть разными: на ноутбуке ~/Документы, на сервере /srv/sync/docs.
Типы папок
| Тип | Что делает | Когда выбирать |
|---|---|---|
| Отправка и получение | Изменения идут в обе стороны | Обычные рабочие папки |
| Только отправка | Устройство раздаёт, чужие изменения игнорирует | Источник истины, например папка с фото на ПК |
| Только получение | Принимает, свои изменения не отправляет | Сервер-копия, куда никто не пишет |
| Получение в зашифрованном виде | Хранит данные зашифрованными, ключа не знает | Чужой VPS или компьютер друга |
Последний тип полезен, если хочется держать копию вне дома, но не доверять узлу. Пароль шифрования задаётся на доверенных устройствах при расшаривании папки на такое устройство.
Версии файлов, конфликты и .stignore
Включите хранение версий в свойствах каждой важной папки, вкладка "Управление версиями". Тогда удалённые или перезаписанные с другого устройства файлы не пропадают, а переносятся в скрытый каталог .stversions. Варианты:
- Корзина - хранит удалённое заданное число дней;
- Простое - держит несколько последних версий каждого файла;
- Поэтапное - чем старше версия, тем реже точки хранения, хороший выбор для документов;
- Внешнее - вызывает ваш скрипт.
Версии хранятся только на том устройстве, где включены, и защищают от изменений, пришедших извне. От шифровальщика или ошибки на всех машинах сразу спасёт только отдельный бэкап, схема описана в статье про Borg и Restic.
Если файл изменили на двух устройствах одновременно, Syncthing не будет выбирать за вас: одна версия останется, другая сохранится рядом как имя.sync-conflict-ДАТА-ВРЕМЯ-ID.ext. Найти такие файлы можно командой find ~/Sync -name "*.sync-conflict-*".
Лишнее исключается файлом .stignore в корне папки. Он не синхронизируется, его нужно создать на каждом устройстве или подключить общий файл через #include:
// .stignore
node_modules
.cache
*.tmp
(?d).DS_Store
(?d)Thumbs.db
Префикс (?d) разрешает Syncthing удалить такие файлы, если они мешают удалить каталог.
Порты, firewall и синхронизация через VPN
Syncthing использует порт 22000 по TCP и UDP для передачи данных, 21027/UDP для обнаружения в локальной сети и 8384/TCP для веб-интерфейса. Интерфейс наружу открывать не нужно. Если включён firewall, разрешите первые два:
# Ubuntu, ufw
sudo ufw allow syncthing
# Fedora, firewalld
sudo firewall-cmd --permanent --add-service=syncthing
sudo firewall-cmd --reload
Готовые профили приходят с пакетом syncthing. Если у вас собственный набор правил, смотрите статью про nftables.
Самая приватная схема для дома выглядит так: на сервере отключены глобальное обнаружение и ретрансляторы, устройства прописаны по адресам, а с улицы телефон и ноутбук попадают в домашнюю сеть через WireGuard. Тогда Syncthing вообще не обращается к внешней инфраструктуре. Настройка VPN описана в материале про WireGuard.
Android, большие папки и частые проблемы
Официальное приложение Syncthing для Android разработчики прекратили в конце 2024 года. Пользователи перешли на Syncthing-Fork, это сообщество развивает отдельно, приложение есть в F-Droid. Для iOS официального клиента не было никогда, есть сторонние платные приложения.
Синхронизация не стартует
Проверьте в интерфейсе, что оба устройства в статусе "Подключено". Если висит "Отключено", дело в сети: firewall, разные подсети без маршрута или выключенное обнаружение без прописанного адреса.
Ошибка про inotify
Для отслеживания изменений Syncthing ставит наблюдение на каждый каталог. На папках с сотнями тысяч подкаталогов лимит ядра может закончиться. Поднимите его:
echo "fs.inotify.max_user_watches=524288" | sudo tee /etc/sysctl.d/90-syncthing.conf
sudo sysctl --system
Папка в статусе "Остановлена"
Чаще всего Syncthing не нашёл скрытый маркер .stfolder в корне папки, например потому что диск не примонтировался. Это защита: без неё отсутствующий диск выглядел бы как "всё удалено". Примонтируйте диск, и синхронизация продолжится. Полное описание настроек есть в документации Syncthing.
Частые вопросы
Можно ли использовать Syncthing вместо резервного копирования?
Нет. Он копирует удаления и порчу файлов на все устройства. Хранение версий частично защищает, но полноценный бэкап с историей нужен отдельно.
Видит ли кто-то мои файлы через ретрансляторы?
Нет, поток зашифрован между вашими устройствами. Ретранслятор знает IP-адреса и объём трафика. Если это неприемлемо, отключите ретрансляцию и глобальное обнаружение.
Совместимы ли Syncthing 1.x и 2.x?
Да, устройства разных веток синхронизируются. Но лучше обновить все узлы до 2.x, чтобы не ловить различия в поведении.
Как перенести Syncthing на новый компьютер с тем же ID?
Скопируйте каталог конфигурации со старой машины, в нём лежат ключ и сертификат устройства. Путь покажет команда syncthing paths. Старую машину после этого отключите, два устройства с одинаковым ID работать не должны.
Сколько ресурсов потребляет Syncthing?
В простое почти ничего. Нагрузка на процессор и диск растёт при первичном сканировании и больших изменениях, особенно на слабых машинах вроде Raspberry Pi.
Документация и источники
- Syncthing Documentation, Syncthing Foundation, 2026
- Starting Syncthing Automatically, Syncthing Foundation, 2026
- Debian/Ubuntu Packages, Syncthing Foundation, 2026
- Syncthing, ArchWiki, 2026
Читайте также
- Резервные копии в Linux: Borg или Restic и схема 3-2-1 дома
- WireGuard в Linux: свой VPN до домашней сети за полчаса
- Домашний сервер на Linux: хранение, резервные копии и сервисы
- Домашний сервер на Raspberry Pi 5: практическая сборка от железа до Docker
- Nftables: понятный firewall для домашнего компьютера и сервера
Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.