bolt Valebyte VPS від $4/міс — NVMe, запуск за 60 секунд.

Отримати VPS arrow_forward
eco Початковий Туторіал

Встановлення та налаштування Syn

calendar_month Jul 13, 2026 schedule 20 хв. читання visibility 48 переглядів
Установка и настройка Syncthing на VPS для безопасной синхронизации файлов
info

Потрібен сервер для цього гайду? Ми пропонуємо виділені сервери та VPS у 50+ країнах з миттєвим налаштуванням.

Потрібен сервер для цього гайду?

Розгорніть VPS або виділений сервер за хвилини.

Встановлення та налаштування Syncthing на VPS для безпечної синхронізації файлів

TL;DR

У цьому посібнику ми покроково налаштуємо Syncthing на вашому VPS, щоб забезпечити приватну, децентралізовану та безпечну синхронізацію файлів між вашими пристроями. Ви отримаєте повний контроль над своїми даними, уникаючи хмарних провайдерів, і зможете підтримувати актуальні версії важливих файлів на всіх необхідних машинах.

  • Встановлення Syncthing через офіційний APT-репозиторій на Debian/Ubuntu.
  • Налаштування файрвола UFW для безпечного доступу до Syncthing Web UI та портів синхронізації.
  • Запуск Syncthing як системної служби за допомогою systemd для автоматичного старту та стабільної роботи.
  • Захист Web UI за допомогою HTTPS, використовуючи Caddy як зворотний проксі-сервер з автоматичним Let's Encrypt.
  • Практичні поради щодо бекапів конфігурації та даних, а також підтримки системи в актуальному стані.

Що ми налаштовуємо і навіщо

Схема: Що ми налаштовуємо і навіщо
Схема: Що ми налаштовуємо і навіщо

У сучасному світі, де дані є найціннішим активом, необхідність у надійній та безпечній синхронізації файлів між різними пристроями стає критично важливою. Безліч компаній пропонують хмарні рішення, такі як Dropbox, Google Drive або OneDrive, але вони часто пов'язані з компромісами в галузі приватності, безпеки та контролю над вашими власними даними. Ми налаштовуємо Syncthing — безкоштовне, децентралізоване, відкрите програмне забезпечення для безперервної синхронізації файлів.

Syncthing дозволяє вам синхронізувати файли між двома або більше комп'ютерами в реальному часі, без необхідності зберігати їх на сторонніх серверах. Це означає, що ваші дані переміщуються безпосередньо між вашими пристроями, використовуючи наскрізне шифрування. Налаштування Syncthing на власному VPS дає вам повний контроль над одним із вузлів синхронізації, забезпечуючи його постійну доступність та стабільність, що особливо корисно для бекапів, обміну файлами в команді або підтримки актуального робочого середовища.

У підсумку, ви отримаєте свою власну приватну та безпечну "хмарну" синхронізацію, повністю контрольовану вами. Це ідеальне рішення для розробників, які хочуть синхронізувати свої проєкти між робочою станцією та ноутбуком, для solo-фаундерів, яким потрібно підтримувати актуальні документи та конфіги команди, для криптоентузіастів, які бажають синхронізувати важливі файли без ризику витоку, або для будь-кого, хто цінує приватність і не хоче довіряти свої дані стороннім сервісам.

Альтернативи та чому self-hosted на VPS:

  • Cloud-managed сервіси (Dropbox, Google Drive): Зручні, але ви втрачаєте контроль над даними, вони зберігаються на чужих серверах, піддаються політиці провайдера та потенційним витокам. Для чутливих даних це неприйнятно.
  • Nextcloud/ownCloud: Це більш комплексні рішення, що пропонують не тільки синхронізацію, але й безліч інших функцій (календарі, контакти, редагування документів). Вони потужніші, але й значно складніші в установці, налаштуванні та обслуговуванні, вимагають більше ресурсів. Syncthing фокусується виключно на синхронізації файлів і робить це винятково добре та ефективно.
  • Rsync: Чудовий інструмент для односторонньої синхронізації та бекапів, але не надає безперервну двосторонню синхронізацію в реальному часі, як Syncthing.

Вибір self-hosted Syncthing на VPS зумовлений прагненням до максимальної приватності, безпеки та контролю. VPS надає стабільну платформу для роботи одного з вузлів Syncthing, який може бути завжди онлайн, служити центральною точкою для синхронізації всіх ваших пристроїв або надійним сховищем для бекапів.

Який VPS-конфіг потрібен під це завдання

