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

Якщо ви коли-небудь намагалися поділитися величезною папкою, попередньо завантаживши її в хмару, ви знаєте, що це таке. години очікування, поки файли завантажуються, а потім вивантажуються...і молячись, щоб у вашому обліковому записі ще залишилося місце. А тепер уявіть передавати файли між двома ПК безпосередньо, без посередників, без штучних обмежень квот та з повним використанням доступної пропускної здатності. Саме в цьому і полягає ідея Налаштування синхронізації для P2P-синхронізації між ПК.
Syncthing роками був однією з прихованих перлин вільного програмного забезпечення: легкий, кросплатформний та дуже гнучкий інструмент, який дозволяє Синхронізуйте папки між пристроями без необхідності використання центральних серверів. Працює на Windows, Linux, macOS, Android Він може працювати навіть на віддалених серверах або NAS-пристроях. У цій статті ви крок за кроком і детально розглянете, як його встановити, як підключити кілька комп’ютерів, як створювати спільні папки та як отримати від нього максимум користі як для особистого використання, так і для більш просунутих невеликих P2P-кластерів.
Що таке Syncthing і як працює P2P-синхронізація?
Syncthing — це розподілена система синхронізації файлів. який використовує однорангові (P2P) з’єднання між пристроями. Замість завантаження ваших даних на хмарний сервер, ваші комп’ютери, мобільні пристрої або сервери утворюють скупчення пристроїв, які безпосередньо взаємодіють один з одним.
На кожному пристрої працює невелика служба (демон), яка відповідає за Моніторинг спільних папок, виявлення змін та передача файлів до інших вузлів у кластері. Весь трафік шифрується за допомогою TLS, і кожна машина має власний сертифікат і закритий ключ, які автоматично генеруються під час першого запуску Syncthing.
Ключовим моментом є те Кожен пристрій має унікальний ідентифікатор або «ID пристрою»Цей ідентифікатор не пов'язаний з апаратні засоби Зокрема, переноситься не сам сертифікат Syncthing. Саме тому можна перенести всю конфігурацію з одного комп’ютера на інший, скопіювавши його папку конфігурації, за умови, що ви не намагаєтеся використовувати той самий ідентифікатор у двох місцях одночасно.
На практиці ви вирішуєте, якими папками ділитися, з якими пристроями та яким чином: ви можете мати папки для двостороннього надсилання та отриманнялише надсилання або лише отримання. А в межах одного кластера деякі пристрої можуть виступати в ролі «презентерів», відповідальних за представити нові пристрої іншим та поширити інформацію про них побудувати складніші топології, ніж простий зв'язок між двома комп'ютерами.
Крім того, Syncthing розроблений таким чином, щоб бути кросплатформний та легко керованийВін має дуже повний веб-інтерфейс, а на деяких системах — вбудовані фронтенди, такі як SyncTrayzor у Windows або syncthing-gtk у Linux, що спрощує роботу. завантаження автоматичні та сповіщення.

