- Syncthing позволяет синхронизировать папки между несколькими устройствами с использованием зашифрованных P2P-соединений, без необходимости использования центральных серверов.
- Конфигурация основана на связывании устройств по их идентификаторам (Device ID) и определении общих папок с двунаправленной или однонаправленной синхронизацией.
- Такие функции, как презентеры, папки только для отправки/только для получения и версионирование, позволяют создавать гибкие кластеры и обеспечивать целостность данных.
- Это частная многоплатформенная альтернатива коммерческому облаку, идеально подходящая для личного использования, локального резервного копирования и небольших сред для совместной работы.

Если вы когда-либо пытались поделиться огромной папкой, предварительно загрузив её в облако, вы знаете, каково это. Подождите несколько часов, пока файлы будут загружены, а затем скачаны....и молитесь, чтобы у вас еще осталось место на счету. А теперь представьте передача файлов между двумя компьютерами Напрямую, без посредников, без искусственных квотных ограничений и с полным использованием доступной полосы пропускания. Именно в этом и заключается идея. Настройте Syncthing для P2P-синхронизации между компьютерами..
Syncthing на протяжении многих лет оставался одним из скрытых сокровищ свободного программного обеспечения: это легкий, кроссплатформенный и очень гибкий инструмент, позволяющий Синхронизация папок между устройствами без необходимости использования центральных серверов.. Работает на Windows, Linux, macOS, Android Она может работать даже на удалённых серверах или NAS-устройствах. В этой статье вы шаг за шагом и подробно узнаете, как её установить, как подключить к нескольким компьютерам, как создавать общие папки и как максимально эффективно использовать её как для личного пользования, так и для более сложных небольших P2P-кластеров.
Что такое Syncthing и как работает P2P-синхронизация?
Syncthing — это распределенная система синхронизации файлов. которая использует одноранговые (P2P) соединения между устройствами. Вместо загрузки данных на облачный сервер, ваши компьютеры, мобильные устройства или серверы образуют единое целое. кластер устройств, которые взаимодействуют напрямую друг с другом.
На каждом устройстве запущена небольшая служба (демон), отвечающая за... Отслеживайте общие папки, выявляйте изменения и передавайте файлы. к другим узлам в кластере. Весь трафик шифруется с использованием TLS, и каждая машина имеет свой собственный сертификат и закрытый ключ, автоматически генерируемые при первом запуске Syncthing.
Ключевым моментом является то, что Каждое устройство имеет уникальный идентификатор, или «идентификатор устройства».Этот идентификатор не связан с аппаратные средства В частности, переносится не сам сертификат Syncthing. Поэтому можно перенести всю конфигурацию с одного компьютера на другой, скопировав папку с конфигурацией, если только вы не пытаетесь использовать один и тот же идентификатор в двух местах одновременно.
На практике вы сами решаете, какие папки предоставлять в общий доступ, с какими устройствами и каким образом: у вас может быть двунаправленные папки для отправки и приемаТолько отправка или только прием. А в рамках одного кластера некоторые устройства могут выступать в роли «презентеров», отвечающих за Представляйте новые устройства остальным и распространяйте информацию о них. создавать более сложные топологии, чем простое соединение между двумя компьютерами.
Кроме того, Syncthing разработан для того, чтобы кроссплатформенный и простой в управленииОн имеет очень полный веб-интерфейс, а на некоторых системах — и собственные интерфейсы, такие как SyncTrayzor в Windows или syncthing-gtk в Linux, которые упрощают работу. Загрузка автоматические уведомления.

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

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