Схема: Який VPS-конфіг потрібен під це завдання
Схема: Який VPS-конфіг потрібен під це завдання

Вибір відповідного VPS для Syncthing залежить від кількох факторів: обсягу даних, які ви плануєте синхронізувати, кількості файлів, що синхронізуються, числа підключених пристроїв та інтенсивності операцій введення-виведення (I/O).

Мінімальні вимоги

Для базової установки Syncthing, синхронізації кількох десятків гігабайт файлів та 2-3 пристроїв, вам знадобиться досить скромний VPS:

  • CPU: 1 vCPU (сучасний Intel Xeon або AMD EPYC). Syncthing активно використовує CPU для хешування файлів та шифрування.
  • RAM: 1 GB. Якщо ви плануєте синхронізувати дуже велику кількість дрібних файлів (сотні тисяч), може знадобитися 2 GB або більше, оскільки Syncthing тримає індекси файлів у пам'яті.
  • Диск: 25-50 GB SSD. SSD вкрай бажаний через інтенсивні операції читання/запису та індексації файлів. Обсяг диска має бути достатнім для зберігання всіх даних, що синхронізуються, плюс невеликий запас для операційної системи та бекапів.
  • Мережа: 100 Mbps з необмеженим трафіком або великим лімітом. Синхронізація даних може бути досить мережеємною.

Рекомендований VPS-план для більшості завдань

Для комфортної роботи з Syncthing, синхронізації до кількох сотень гігабайт даних та до 5-10 пристроїв, рекомендується наступна конфігурація:

Критерій Рекомендований Примітка
CPU 2 vCPU Забезпечить стабільну роботу при індексації та інтенсивній синхронізації.
RAM 2-4 GB Достатньо для великих індексів та паралельних операцій.
Диск 100-250 GB NVMe/SSD Висока швидкість I/O критична для Syncthing. Вибирайте обсяг залежно від ваших даних.
Мережа 1 Gbps з необмеженим трафіком Для швидкої передачі великих обсягів даних між вузлами.

VPS з такими характеристиками можна взяти у багатьох провайдерів. Наприклад, VPS із зазначеними характеристиками підійде для більшості завдань із синхронізації.

Коли потрібен Dedicated, а не VPS

Dedicated-сервер знадобиться у випадках, коли Syncthing стає критично важливим компонентом інфраструктури з дуже високими вимогами:

  • Дуже великі обсяги даних: Кілька терабайт і більше.
  • Величезна кількість файлів: Мільйони файлів, що вимагають постійної індексації та перевірки.
  • Висока інтенсивність I/O: Сервер виступає як центральний вузол для безлічі пристроїв, що активно синхронізуються.
  • Вимоги до продуктивності: Необхідність у максимальній швидкості синхронізації, коли VPS-ресурси стають вузьким місцем.

У цих сценаріях виділений сервер надасть гарантовані ресурси CPU, RAM та дискової підсистеми (наприклад, RAID-масиви з NVMe SSD), що неможливо на віртуалізованій платформі. Відповідний dedicated-сервер може бути розглянутий для таких вимогливих навантажень.

Локація: на що впливає

Вибір локації VPS важливий з кількох причин:

  • Затримка (Latency): Чим ближче сервер до ваших основних пристроїв, тим нижча затримка і швидше встановлюється з'єднання між вузлами Syncthing. Це особливо помітно при початковій синхронізації та при роботі з великою кількістю дрібних файлів.
  • Законодавство та приватність: Залежно від юрисдикції, де розташований ваш VPS, можуть діяти різні закони про зберігання даних та доступ до них. Якщо приватність є вашим головним пріоритетом, вибирайте країни з сильним законодавством про захист даних.
  • Пропускна здатність: Деякі регіони мають кращу зв'язність зі світовими магістралями інтернету, що може впливати на загальну швидкість синхронізації, особливо якщо ваші пристрої знаходяться в різних географічних точках.

Для більшості користувачів оптимальним буде вибір локації, найбільш близької до основного місця використання Syncthing.

Підготовка сервера

Схема: Підготовка сервера
Схема: Підготовка сервера

Перш ніж встановлювати Syncthing, необхідно виконати базове налаштування безпеки та оновити операційну систему. Ці кроки є стандартною практикою для будь-якого нового VPS.

Ми будемо використовувати Ubuntu Server 24.04 LTS (актуальна версія на 2026 рік) або Debian 12.

1. Підключення до сервера по SSH

Використовуйте SSH-клієнт для підключення до вашого VPS. Зазвичай провайдер надає IP-адресу та root-пароль.