Встановлення Syncthing на різних системах
Одна з найбільших переваг Syncthing полягає в тому, що можна змішувати Операційна система без будь-яких проблемWindows з Linux, Linux з macOS, ПК з телефонами Android тощо. Ядро програми однакове; змінюється лише спосіб встановлення та інтеграція з системою.
Windows: Синхронізація + SyncTrayzor
У Windows офіційний бінарний файл Syncthing працює з командного рядка та за замовчуванням залишити вікно відкритим термінал під час бігу, зберігає ваші дані в AppData\Local і він не інтегрується безперешкодно з процесом входу. Щоб спростити ситуацію, найзручнішим рішенням є використання SyncTrayzor, контейнер, який відповідає за:
- Автоматичний початок синхронізації коли ви входите в систему.
- Згорнути в системний трей та показати індикатори значка та стану.
- шоу Сповіщення про зміни та підключення пристроїв.
- Забезпечити прямий доступ до інтегрованого веб-інтерфейсу.
SyncTrayzor можна завантажити з репозиторію GitHub у версії для встановлення або в портативній версії, і для його роботи потрібна .NET Framework. Після встановлення рекомендується переглянути його налаштування, щоб переконатися... Він запускається разом з Windows, згортається в системний трей і не перевантажує систему сповіщеннями. щоразу, коли пристрій входить або виходить.
macOS: Синхронізація рідної програми
На macOS немає прямого еквівалента SyncTrayzor, але є пакет синхронізації, упакований як додаток який інтегрує бінарний файл із системою. Його завантажують з офіційного репозиторію Syncthing для macOS та встановлюють, як будь-яку іншу системну програму.
Після початкового налаштування інтерфейс адміністрування залишається тим самим веб-сайтом, що й завжди, доступним з вашого браузера. Звідти ви зможете Налаштуйте автоматичний запуск та інші опції з власних налаштувань системи або за допомогою інструментів сторонніх розробників.
GNU/Linux: пакети, репозиторії та служби systemd
У Linux встановлення залежить від дистрибутива. Проект Syncthing підтримує користувацькі репозиторії для Debian та похідних програм, тоді як у системах типу CentOS, Fedora або подібних він зазвичай доступний через EPEL або інші репозиторії.
Після встановлення пакета, керування службою зазвичай здійснюється за допомогою systemd. Типова схема запуску від імені певного користувача:
systemctl enable syncthing@usuario
systemctl start syncthing@usuario
Хоча технічно ви могли б запустити це як корінь, Не рекомендується з міркувань безпекиЦе має сенс лише в умовах високого контролю, де ви єдиний користувач, а система добре захищена.
Він також існує в деяких дистрибутивах синхронізація-gtk, графічний інтерфейс на основі GTK, який забезпечує значок у треї, просте керування демоном та прямий доступ до веб-сайту адміністрування.