ssh root@ВАШ_IP_АДРЕС_VPS

Після першого входу система може попросити змінити пароль root.

2. Створення нового користувача з правами sudo

Працювати під root-користувачем не рекомендується з міркувань безпеки. Створимо нового користувача та надамо йому права sudo.


# Замініть 'youruser' на бажане ім'я користувача
adduser youruser

Дотримуйтесь інструкцій, щоб створити пароль та ввести інформацію про користувача (можна залишити порожніми).

Тепер додайте користувача до групи sudo:


usermod -aG sudo youruser

3. Налаштування автентифікації за SSH-ключами (рекомендується)

Автентифікація за SSH-ключами значно безпечніша, ніж за паролем. Якщо у вас ще немає SSH-ключа, створіть його на своїй локальній машині:


# На вашій локальній машині
ssh-keygen -t rsa -b 4096 -C "[email protected]"

Скопіюйте публічний ключ на сервер:


# На вашій локальній машині
ssh-copy-id youruser@ВАШ_IP_АДРЕС_VPS

Тепер спробуйте увійти під новим користувачем:


# На вашій локальній машині
ssh youruser@ВАШ_IP_АДРЕС_VPS

Якщо вхід успішний, можна відключити вхід за паролем для root-користувача (це підвищить безпеку). Відредагуйте файл конфігурації SSH:


sudo nano /etc/ssh/sshd_config

Знайдіть та змініть наступні рядки (або додайте, якщо їх немає):


PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes

Збережіть зміни (Ctrl+O, Enter) та вийдіть (Ctrl+X). Перезапустіть SSH-сервіс:


sudo systemctl restart sshd

Переконайтеся, що ви можете увійти під новим користувачем за SSH-ключем, перш ніж закривати поточну root-сесію!

4. Налаштування файрволу (UFW)

UFW (Uncomplicated Firewall) — це зручна утиліта для керування iptables. Увімкнемо його та налаштуємо базові правила.


sudo apt update
sudo apt install ufw -y

Дозволимо SSH-з'єднання, порти Syncthing та Web UI:


sudo ufw allow ssh                               # Дозволити SSH (зазвичай порт 22)
sudo ufw allow 22000/tcp                         # Порт для обміну даними Syncthing
sudo ufw allow 22000/udp                         # Порт для обміну даними Syncthing (UDP для виявлення)
sudo ufw allow 8384/tcp                          # Порт для Web UI Syncthing
sudo ufw enable                                  # Увімкнути файрвол
sudo ufw status verbose                          # Перевірити статус файрволу

При увімкненні UFW він запитає підтвердження. Введіть y та натисніть Enter.

5. Встановлення Fail2Ban

Fail2Ban допомагає захиститися від брутфорс-атак, блокуючи IP-адреси, які роблять занадто багато невдалих спроб входу.


sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Базова конфігурація Fail2Ban вже захищає SSH. Для більш розширених налаштувань можна створити файл /etc/fail2ban/jail.local.

6. Оновлення системи та встановлення базових утиліт

Переконайтеся, що всі пакети оновлені до останніх версій та встановіть корисні утиліти.


sudo apt update && sudo apt upgrade -y             # Оновити список пакетів та всі встановлені пакети
sudo apt autoremove -y                             # Видалити непотрібні залежності
sudo apt install curl wget git htop screen -y      # Встановити корисні утиліти

Сервер тепер готовий до встановлення Syncthing.

Встановлення ПЗ — покроково

Схема: Встановлення ПЗ — покроково
Схема: Встановлення ПЗ — покроково

Ми встановимо Syncthing через офіційний APT-репозиторій, що є рекомендованим способом для Debian/Ubuntu, оскільки це забезпечує легкі оновлення та інтеграцію з системою. Передбачається, що на 2026 рік цей метод буде, як і раніше, актуальним та кращим.

1. Імпорт GPG-ключа Syncthing

Для того щоб система довіряла пакетам з репозиторію Syncthing, необхідно імпортувати його GPG-ключ.


# Отримати GPG ключ Syncthing
sudo curl -L -o /usr/share/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg

2. Додавання репозиторію Syncthing

Тепер додамо офіційний репозиторій Syncthing до списку джерел пакетів вашої системи. Ми використовуємо стабільну гілку.


# Додати репозиторій Syncthing для стабільної версії
echo "deb [signed-by=/usr/share/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list

3. Оновлення списку пакетів та встановлення Syncthing

Після додавання нового репозиторію необхідно оновити список пакетів, а потім встановити Syncthing.


# Оновити список пакетів
sudo apt update

# Встановити Syncthing
sudo apt install syncthing -y

Після встановлення Syncthing буде доступний у системі. Актуальна версія на 2026 рік буде, ймовірно, Syncthing 1.27.x або вище.

4. Перевірка встановленої версії

Переконайтеся, що Syncthing встановлено коректно та перевірте його версію:


# Перевірити версію Syncthing
syncthing --version

Вивід повинен показати щось на зразок syncthing v1.27.x "Fermium Flea" (go1.22.x linux-amd64) [email protected] 2026-XX-YY HH:MM:SS UTC.

5. Налаштування Syncthing як системної служби (systemd)

Syncthing повинен працювати як системна служба, щоб автоматично запускатися при старті сервера та працювати у фоновому режимі. Ми налаштуємо його для запуску від імені створеного раніше користувача (youruser).


# Увімкнути та запустити службу Syncthing для вашого користувача
sudo systemctl enable [email protected]
sudo systemctl start [email protected]

Перевірити статус служби:


# Перевірити статус служби Syncthing
sudo systemctl status [email protected]

Ви повинні побачити статус active (running).

За замовчуванням Syncthing створює свою конфігурацію та дані в домашній директорії користувача, наприклад, /home/youruser/.config/syncthing та /home/youruser/Sync.

Конфігурація

Схема: Конфігурація
Схема: Конфігурація

Після встановлення Syncthing та налаштування його як системної служби, перейдемо до його конфігурації. Наша мета — забезпечити безпечний доступ до Web UI та налаштувати синхронізацію.

1. Доступ до Syncthing Web UI

За замовчуванням Syncthing Web UI доступний на порту 8384. Ми вже дозволили цей порт у UFW. Відкрийте браузер і перейдіть за адресою: http://ВАШ_IP_АДРЕС_VPS:8384.

При першому запуску Syncthing створить файл конфігурації config.xml у директорії /home/youruser/.config/syncthing/.

Встановлення пароля для Web UI:

Вкрай важливо встановити пароль для доступу до Web UI. Зробіть це одразу після першого входу:

  1. У Web UI Syncthing перейдіть до Дії (Actions) -> Налаштування (Settings).
  2. Виберіть вкладку GUI.
  3. Встановіть Ім'я користувача (GUI Username) та Пароль (GUI Password).
  4. Натисніть Зберегти (Save).

Після цього вам доведеться заново авторизуватися. Це захистить ваш Syncthing від несанкціонованого доступу.

2. Захист Web UI за допомогою HTTPS (Caddy)

Доступ до Web UI по HTTP є небезпечним. Рекомендується використовувати HTTPS. Ми налаштуємо Caddy як зворотний проксі, який автоматично отримає та оновить SSL-сертифікати від Let's Encrypt.

Передбачається, що у вас є доменне ім'я (наприклад, sync.example.com), яке вказує на IP-адресу вашого VPS.

2.1. Встановлення Caddy

# Встановити необхідні пакети
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https

# Отримати ключ GPG Caddy
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg

# Додати репозиторій Caddy
echo "deb [signed-by=/usr/share/keyrings/caddy-stable-archive-keyring.gpg] https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main" | sudo tee /etc/apt/sources.list.d/caddy-stable.list

# Оновити список пакетів та встановити Caddy
sudo apt update
sudo apt install caddy -y
2.2. Конфігурація Caddyfile

Створіть або відредагуйте файл /etc/caddy/Caddyfile.


sudo nano /etc/caddy/Caddyfile

Видаліть весь вміст і додайте наступне, замінивши sync.example.com на ваш домен та youruser на ім'я вашого користувача Syncthing:


sync.example.com {
    reverse_proxy 127.0.0.1:8384 {
        # Syncthing вимагає специфічних заголовків для WebSocket
        header_up X-Syncthing-URI {uri}
        header_up X-Real-IP {remote_host}
        header_up X-Forwarded-For {remote_host}
        header_up X-Forwarded-Proto {scheme}
    }

    # Додаткові налаштування безпеки (необов'язково, але рекомендується)
    @forbidden {
        path /.git/
        path /data/
    }
    respond @forbidden 403

    # Перенаправлення HTTP на HTTPS
    redir / https://{host}{uri}
}

Збережіть файл (Ctrl+O, Enter) та вийдіть (Ctrl+X).

2.3. Налаштування файрволу для Caddy

Caddy слухає на стандартних портах HTTP (80) та HTTPS (443). Дозвольте їх у UFW та видаліть дозвіл для порту 8384, оскільки тепер доступ буде через Caddy.