Android: Офіційний додаток та синхронізація з мобільними пристроями
На Android ви можете встановити Syncthing з Play Маркет або з F-DroidМобільний застосунок містить як сервіс синхронізації, так і інтерфейс, адаптований для сенсорного екрана, для керування пристроями, папками та дозволами.
Типове використання - автоматично синхронізувати папку камери з вашого мобільного телефону на ваш ПК або сервер, щоб кожна зроблена вами фотографія автоматично копіювалася на ваш настільний комп’ютер без необхідності Google Фото, iCloud або подібні сервіси.
Ручний запуск із доступним веб-інтерфейсом
У будь-якій системі ви можете запустити Syncthing вручну, вказавши адресу веб-інтерфейсу за допомогою варіант -gui-address, Наприклад:
syncthing -gui-address="0.0.0.0:8384"
Це відкриває графічний інтерфейс на порту 8384, що робить його доступним з будь-якої IP-адреси. Це корисно для початкових налаштувань або віддаленого адміністрування, але Не рекомендується залишати його відкритим без захисту.Нормально обмежуватися цим 127.0.0.1:8384 А якщо вам потрібно увійти ззовні, скористайтеся SSH з переадресацією портів або налаштування імені користувача та пароля для графічного інтерфейсу.
Перше знайомство з веб-інтерфейсом
Синхронізація в основному здійснюється з дуже зрозумілий та доступний веб-інтерфейсХоча ви можете відкрити його за допомогою комбінацій клавіш SyncTrayzor або syncthing-gtk, внутрішньо він завжди однаковий: сторінка, що обслуговується самим демоном на порту, який ви налаштували (за замовчуванням 8384 на localhost).
Цей інтерфейс організований у різні розділи:
- Головне меню (Дії/Налаштування, Перезапуск тощо).
- Область сповіщень для сповіщень про нові пристрої, помилки або статистику.
- Блок де папки синхронізовано.
- Панель “Цей пристрій"з інформацією з локального вузла."
- Список інші пристрої пов'язані.
- Посилання на документацію, спільноту та інші зовнішні ресурси.
- Вікна діалог, що розвивається що відкриваються внизу під час редагування папки, додавання пристрою тощо.
Під час першого входу в систему Syncthing, найімовірніше, запитає вас, чи хочете ви надсилати анонімну статистику Щоб допомогти з розробкою: кількість вузлів, версії, операційні системи… Ви можете прийняти це чи ні, а потім змінити це в налаштуваннях.
Налаштуйте ім'я користувача та пароль для графічного інтерфейсу
Якщо ви збираєтеся розкрити веб-інтерфейс за межами localhost, це важливо захистити його за допомогою автентифікаціїДля цього з головного меню перейдіть до Дії > Налаштування > Графічний інтерфейс користувача та визначте ім’я користувача та пароль. Вам слід повторити цю конфігурацію на всіх пристроях у вашій мережі.
Ідентифікатор пристрою та зв'язування вузлів
Серцем системи є Ідентифікатор пристроюЦей довгий буквено-цифровий код унікально ідентифікує кожен екземпляр Syncthing та використовується для авторизації з'єднань між вузлами кластера.
Як переглянути ідентифікатор вашого пристрою
Щоб переглянути свій ідентифікатор, у веб-інтерфейсі натисніть на Дії > Показати ідентифікаторВідкриється вікно з:
- Повний текстовий рядок ідентифікатора.
- Un QR-код, дуже практично, коли ви хочете додати мобільний телефон, відсканувавши з іншого пристрою.
Саме цей ідентифікатор вам знадобиться надіслати приватно іншій особі або примітку для додавання ця команда до решти ваших машин.
Зміна відображуваного імені пристрою
За замовчуванням Syncthing використовує назву операційної системи як назву пристрою, яку може читати людина, але ви можете змінити її, щоб зробити її зрозумілішою. Дії > Налаштування > Загальні Ви знайдете поле, де можна редагувати це ім'я.
Рекомендується вибрати ідентифікатор унікальний та стабільний у довгостроковій перспективі (наприклад, «ПК-настільний комп’ютер», «Ноутбук-робочий», «Сервер-домашній»), щоб уникнути плутанини, коли до однієї мережі підключено кілька пристроїв.
Додавання та прийняття віддалених пристроїв
Зв'язок між пристроями завжди взаємніЩоб два вузли з'єдналися, кожен з них повинен мати доданий ідентифікатор іншого та прийняти зв'язок.
Щоб додати віддалений пристрій: Тримайте під рукою ідентифікатор пристрою.
- У команді А натисніть на Додайте пристрій (або «Додати віддалений пристрій»).
- Вставте Ідентифікатор пристрою команди B в першому полі.
- Виберіть для цього вузла ім'я, яке може прочитати людина, або дозвольте йому використовувати те, яке він отримає від віддаленого пристрою.
- За потреби, на вкладці «Спільний доступ» виберіть, якими папками ви хочете поділитися відтепер.
- Збережіть зміни.
Синхронізація може Автоматичне виявлення інших пристроїв у локальній мережіТож іноді вам навіть не доведеться копіювати ідентифікатор; просто виберіть виявлений вузол і підтвердьте, що ідентифікатор збігається.
Коли команда А додає B, у команді B з'явиться a. сповіщення із запитом на прийняття нового пристроюПісля схвалення ви побачите те саме діалогове вікно із вже заповненими ідентифікатором та іменем, готове до збереження. З цього моменту обидва вузли будуть пов’язані та зможуть ділитися папками.
Створення та спільний доступ до синхронізованих папок
Після того, як два або більше пристроїв підключено, саме час створити першу спільну папкуОсновний процес дуже простий: на одному з комп’ютерів ви визначаєте папку, вибираєте шлях до неї у файловій системі та вибираєте пристрої, з якими вона буде спільно використовуватись. На інших вузлах ви приймаєте запрошення та призначаєте локальний шлях, де вона буде збережена.
Визначення нової папки на комп'ютері
На будь-якому пристрої натисніть кнопку «Додати папку»Ви побачите діалогове вікно з кількома вкладками, головною з яких є «Загальні». Там вам потрібно буде ввести:
- ярлик папки: назва, яку бачитимуть решта пристроїв (наприклад, «Мобільні фотографії», «Проекти», «vm_share»…).
- Шлях папкиабсолютний шлях у вашій файловій системі, точно так, як він відображається у вашому файловому провіднику (наприклад,
D:\Carpeta compartidaна Windows або~/syncthing/vm_shareна Linux).
Це гарна ідея дотримуватися логічна та послідовна структура А коли працюєте у Windows, пам’ятайте, як спільний доступ до однієї папки через мережуНаприклад, групування всіх папок Sync у спільний каталог (~/syncthing) замість того, щоб розкидати їх всюди. Це спрощує обслуговування та зменшує кількість помилок.
Далі перейдіть на вкладку «Спільне використання»Там ви побачите список усіх підключених пристроїв; виберіть ті, які ви хочете додати до цієї папки. Коли ви натиснете «Зберегти», Папку буде створено, а запрошення надіслано. до тих вузлів.
Прийняти спільну папку на інших пристроях
На віддалених комп’ютерах незабаром з’явиться сповіщення, яке свідчить про те, що інший пристрій хоче надати спільний доступ до папки з вами. Після прийняття відкриється те саме діалогове вікно налаштувань папки, де ви можете:
- Виберіть місцевий маршрут де він буде зберігатися (його не обов'язково називати так само, як і джерело).
- Перевірте тип папки (надсилання/отримання, лише надсилання, лише отримання).
- Налаштуйте розширені параметри сканування, обмеження простору, керування версіями тощо.
Якщо шлях не існує, синхронізація може автоматично створити каталогЗ цього моменту будь-який файл, який ви помістите в папку на одному з комп’ютерів, почне реплікувати та залишатися синхронізованим на решті призначених пристроїв.
Синхронізація P2P між кількома пристроями: радіальний та сітчастий кластер
Коли у вас лише два пристрої, все дуже просто: Зміни відбуваються від А до Б і від Б до А Далі жодної історії.
Припустимо, у вас є три пристрої: A, B та C. Спочатку ви можете підключити лише C до A. Це робить А бачить B та C, але B та C не знають одне одногоБудь-які дані, які потрібно передати з точки B до точки C, проходитимуть через точку A, яка стає вузьким місцем і центральною точкою відмови.
Щоб покращити це, Syncthing вводить концепцію "ведучий" (Представлення). Пристрій, позначений як презентер, може поширювати існування нових вузлів до інших пристроїв, з якими він надає доступ до папок. Тобто, якщо A є доповідачем і додає C, B також автоматично знатиме про C.
Щоб позначити пристрій як презентатор: активує введення нових вузлів.
- Розгорніть пристрій у списку та натисніть на нього Редагувати.
- Перейдіть на вкладку «Спільний доступ».
- Поставте прапорець "Ведучий" (або «Представлення»).
- Перевірте, чи спільні папки позначено правильно.
- Збережіть зміни.
Таким чином ви можете створити радіальний кластерЦентральний вузол, який представляє інші пристрої один одному. Великою перевагою є те, що навіть якщо презентер вимикається, Інші продовжуватимуть спілкуватися один з одним та синхронізувати даніКрім того, коли частина файлів знаходиться на кількох комп'ютерах, передача розподілена: кожен вузол може завантажувати блоки з кількох джерел, тим самим зменшуючи індивідуальне навантаження.
Також існує можливість створення сітчастий кластер Загалом усі пристрої позначають один одного як доповідачі. Це дуже гнучкий варіант, але в більшості випадків не рекомендується, оскільки Інформація з пристроїв має тенденцію до нескінченного повторенняЯкщо хтось відпишеться та буде видалений, його список може знову з'явитися, пересланий іншим вузлом, який його все ще має. Кінцевим результатом зазвичай є список, повний фантомних пристроїв, і що ще гірше, Syncthing відображатиме попередження, коли виявить взаємних доповідачів.
Типи папок: надсилання та отримання, лише надсилання, лише отримання
Поведінка папки за замовчуванням у Syncthing така: «Надіслати та отримати» (надсилання та отримання). Це означає, що будь-який із пристроїв, що беруть участь у цьому, може створювати, змінювати або видаляти файли, і ці зміни поширюватиметься в обох напрямках доки всі не будуть синхронізовані.
Однак, є сценарії, коли це небажано. Типовим прикладом є ситуація, коли ви хочете синхронізувати односпрямовано від А до Бщоб B отримав усі зміни, але ніколи не зміг їх відредагувати, навіть випадково.
Налаштування папки лише для надсилання або лише для отримання
Кожен пристрій може вирішувати самостійно, режим синхронізації кожної папки:
- Надіслати та отриматиповна двонаправлена синхронізація.
- Тільки надсиланняПристрій виступає в ролі джерела даних і не приймає зміни з мережі.
- Тільки отриманняПристрій завантажує зміни, але його локальні модифікації не поширюються.
Щоб змінити тип папки: Виберіть «Тип папки» в розділі «Додатково».
- Клацніть на заголовку папки, щоб розгорнути її панель.
- Натисніть на Редагувати.
- Відкрити розділ "Додатково" в рамках діалогу.
- Шукайте поле «Тип папки» і виберіть потрібний варіант.
- Збережіть зміни.
Важливо розуміти, що ця конфігурація виконана на кожному кінціНаприклад, у вас може бути пристрій A з папкою, налаштованою на «Тільки надсилання», і пристрій B з папкою, налаштованою на «Тільки отримання». У такому випадку, А буде авторитетним посиланням з папки, а B просто скопіює її вміст.
Якщо ви змінюєте файли локально на пристрої, налаштованому лише на отримання, Syncthing оброблятиме їх відповідно. небажані відмінностіВеб-інтерфейс покаже вам опцію скасування цих змін для узгодження з джерелом. Інші комп’ютери побачать, що папка не повністю синхронізована, доки цю невідповідність не буде вирішено.
Практичний приклад: синхронізація з A до B без зворотних змін
Уявіть, що у вас є два ПК, A та B, на яких працює Windows, і ви хочете Усі зміни, внесені в папку A, відображатимуться в папці B, але ніколи навпаки.Описана вами поведінка, коли папка, видалена з одного боку, відтворюється з іншого, типова для погано вирівняної двонаправленої конфігурації.
Щоб досягти точного потоку A → B, виконайте такі дії: налаштуйте протилежні типи на кожному кінці.
- На комп’ютері A налаштуйте папку як «Просто надішліть».
- На комп’ютері B налаштуйте ту саму папку, що й «Тільки отримувати».
- Переконайтеся, що обидва пристрої вказують на правильний маршрут і що вони підключені до мережі.
Звідти Будь-який файл, який ви видалите, зміните або створите в A, буде застосовано до BОднак зміни, внесені в B, не поширяться назад. Якщо ви створите підпапку в B, Syncthing зрештою запропонує вам можливість видалити цю невідповідність і повернутися до стану, встановленого A.
Компоненти конфіденційності, безпеки та синхронізації мережі
Хоча філософія Syncthing зосереджена на збереженні ваших даних на ваших пристроях, важливо знати, якою інформацією ділиться і які допоміжні служби задіяні в процесі.
Шифрування та видимість між пристроями
Зв'язок між вузлами завжди здійснюється через наскрізне шифрування TLS-з'єднаньвикористання локально згенерованих пар ключів та сертифікатів. Це запобігає неавторизованому зчитуванню або зміні ваших даних під час передачі третім особам.
Однак, у межах самого кластера, Кожен пристрій бачить деякі деталі про інші. з якою він пов’язаний: IP-адреса, операційна система, версія синхронізації, стан з’єднання (підключено, відключено, синхронізується тощо). Тому бажано обмежити зв'язки лише довіреними людьмиособливо коли йдеться про персональні пристрої, які розкривають ваші звички використання (наприклад, час підключення).
Допоміжні сервери: виявлення, ретрансляції та статистика
Окрім прямого P2P, Syncthing спирається на низку державні послуги, що управляються проектом:
- Глобальний сервер виявлення: дозволяє двом пристроям знаходити один одного за допомогою їхнього ідентифікатора пристрою, навіть якщо вони знаходяться за NAT, а їхні IP-адреси невідомі.
- Реле (ретранслятори)Коли неможливо відкрити порти або використовувати UPnP, деякі вузли вдаються до ретрансляційні сервери що діють як міст, але ціною втрати швидкості.
- Сервер списку ретрансляцій: центральний каталог, який показує, які реле доступні.
- Сервер оновлення: джерело, з якого Syncthing завантажує нові версії, коли ввімкнено автоматичне оновлення.
- Сервер статистики: збирає анонімні дані, якщо ви погоджуєтеся брати участь, для покращення розробки та розуміння того, як використовується програмне забезпечення.
Всі ці компоненти можуть замінити або деактивувати у розширених налаштуваннях налаштувати повністю приватну мережу або скористатися методами для безпечний обмін файлами (Наприклад, в організації з власним сервером виявлення та внутрішніми ретрансляціями). Однак, якщо у вас немає конкретної потреби, зазвичай краще залишити конфігурацію за замовчуванням, яка пропонує дуже розумний баланс між зручністю та контролем.
Розширені опції, корисні у повсякденному житті
Окрім основ, Syncthing інтегрується розширені функції що дозволяє точно налаштувати синхронізацію та адаптувати її до складніших сценаріїв.
Параметри папки: сканування, простір та метадані
Під час редагування папки та переходу на вкладку "Додатково", ви знайдете такі варіанти, як:
- Інтервал сканування: як часто перевіряються зміни у файловій системі, а також сповіщення в режимі реального часу.
- Обмеження дискового простору: мінімальний відсоток вільного простору, щоб уникнути повного заповнення розділу.
- Замовлення на перевірку файлу та пріоритет сканування.
- Синхронізація дозволи, власник та інші метадані залежно від операційної системи.
Ігнорування файлів, спільний доступ до більшої кількості пристроїв та керування версіями
В інших вкладках у вас є дуже практичні інструменти для фільтрувати та зберігати версії:
- Поділ: додати або видалити пристрої-учасники у вже створеній папці.
- Ігнорувати шаблони: вкажіть шаблони файлів або підпапок, які не потрібно синхронізувати (наприклад,
*.tmp, каталоги.gitІ т.д.). - Версія файлівНалаштуйте спосіб збереження попередніх версій змінених або видалених файлів. Синхронізація може зберігати кілька старих копій, щоб створити буфер на випадок помилок.
Віддалений доступ до графічного інтерфейсу та налаштування на серверах
Коли ви використовуєте Syncthing на віддаленому сервері або на машині без графічного середовища, веб-інтерфейс стає ще важливішим. Графічний інтерфейс дозволяє керувати всім віддалено.. Може:
- Зміна IP-адреси прослуховування графічного інтерфейсу в Дії > Налаштування > Графічний інтерфейс користувача щоб він приймав з’єднання з локальної мережі або з певної IP-адреси.
- Редагувати файл вручну
~/.config/syncthing/config.xmlщоб змінити адресу, якщо ви тимчасово не можете отримати доступ до веб-сайту. - Використовуйте a Тунель SSH перенаправити порт 8384 із сервера на вашу локальну машину та керувати Syncthing так, ніби ви сидите перед нею.
У системах із systemd пам’ятайте, що якщо ви змінюєте сервісний блок (/etc/systemd/system/syncthing@usuario.service), вам потрібно буде запустити systemctl daemon-reload і перезапустіть службу, щоб зміни набули чинності.
Пристрасний письменник про світ байтів і технологій загалом. Я люблю ділитися своїми знаннями, пишучи, і саме це я буду робити в цьому блозі, показуватиму вам все найцікавіше про гаджети, програмне забезпечення, апаратне забезпечення, технологічні тренди тощо. Моя мета — допомогти вам орієнтуватися в цифровому світі в простий і цікавий спосіб.