sudo ufw allow http                       # Дозволити HTTP (порт 80)
sudo ufw allow https                      # Дозволити HTTPS (порт 443)
sudo ufw delete allow 8384/tcp            # Видалити дозвіл для порту 8384
sudo ufw reload                           # Перезавантажити файрвол
2.4. Запуск Caddy

Перевірте конфігурацію Caddy та перезапустіть службу:


sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl restart caddy
sudo systemctl enable caddy
sudo systemctl status caddy

Тепер ви зможете отримати доступ до Syncthing Web UI за адресою https://sync.example.com. Caddy автоматично отримає SSL-сертифікат.

3. Додавання пристроїв та папок

Тепер, коли Web UI захищений, можна приступити до налаштування синхронізації.

3.1. Додавання пристроїв

Кожен вузол Syncthing має унікальний ID пристрою. Його можна знайти у Web UI у правому верхньому куті (Дії (Actions) -> Показати ID пристрою (Show Device ID)).

  1. На вашому VPS (у Web UI) натисніть Додати віддалений пристрій (Add Remote Device).
  2. Введіть ID іншого вашого пристрою Syncthing.
  3. Дайте йому зрозуміле ім'я.
  4. На вкладці Спільні папки (Sharing) виберіть папки, які ви хочете синхронізувати з цим пристроєм.
  5. Повторіть процес на іншому пристрої, додавши ID вашого VPS.

Пристрої повинні "підтвердити" один одного для встановлення з'єднання.

3.2. Додавання папок

Щоб розпочати синхронізацію, потрібно створити або вибрати папки.

  1. Натисніть Додати папку (Add Folder).
  2. Вкажіть ID папки (Folder ID) (унікальний ідентифікатор, може бути згенерований автоматично).
  3. Вкажіть Шлях до папки (Folder Path) на вашому VPS (наприклад, /home/youruser/Sync/MyProject).
  4. На вкладці Спільні папки (Sharing) виберіть пристрої, з якими ви хочете синхронізувати цю папку.
  5. На вкладці Версіонування файлів (File Versioning) можна налаштувати збереження старих версій файлів (рекомендується для важливих даних).
  6. Натисніть Зберегти (Save).

Після цього на інших пристроях з'явиться запит на додавання цієї папки. Підтвердьте його, виберіть шлях та налаштування.

4. Перевірка працездатності

Переконайтеся, що Syncthing працює коректно:

  • Перевірка служби Syncthing:
    
    sudo systemctl status [email protected]
    

    Має бути статус active (running).

  • Перевірка служби Caddy:
    
    sudo systemctl status caddy
    

    Має бути статус active (running).

  • Доступ до Web UI: Спробуйте зайти за https://sync.example.com.
  • Статус синхронізації: У Web UI Syncthing переконайтеся, що пристрої підключені (зелений статус) та папки синхронізовані (Up to Date).
  • Перевірка логів Syncthing:
    
    journalctl -u [email protected] -f
    

    Тут можна побачити активність синхронізації, помилки та попередження.

Резервні копії та обслуговування

Схема: Резервні копії та обслуговування
Схема: Резервні копії та обслуговування

Регулярні резервні копії та своєчасне обслуговування є ключовими для забезпечення надійності та безпеки вашої системи Syncthing.

1. Що резервувати

Для Syncthing критично важливі два типи даних:

  • Конфігурація Syncthing: Це файли, розташовані у директорії /home/youruser/.config/syncthing/. Вони включають config.xml (з ID пристрою, налаштуваннями Web UI, списком пристроїв та папок), а також файли бази даних індексів.
  • Дані, що синхронізуються: Це самі файли та папки, які ви синхронізуєте (наприклад, /home/youruser/Sync/MyProject). Це ваш найцінніший актив.

2. Простий скрипт авторезервування

Для резервування конфігурації Syncthing можна використовувати простий скрипт. Для даних, що синхронізуються, рекомендується використовувати більш просунуті рішення, такі як BorgBackup або Restic, які забезпечують дедуплікацію та шифрування.

Приклад скрипта для резервування конфігурації (rsync)

Створіть директорію для резервних копій, наприклад, /home/youruser/backups.


mkdir -p /home/youruser/backups/syncthing_config

Створіть скрипт резервування, наприклад, /home/youruser/backup_syncthing_config.sh:


nano /home/youruser/backup_syncthing_config.sh

Вміст скрипта:


#!/bin/bash

# Директорія з конфігурацією Syncthing
SYNCTHING_CONFIG_DIR="/home/youruser/.config/syncthing"
# Директорія для збереження резервних копій
BACKUP_DIR="/home/youruser/backups/syncthing_config"
# Ім'я файлу резервної копії
BACKUP_FILENAME="syncthing_config_$(date +%Y%m%d_%H%M%S).tar.gz"

echo "Починаємо резервування конфігурації Syncthing..."

# Зупинити службу Syncthing для консистентного резервування
sudo systemctl stop [email protected]

# Створити архів конфігурації
tar -czf "$BACKUP_DIR/$BACKUP_FILENAME" -C "$(dirname "$SYNCTHING_CONFIG_DIR")" "$(basename "$SYNCTHING_CONFIG_DIR")"

# Видалити старі резервні копії (наприклад, старші 7 днів)
find "$BACKUP_DIR" -type f -name "syncthing_config_.tar.gz" -mtime +7 -delete

# Запустити службу Syncthing
sudo systemctl start [email protected]

echo "Резервування конфігурації Syncthing завершено: $BACKUP_DIR/$BACKUP_FILENAME"

Зробіть скрипт виконуваним:


chmod +x /home/youruser/backup_syncthing_config.sh

Додайте скрипт до Cron для щоденного виконання (наприклад, о 3:00 ночі):


crontab -e

Додайте рядок у кінець файлу:


0 3    /home/youruser/backup_syncthing_config.sh >> /home/youruser/backups/syncthing_config/backup.log 2>&1

Для резервування самих даних використовуйте BorgBackup або Restic на окремому сховищі (див. нижче).

3. Куди зберігати резервні копії

Вкрай важливо зберігати резервні копії на окремому від основного сервера ресурсі. Варіанти:

  • Зовнішнє S3-сумісне об'єктне сховище: Багато провайдерів пропонують S3-сумісні сховища (AWS S3, DigitalOcean Spaces, Backblaze B2). Це надійне та масштабоване рішення. Інструменти на зразок Restic або BorgBackup вміють працювати безпосередньо з S3.
  • Окремий VPS або NAS: Якщо у вас є інший VPS або домашній NAS, ви можете налаштувати туди синхронізацію резервних копій по SSH (з використанням rsync або sftp).

Приклад використання Restic для резервування даних на S3-сумісне сховище:

Встановіть Restic:


sudo apt install restic -y

Налаштуйте змінні оточення для S3 (не зберігайте їх у скрипті!):


# У файлі ~/.bashrc або /etc/environment
export RESTIC_REPOSITORY="s3:https://s3.REGION.PROVIDER.com/bucket-name"
export AWS_ACCESS_KEY_ID="ВАШ_КЛЮЧ"
export AWS_SECRET_ACCESS_KEY="ВАШ_СЕКРЕТ"
export RESTIC_PASSWORD="СЛОЖНЫЙ_ПАРОЛЬ_ДЛЯ_ШИФРОВАНИЯ_БЭКАПА"

Ініціалізуйте репозиторій Restic:


restic init

Створіть скрипт для резервування даних (наприклад, /home/youruser/backup_data.sh):


#!/bin/bash

# Завантажити змінні оточення, якщо вони не задані
if [ -f "/home/youruser/.bashrc" ]; then
  source "/home/youruser/.bashrc"
fi

# Шлях до папки з даними Syncthing
DATA_DIR="/home/youruser/Sync"

echo "Починаємо резервування даних Syncthing..."

# Створити резервну копію
restic backup "$DATA_DIR" --tag syncthing-data

# Очистити старі знімки (наприклад, зберігати 7 щоденних, 4 щотижневих, 12 щомісячних)
restic forget --prune --keep-daily 7 --keep-weekly 4 --keep-monthly 12

echo "Резервування даних Syncthing завершено."

Додайте його до Cron, як і скрипт для конфігурації.

4. Оновлення

Підтримка системи та ПЗ в актуальному стані є критично важливою для безпеки та стабільності.

  • Оновлення ОС та пакетів: Регулярно запускайте команди оновлення. Для Syncthing, встановленого через APT, це також оновить його до останньої стабільної версії.
    
    sudo apt update && sudo apt upgrade -y
    sudo apt autoremove -y
    
  • Оновлення Caddy: Caddy також оновлюється через APT.
  • Стратегія оновлень:
    • Rolling updates: Для некритичних систем можна просто запускати apt upgrade регулярно (наприклад, раз на тиждень за cron).
    • Maintenance window: Для більш важливих систем рекомендується планувати "вікно обслуговування", коли ви можете вручну виконати оновлення, протестувати систему та відкотити зміни у разі проблем.

Завжди читайте changelog-и перед великими оновленнями, щоб бути в курсі потенційних змін або проблем.

Вирішення проблем + FAQ

У цьому розділі зібрано відповіді на поширені запитання та рішення типових проблем, які можуть виникнути під час роботи з Syncthing на VPS.

Syncthing Web UI недоступний

Проблема: Ви не можете відкрити Web UI Syncthing за адресою https://sync.example.com або http://ВАШ_IP_АДРЕС_VPS:8384.

Що перевірити:

  • Служба Syncthing: Переконайтеся, що служба [email protected] активна.
    
    sudo systemctl status [email protected]
    
  • Служба Caddy (якщо використовується): Перевірте статус caddy.service.
    
    sudo systemctl status caddy
    
  • Файрвол (UFW): Переконайтеся, що порти 80 і 443 (для Caddy) або 8384 (для прямого доступу до Syncthing) відкриті.
    
    sudo ufw status verbose
    
  • Конфігурація Syncthing: Перевірте файл /home/youruser/.config/syncthing/config.xml. Переконайтеся, що в секції <gui> адреса прослуховування встановлена на 0.0.0.0:8384 або 127.0.0.1:8384 (якщо використовується проксі).
  • Логи Syncthing: Перевірте логи на наявність помилок.
    
    journalctl -u [email protected] -f
    

Як виправити: Перезапустіть відповідні служби, якщо вони не запущені. Виправте правила файрволу. Відредагуйте config.xml і перезапустіть Syncthing.

Пристрої не з'єднуються або довго підключаються

Проблема: Ваш пристрій Syncthing на VPS не може з'єднатися з іншими пристроями, або з'єднання дуже повільне.

Що перевірити:

  • Файрвол (UFW): Переконайтеся, що порт 22000 (TCP і UDP) відкритий на VPS.
    
    sudo ufw status verbose
    
  • ID пристроїв: Перевірте, що ID пристроїв введені коректно на всіх вузлах. Вони чутливі до регістру.
  • Глобальне виявлення: Переконайтеся, що глобальне виявлення увімкнено на всіх пристроях (або ви використовуєте статичні IP-адреси/DNS). У Web UI: Дії (Actions) -> Налаштування (Settings) -> вкладка Загальні (General) -> Глобальне виявлення (Global Discovery).
  • Мережеве з'єднання: Перевірте, що у всіх пристроїв є доступ до інтернету і вони можуть "бачити" одне одного.

Як виправити: Відкрийте необхідні порти у файрволі. Перевірте ID пристроїв. Переконайтеся, що немає блокувань на шляху (наприклад, на роутері). Якщо глобальне виявлення вимкнено, спробуйте додати IP-адреси пристроїв вручну в налаштуваннях віддалених пристроїв.

Низька швидкість синхронізації

Проблема: Файли синхронізуються дуже повільно, незважаючи на гарне мережеве з'єднання.

Що перевірити:

  • Пропускна здатність мережі: Переконайтеся, що VPS та інші пристрої мають достатню пропускну здатність. Перевірте трафік у Web UI Syncthing.
  • CPU та RAM: Syncthing активно використовує CPU для хешування та шифрування, а RAM для індексів. Перевірте завантаження CPU та використання RAM на VPS (htop).
  • Дисковий I/O: Повільні диски (особливо HDD на слабких VPS) можуть сильно сповільнювати синхронізацію, особливо при роботі з великою кількістю дрібних файлів.
  • Налаштування версіонування: Якщо увімкнено складне версіонування, це може збільшити навантаження на диск і CPU.
  • Кількість файлів: Синхронізація мільйонів дрібних файлів завжди буде повільнішою, ніж синхронізація кількох великих файлів.

Як виправити: Розгляньте оновлення VPS до більш потужного (більше CPU, RAM, NVMe SSD). Оптимізуйте налаштування версіонування. Використовуйте патерни ігнорування для виключення непотрібних файлів. Перевірте мережеві налаштування на всіх вузлах.

Який VPS-конфіг мінімально підійде?

Відповідь: Для запуску Syncthing та синхронізації помірного обсягу даних (до 100-200 ГБ) з 2-3 пристроями, мінімальний VPS повинен мати 1-2 vCPU, 1-2 ГБ оперативної пам'яті, 50-100 ГБ SSD-диска та мережевий канал не менше 100 Мбіт/с. Важливо, щоб диск був SSD, оскільки Syncthing інтенсивно працює з I/O для індексації файлів. Якщо ви плануєте синхронізувати дуже велику кількість дрібних файлів або дуже великі обсяги даних, рекомендується збільшити обсяг RAM та дисковий простір.

Що обрати — VPS чи dedicated для цього завдання?

Відповідь: Для більшості індивідуальних користувачів та невеликих команд VPS буде більш ніж достатньо. Він економічний та надає адекватні ресурси. Dedicated-сервер варто обирати, якщо ви працюєте з дуже великими обсягами даних (кілька терабайт), маєте справу з мільйонами файлів, що потребують постійної індексації, або якщо ваш Syncthing-вузол обслуговує безліч активних пристроїв і вимагає максимальної продуктивності I/O та CPU. У таких випадках виділений сервер гарантує стабільні та нерозділювані ресурси, що є критичним для високого навантаження.

Як забезпечити максимальну приватність?

Відповідь: Syncthing за замовчуванням використовує наскрізне шифрування для всіх переданих даних. Для максимальної приватності: 1) Вимкніть глобальне виявлення (Global Discovery) у налаштуваннях Syncthing і вручну додайте IP-адреси ваших пристроїв. 2) Використовуйте лише довірені пристрої. 3) Переконайтеся, що ваш VPS надійно захищений (SSH-ключі, файрвол, Fail2Ban). 4) Використовуйте HTTPS для доступу до Web UI (як ми налаштували з Caddy).

Як налаштувати версіонування файлів?

Відповідь: Syncthing має вбудовані механізми версіонування. У Web UI, при редагуванні або додаванні папки, перейдіть на вкладку "Версіонування файлів" (File Versioning). Ви можете вибрати один з кількох типів версіонування: "Кошик" (Simple File Versioning), "Послідовне" (Staggered File Versioning), або "Зовнішнє" (External File Versioning). "Послідовне" версіонування часто є хорошим компромісом, зберігаючи певну кількість версій файлу за різні періоди часу, що допомагає відновити файли після випадкового видалення або зміни.

Syncthing споживає багато ресурсів

Проблема: Syncthing використовує багато CPU або RAM.

Що перевірити:

  • Кількість файлів/папок, що синхронізуються: Чим більше файлів, тим більше пам'яті потрібно для їх індексації.
  • Інтенсивність змін: Якщо в папках, що синхронізуються, постійно відбуваються зміни, Syncthing буде активно працювати, хешуючи та передаючи дані.
  • Патерни ігнорування: Переконайтеся, що ви виключаєте із синхронізації непотрібні файли (наприклад, .git/, node_modules/, .DS_Store) за допомогою файлу .stignore.
  • Швидкість диска: Повільний диск може змусити Syncthing витрачати більше CPU на очікування I/O.

Як виправити: Додайте патерни ігнорування для непотрібних файлів. Розділіть великі папки на кілька менших, якщо це можливо. Оновіть VPS до більш потужного. У налаштуваннях папки можна обмежити частоту сканування або встановити більш рідкісне сканування.

Висновки та наступні кроки

Схема: Висновки та наступні кроки
Схема: Висновки та наступні кроки

Вітаємо! Ви успішно встановили та налаштували Syncthing на вашому VPS, створивши власне, повністю контрольоване та безпечне рішення для синхронізації файлів. Тепер ваші дані переміщуються між пристроями напряму, з використанням наскрізного шифрування, забезпечуючи приватність та незалежність від сторонніх хмарних сервісів. Ви отримали потужний інструмент для підтримки актуальності ваших файлів на всіх необхідних машинах, будь то для розробки, командної роботи чи особистих потреб.

Куди рухатися далі?

  1. Додайте більше пристроїв та папок: Тепер, коли основний вузол налаштований, ви можете легко підключити до нього всі свої комп'ютери, ноутбуки, смартфони та інші сервери для розширення вашої синхронізаційної мережі.
  2. Оптимізуйте налаштування: Вивчіть розширені налаштування Syncthing, такі як патерни ігнорування (.stignore), версіонування файлів, обмеження пропускної здатності та планування сканування, щоб адаптувати систему під свої унікальні потреби.
  3. Моніторинг та масштабування: Регулярно відстежуйте споживання ресурсів VPS (CPU, RAM, дисковий I/O) за допомогою таких інструментів, як htop або grafana/prometheus, щоб переконатися, що система працює оптимально. При зростанні обсягів даних або кількості пристроїв розгляньте можливість масштабування вашого VPS або переходу на більш потужний виділений сервер.

Поділитися цим записом:

встановлення та налаштування Syncthing на VPS для безпечної синхронізації файлів
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.