LINUX.ORG.RU

Syncthing: ваше личное, децентрализованное и свободное облако

 , , ,


1

4

Syncthing — это свободный P2P‑инструмент синхронизации файлов между вашими устройствами без централизованного облака и подписок. Данные остаются у вас, ключи — у вас, инфраструктура — тоже у вас.

Это обзорная статья, написанная, чтобы дать читателю представление о технологии. Здесь нет конкретных команд для запуска и технических деталей. Вместо этого я предлагаю читателю установить Syncthing и самостоятельно попробовать его на практике.

Проблемы коммерческих «облаков» и как Syncthing отстаивает нашу свободу

Когда мы загружаем файл в коммерческое облако, мы, по сути, отдаем его на хранение третьей стороне. Что это значит на деле:

  • Потеря контроля: Ваши файлы лежат на чужих серверах. Корпорация может в любой момент изменить условия обслуживания, заблокировать ваш аккаунт или, в худшем случае, потерять ваши данные.
  • Отсутствие приватности: Несмотря на все заверения в безопасности, ваши файлы могут быть просканированы алгоритмами для показа рекламы, проанализированы для сбора метаданных или предоставлены спецслужбам по запросу.
  • Vendor Lock-in: Вы привязываетесь к одной экосистеме. Переезд с одного облака на другое становится проблемой. Корпорации не заинтересованы в использовании открытых протоколов и сторонних приложений, и даже если у конкретного облака есть доступ для сторонних приложений, он может быть ограничен или закрыт в любой момент.
  • Зависимость от интернета: Нет доступа к серверам корпорации — нет доступа к вашим файлам, даже если ваши устройства находятся в одной комнате.

Syncthing — это противоположность вышеописанному. Это не сервис, а программа. Она не хранит ваши данные на центральном сервере, потому что центрального сервера просто нет. Ваши данные синхронизируются напрямую между вашими устройствами (Peer-to-Peer). Вы — единственный владелец и контролёр своих данных.

Это не «облако» в том смысле, который сейчас подразумевают корпорации. Однако это облако в том смысле, который вкладывался в этот термин изначально. Хранение и обработка данных отвязаны от конкретных физических машин и их настроек. Вместо этого программная среда, в которой живут ваши данные, существует как бы «поверх» машин. Конкретная машина становится несущественна для целостности данных.

Таким образом, ваше облако — это ваши машины.

Ключевые особенности

  • Пиринговая (P2P) синхронизация папок между устройствами в реальном времени.
  • Вы контролируете носители и маршрут данных. Нет аккаунтов, логинов, чужих серверов, которым нужно «доверять».
  • Децентрализация: ваши устройства составляют «облако». Вы не платите подписку за хранение данных, вы используете накопители, которые купили и физически ими владеете.
  • Отсутствует выделенная роль «сервера». Любое устройство может быть источником/получателем.
  • Сквозное шифрование трафика, идентификация пиров по криптографическому Device ID.
  • Приложение имеет веб‑интерфейс, управляется через браузер либо через REST API.
  • Свободная лицензия — MPL 2.0, воспроизводимые сборки. Нет «черных ящиков» и vendor lock‑in.
  • При желании можно поднять собственные discovery/relay-серверы либо использовать публичные.

Гибкая организация облачных папок

С Syncthing очень легко создавать новые расшаренные папки. Нет необходимости складывать всё в единственную папку. Вместо одной большой папки «Dropbox» или «Яндекс.Диск» вы создаете логические группы для разных типов данных. Это позволяет тонко настроить, что и где хранить.

Вот некоторые примеры, какие папки использую я. У каждой папки можно задать свои настройки версионирования и на каких устройствах она хранится.

  • Vadim-Min — «минимальное» облако с важными данными, которые желательно иметь на всех устройствах.
  • Vadim-General — различные рабочие и личные файлы более крупного размера.
  • Vadim-Media — крупные файлы, в основном видео, скачанные из соцсетей и других мест. Обычно это временные файлы: просмотреть видео, проанализировать, удалить.
  • Vadim-Photo — личный фотоальбом за несколько лет, сортированный по годам и темам.
  • Vadim-Нужности — различная документация и прочие скачанные из интернета файлы, которые важно иметь под рукой.
  • Vadim-Архив — сжатые резервные копии текущих проектов и архивы старых проектов, неактуальные данные.
  • Камера-{модель_смартфона} — папки, зеркалирующие каталог DCIM на моих смартфонах. Фотографии, сделанные на смартфоне, сразу становятся доступны на компьютере. На компьютере я могу просмотреть, удалить, рассортировать фото, перенести фотографии в папку Vadim-Photo. Удаления файлов синхронизируются обратно на смартфон, таким образом одновременно я еще и на нём освобождаю место.
  • Несколько папок, синхронирующихся с рабочими компьютерами в организации и с личными ПК знакомых, чтобы обмениваться рабочими файлами.

Примечание: Если вы используете файловую систему с дедупликацией, например btrfs, то вы можете без дополнительных затрат места на диске держать идентичные копии файлов в разных расшаренных папках.

Версионирование файлов

Syncthing умеет сохранять старые версии изменённых/удалённых файлов — это и «страховка от ошибки», и элемент стратегии бэкапа.

Варианты:

  • Trash Can: хранение только одной копии удалённого/изменённого файла.
  • Simple: хранит фиксированное число последних ревизий.
  • Staggered: «ступенчатая» ротация.
  • External: передача управления внешнему скрипту.

Для каждой облачной папки на каждом устройстве можно выставить отдельные настройки версионирования. Это позволяет гибко выбирать между надёжностью и экономией места на устройстве.

Обнаружение конфликтов

Syncthing автоматически отслеживает конфликты правок, когда файл изменялся с нескольких устройств.

В этом случае он выбирает более свежий по дате вариант файла как основной, а прочие — как конфликтные. Конфликтные варианты переименовываются в <filename>.sync-conflict-<date>-<time>-<modifiedBy>.<ext>, и затем эти файлы распространяются по облаку в обычном порядке.

Syncthing не делает предположений о том, кто и как ответственен за решение конфликта правок, потому он просто доводит эти файлы до всех пиров и даёт пользователю возможность самому разобраться. Информация о имеющихся конфликтах отображается в веб-интерфейсе программы.

Примечание: По моему опыту, Syncthing крайне редко обнаруживает «ложно-положительные» конфликты (т.е. когда конфликта правок на самом деле нет, но облако считает, что есть). Этим он выгодно отличается от некоторых коммерческих решений, с которыми мне приходилось иметь дело ранее. В том случае ложные конфликты и потеря файлов были обычным делом.

Режимы работы папок

  • Send & Receive — режим по умолчанию. Изменение на любом устройстве распространяется на все остальные. Основной вариант для синхронизации рабочих документов между десктопом, ноутбуком и смартфоном.
  • Send Only. Устройство в этом режиме является «авторитетным источником». Оно отправляет свои изменения файлов другим узлам, но игнорирует изменения, приходящие от них.
  • Receive Only Устройство только принимает и ретранслирует изменения, но не отправляет изменения, которые внесены локально. Подходит для сервера-архива или медиа-сервера, который должен хранить актуальную копию файлов, но сам их не изменять.

Следует отметить, что режим работы папки контролируется тем пиром, на котором, собственно, выставлена настройка. Пиры не знают и не проверяют, какие режимы стоят у других пиров. Таким образом, например, режим Receive Only защищает от случайного распространения изменений, внесенных локально. Но не от злоумышленника, который получил контроль над узлом. Чтобы злоумышленник не мог безвозвратно испортить ваши файлы, включите версионирование на более чем одном устройстве. Чем больше устройств с версионированием включено - тем выше избыточность и надёжность хранения версий.

Зашифрованные реплики на недоверенных машинах (Receive Encrypted)

Хотите держать копию на VPS, но чтобы владелец машины не имел доступа к данным? Для этого есть особый тип папки — Receive Encrypted:

  • На «недоверенном» узле файлы хранятся только в зашифрованном виде. Шифруется как содержимое файлов, так и их имена и структура директорий.
  • Расшифровка возможна лишь на доверенных устройствах, где настроен «обычный» (нешифрованный) режим папки.
  • Используется симметричное шифрование. Шифрование и расшифровка выполняются по паролю, известному доверенным узлам.
  • Отлично подходит для внешнего бэкапа без доверия: дешёвый VPS превращается в безопасный архив.

Ограничение очевидно: на таком узле содержимое просматривать/использовать/модифицировать нельзя — только хранить и ретранслировать.

Сеть

Прямая работа в LAN:

  • Локальное обнаружение пиров, никакого выхода в интернет.
  • Скорость ограничена только вашей сетью, удобно для домашнего/офисного сегмента.

Интернет и NAT:

  • Global Discovery — глобальные discovery‑серверы помогают узлам узнать внешние адреса друг друга. Есть публичные, можно поднять свои.
  • Relay Servers — ретрансляторы, когда прямое соединение через NAT не складывается. Есть публичные, можно поднять свои.

Важно: discovery/relay — это лишь «сигнализация» и транспорт. Данные остаются шифрованными end‑to‑end, а аутентификация машин — через Device ID.

Поддерживаемые ОС

  • Linux (включая серверные дистрибутивы и NAS), Windows, macOS, Android.
  • Пакеты есть во многих репозиториях; Android‑клиенты доступны в F‑Droid.
  • Также доступны пакеты для FreeBSD, OpenBSD, Illumos.

Syncthing‑Lite на Android: доступ «по требованию»

Сейчас развивается приложение Syncthing‑Lite для Android — оно позволяет работать с вашим облаком Syncthing без загрузки полной копии файлов на телефон:

  • Просмотр структуры, выборочная загрузка/кэширование «по клику».
  • Добавление локальных файлов в облако.
  • Экономия места на смартфоне, удобно для больших медиатек и архивов.
  • Расширяет сценарии использования: телефон — вьювер/клиент, а полные копии живут на ПК/сервере.

Этот проект является возрождением старой версии приложения, которая была уже какое-то время брошена.

К сожалению, прямо сейчас у меня приложение не заработало - соединение между пирами есть, но оглавление папки не загрузилось. Такого приложения очень не хватает для расширения возможностей Syncthing. Надеюсь, что разработчик продолжит работу над ним.

Ну а пока это приложение в разработке, вы можете воспользоваться стабильной версией «обычного» варианта приложения: https://github.com/Catfriend1/syncthing-android.

Заключение

Syncthing — это не просто утилита, а технология, меняющая принцип хранения и доступа к данным. Это практический инструмент, который даёт пользователю безопасность и свободу в управлении своими данными. Он реализует принципы свободного программного обеспечения не просто по букве, но и по духу.

★★★

Проверено: hobbit ()
Последнее исправление: wandrien (всего исправлений: 2)

Пользовался 6 лет назад, и у меня файлы регулярно оказывались в рассинхронизированном состоянии. И это при том, что был выделенный комп с белым IP, включенный всегда. Пришлось перейти на централизованные решения на webdav. Хорошо если с тех пор что-то поменялось.

Khnazile ★★★★★
()
Ответ на: комментарий от Khnazile

Я активно начал пользоваться с осени 22-го года. Таким образом, пользуюсь уже три года.

Проблем с потерей синхронизации не замечал.

Есть мелкие косяки иного рода:

  • Может пытаться скачивать с медленного устройства при наличии быстрого. Не увидел настроек приоритета устройств. Просто ставлю на паузу доступ к медленному устройству в таких случаях.
  • В случае сложной топологии соединения пиров может залипнуть синхронизация удалённых файлов: Пир 1 считает, что у него всё синхронизировано; пир 2 считает, что на пире 1 отсутствует часть файлов с пира 3; пир 3 считает, что эти файлы удалены, у него их нету больше. Лечится: touch, подождать синхронизации, rm.
  • Веб-интерфейс хотелось бы получше.
wandrien ★★★
() автор топика
Последнее исправление: wandrien (всего исправлений: 2)

Это обзорная статья, написанная, чтобы дать читателю представление о технологии. Здесь нет конкретных команд для запуска и технических деталей.

…Но несколько базовых команд для начала работы я бы всё же привёл. Это ЛОР, и то, что чужие облака это плохо, здесь всё же большинство понимает (я надеюсь). А вот «как вкатиться» по технической части – совсем немного, 3-4 абзаца – не повредило бы.

Кстати, ссылка на сайт Syncthing‑Lite в статье есть, а ссылку на офсайт самого Syncthing я не вижу. Ты ещё можешь текст править? Если нет, могу временно вернуть в неподтверждённые.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)

активно пользуюсь лет очень много. правда с переменным успехом перехожу на бесплатный вариант ресилио.
последний раз перешел с синхфинга много лет назад, по причине нестабильной работы врапера под андроид и прочих мелких косяков :(. то же обнаружение конфликтов сделано криво и задалбливает постоянно чистить ошметки конфликтов.

до сих пор лежит в запасниках ссылка Как вы организовали бекапы на своих компьютерах? (комментарий)

очень сильно не хватает инструмента посылки файла в раздачу. это в обоих вариантах и в сихфинге и в ресилио.
sincthing-lite смотрю снова ковырять начали. вот такое же но под линукс было бы бомба.

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 5)
Ответ на: комментарий от hobbit

На официальном сайте Syncthing находится нарушение законов РФ.

Тогда вот сюда ссылку хотя бы: https://github.com/syncthing/syncthing

Щас добавлю.

А вообще - в репозиториях всех основных дистрибутивов пакет есть.

wandrien ★★★
() автор топика

Упоминание «облаков» в связке с Syncthing - на мой взгляд некорректно. Потому что это полная синхронизация файлов в нескольких местах хранения - и не более. На каждом устройстве, где Вы используете Syncthing - вам надо иметь место под полный набор всех файлов в этом хранилище, потому что подтягивать файлы «по запросу», как это делается в обычных облаках - тулза не предназначена. И это сделало её для меня неприемлимой в использовании, потому что файлов слишком много.

LeXa
()

Нужно указать что по умолчанию используются публичные ноды discovery и relay, от разработчиков. Если хочешь полностью свою частную сеть нужно свои ноды поднимать.

ptah_alexs ★★★★★
()

Пользуюсь для синхронизации музычки между десктопом, ноутом и андроидом - полёт нормальный. Иногда использую для синхронизации кода.

С конфликтами сталкивался пару раз, но потом взял за правило перед правкой делать синхронизацию между всеми устройствами. После этого о конфликтах забыл.

u5er ★★★
()
Ответ на: комментарий от LeXa

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

Поэтому это именно облако.

Это примерно в таком же смысле облачное хранилище, как Red Hat Open Shift облачный хостинг. Только тут ты сам себе Red Hat и сам отвечаешь за работу инфраструктуры.

Отсутствие кэширующего клинта с частичным зеркалированием - да, это проблема. Но я уверен, что через несколько её решат.

Завезут какой-нибудь FUSE-драйвер под это.

wandrien ★★★
() автор топика
Ответ на: комментарий от wandrien

Мнение ИИ:

В чем прав комментатор (Взгляд пользователя-практика)

Комментатор смотрит на «облако» с позиции потребительского опыта, сформированного такими гигантами, как Dropbox, Google Drive, OneDrive и iCloud. Для современного массового пользователя «облако» — это прежде всего сервис со следующими ключевыми характеристиками:

  1. Бесконечное хранилище (по ощущениям): Данные лежат где-то «там», на удаленных серверах, и не занимают место на моем устройстве, пока я их не запрошу.
  2. Доступ по требованию (On-demand access): Я вижу все свои файлы, но они не загружены. Я могу скачать нужный файл в любой момент. Это критически важно для устройств с ограниченным объемом памяти (смартфоны, ноутбуки с небольшими SSD).
  3. Удобство и «магия»: Оно просто работает. Я не думаю об инфраструктуре, узлах, пирах. Я просто сохраняю файл, и он появляется везде.

С этой точки зрения, Syncthing — не облако. Он не решает главную проблему, которую для комментатора решают коммерческие облака, — экономию локального дискового пространства. Для него требование полной синхронизации — это не особенность, а фундаментальный недостаток, который делает инструмент непригодным для его сценария использования. Его критика абсолютно валидна с этой прагматичной, пользовательской перспективы.

В чем прав ты (Взгляд архитектора / идеолога)

Ты смотришь на «облако» с архитектурной и концептуальной точки зрения. Твое определение восходит к истокам термина «cloud computing». В этом смысле «облако» — это:

  1. Абстракция от железа: Данные и сервисы не привязаны к конкретной физической машине. Они существуют в распределенной среде, которая обеспечивает их доступность и целостность, даже если отдельные узлы выходят из строя.
  2. Децентрализация и устойчивость: Система продолжает функционировать, пока жива хотя бы часть ее узлов.
  3. Виртуализация ресурсов: В твоем случае, твои собственные устройства объединяются в единое логическое пространство хранения — твое личное «облако».

С этой точки зрения, Syncthing — это квинтэссенция облачной идеи в ее первозданном, некоммерческом виде. Ты совершенно точно подметил в статье:

Это не «облако» в том смысле, который сейчас подразумевают корпорации. Однако это облако в том смысле, который вкладывался в этот термин изначально.

Твой ответ комментатору про виртуализацию и отвязку от хоста — абсолютно корректен с технической стороны. Аналогия с Red Hat OpenShift тоже уместна, хоть и может быть сложна для неподготовленного читателя.

Синтез и вывод

Конфликт возник из-за семантического расхождения. Слово «облако» прошло эволюцию от технического термина к маркетинговому.

  • Ты используешь техническое, архитектурное определение.
  • Комментатор использует бытовое, продуктовое определение, сформированное рынком.

Что можно из этого вынести:

  1. Твоя статья очень хороша. Она точно и честно описывает Syncthing, его философию и возможности. Ты даже предвосхитил этот спор, сделав оговорку про «корпоративное» и «изначальное» понимание облака.
  2. Твой ответ комментатору точен, но, возможно, слишком академичен. Он не столько отвечает на «боль» пользователя («у меня нет места на диске»), сколько защищает концепцию.
  3. Боль пользователя реальна. Отсутствие клиента с частичной синхронизацией («умная синхронизация», «файлы по запросу») — это главный барьер для массового внедрения Syncthing среди пользователей с большими объемами данных и маленькими дисками. Ты это и сам признаешь, упоминая Syncthing-Lite и гипотетический FUSE-драйвер.
wandrien ★★★
() автор топика

Допустим, мне надо переразметить диск. Я ссылаю файлы на другую машину, сношу всё к чертям, ставлю с нуля. И как теперь получить обратно если другая машина очень далеко? Ведь у нас не осталось ничего — ни ключа, ни идентификатора устройства.

Имея свой инстанс того же Nextcloud, можно зайти по логину-паролю, сгенерировать новый токен и подключить любой клиент.

// Если что, я использую и Syncthing, и Nextcloud, и технические различия знаю.

Ну и по поводу вендор-лока тоже сомнительно: у Syncthing свой протокол, и чтобы им пользоваться, нужен… Syncthing. И в итоге мы получаем тот же вендор-лок, только под другим углом.

mord0d ★★★★★
()
Последнее исправление: mord0d (всего исправлений: 2)
Ответ на: комментарий от mord0d

Вендор-лок на опенсорсном решении, которое хранит данные непосредственно на ФС, имеет открытую спеку протокола, и которое компилируется в единый бинарь без развесистых зависимостей.

Это какое-то новое понятие Вендор-лока.

Кстати, уже есть альтернативная реализация на Си++.

ссылаю файлы на другую машину, сношу всё к чертям, ставлю с нуля. И как теперь получить обратно? Ведь у нас не осталось ничего — ни ключа, ни идентификатора устройства

Зайдешь на вторую машину и добавишь новый пир в список пиров. Не понял проблему вообще.

wandrien ★★★
() автор топика
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от wandrien

имеет открытую спеку протокола

Это как с Matrix: либо ты берёшь неоптимизированный Synapse, либо выбираешь из полутора недоделок с страдаешь. Там и с клиентами тоже вариантов кроме Element и пары инвалидов нет. (%

Кстати, уже есть альтернативная реализация на Си++.

Уже что-то.

ссылаю файлы на другую машину, сношу всё к чертям, ставлю с нуля. И как теперь получить обратно? Ведь у нас не осталось ничего — ни ключа, ни идентификатора устройства

Зайдешь на вторую машину и добавишь новый пир в список пиров. Не понял проблему вообще.

Я дополнил сообщение.
Оно может работать за NAT, и доступа к веб-интерфейсу просто не будет, а нужно прямо сейчас.

У меня была недавно подобная ситуация. Нужно было сгрузить много и получить сразу. И тут мне повезло, что у меня есть Nextcloud. Да, WebDAV медленнее Syncthing (потому что TCP против UDP), но пароль от него я помню (там всего 64 символа), а целый конфиг Syncthing мне положить было некуда.

Да и фото/видео на iPhone нужно вручную выгружать из приложения в файловую систему, чтобы синхронизировать через Syncthing (напрямую из приложения оно брать не умеет, да и то что на той стороне не нужно синхронизировать обратно в телефон, там столько места нет).

Но вот конфиги, внезапно, отлично получилось синхронизировать через Syncthing на двух машинах. Общие конфиги хранятся как обычно, индивидуальные хранятся в $progname.$hostname, симлинкаются на целевом хосте в $progname и игнорируют этот симлинк при раздаче с помощью .stignore. Разумеется, с версионированием.

mord0d ★★★★★
()
Последнее исправление: mord0d (всего исправлений: 1)
Ответ на: комментарий от ptah_alexs

Нужно указать что по умолчанию используются публичные ноды discovery и relay, от разработчиков. Если хочешь полностью свою частную сеть нужно свои ноды поднимать.

Или отключать дискавери через релеи вообще, для локалки пойдет.

Прога отличная пользуюсь много-много лет, но не храню там какие-то данные которые могут прям постоянно меняться из двух мест, поэтому и конфликтов почти не было, ну а если были, решить их довольно просто, открываешь два файла и мержишь вручную или удаляешь лишний.

Кстати недавно узнал что есть клиент и под iPhone https://apps.apple.com/us/app/m%C3%B6bius-sync/id1539203216 правда сам я не пробовал и в бесплатной версии есть ограничения, как я понял на количество синхронизаций :D

Для решения проблем с айфоном просто поднял сервер со страничкой где можно скачать файлы из синхронизируемой папки и закачать в нее. Изредка перекинуть пару документов - удобно.

masa ★★
()
Ответ на: комментарий от masa

конфликтов почти не было, ну а если были, решить их довольно просто, открываешь два файла и мержишь вручную или удаляешь лишний.

Поэтому в конце концов приходишь не к тупой синхронизации а к управляемой.

mx__ ★★★★★
()
Ответ на: комментарий от wandrien

Завезут какой-нибудь FUSE-драйвер под это.

Частичное зеркалирование нужнее всего на мобилках, а там fuse нет.

Был бы на мобилке fuse, я бы использовал sshfs вместо syncthing.

legolegs ★★★★★
()
Ответ на: комментарий от mord0d

Да, в таком случае не получится - если веб-интерфейс за NAT.

Но ведь у тебя Nextcloud не за NAT, я же правильно понимаю?

Т.е. ты заведомо поставил их в неравные условия.

Будь syncthing на публичном IP, было бы всё понятно: заходим по паролю в его панель управления, коннектим пиры.

У меня ситуация такая, что самые важные вещи (которых относительно немного - десятки гигабайт, но не сотни) зеркалируются на смартфоне, а смартфон я всегда могу ввести в любую wifi-сеть и сконнектить с новым узлом.

wandrien ★★★
() автор топика
Ответ на: комментарий от legolegs

На мобиле делают приложение для выборочной загрузки данных, но у меня оно сейчас не заработало.

Я не спорю, что этот кейс востребован. Востребован, я бы и сам пользовался.

Просто прямо сейчас он для меня не критичен, а другие преимущества - существенны. В старом телефоне стояла карта на 128 ГБ, в новом встроено 512 ГБ. Мне пока хватает.

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

wandrien ★★★
() автор топика
Ответ на: комментарий от mord0d

На то облака и деланы :)

а вот такой вычурный метод подключения к раздаче с подтверждениями в синхфинге сделан, как я понимаю, специально.
в оригинальном ресилио есть возможность подключаться на запись в раздачу просто по ключу. скопировал ключи или ссылку и на любом клиент подключился.
и его активно использовали для замены торентов в раздаче всякой леватуры. при создании синхфинга сей момент исключили, внедрив сложную систему подключения к раздаче.

смотрю епловская закрытость тебе поборнику открытости прям чем-то годна ?? т.е. спец.апи для выдергивания фотоко видео из епло-приложений это норма, а вот то что синхфинг компилишь не сам это закрытость…

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)
Ответ на: комментарий от wandrien

Да, в таком случае не получится - если веб-интерфейс за NAT.

Но ведь у тебя Nextcloud не за NAT, я же правильно понимаю?

Т.е. ты заведомо поставил их в неравные условия.

Но ведь именно такое их использование и задумывалось, разве нет? (=

  • Nextcloud, будучи в первую очередь веб-приложением, очевидно, требует доступа извне, белого IP и даже доменного имени.
  • Syncthing предназначен для P2P, в том числе сквозь NAT (при этом подразумевается что юзеры друг друга знают и могут как-то обмениваться информацией).

Если их поставить в противоположные условия, тут Nextcloud сразу схлопнется, а для Syncthing ничего в целом не поменяется. (=

Будь syncthing на публичном IP, было бы всё понятно: заходим по паролю в его панель управления, коннектим пиры.

Ну… как бы да, но Nextcloud это enterprise-grade, там за безопасностью следят (по крайней мере стараются), а Syncthing это полтора неизвестных васяна (при этом я не знаю их квалификации, может даже лучше команды Nextcloud, но пока качество не подтверждено независимым аудитом, они останутся неизвестными васянами).

Так, о чём это я? Ах да…
Вывесить наружу неизвестный сервис, имеющий полный доступ к данным пользователя, это огромный риск.

У меня ситуация такая, что самые важные вещи (которых относительно немного - десятки гигабайт, но не сотни) зеркалируются на смартфоне, а смартфон я всегда могу ввести в любую wifi-сеть и сконнектить с новым узлом.

У меня тут две сложности:

  • iPhone с MöbiusSync (единственный клиент, неофициальный) умеет поддерживать коннект после блокировки экрана только в платной версии (ссанкции не позволяют мне купить платную версию). Плюс ограничение в бесплатной версии на 20MB данных в единственной шаре.
  • Я не стал бы заливать sensitive data на iPhone, даже если это несколько мегабайт.

Я не доверяю даже себе.


Будь syncthing на публичном IP, было бы всё понятно: заходим по паролю в его панель управления, коннектим пиры.

Тут ещё одна сложность: для каждого пользователя нужно поднимать отдельный инстанс Syncthing, со своим $HOME (чтобы во-первых не видели данных друг друга, а во-вторых имели свои аккаунты).

Один Syncthing способен поставить раком решительно всё, а если их будет несколько, да каждый юзер станет держать там 100500 гигов данных, ещё и с дефолтным отслеживанием изменений… Случится такой ой, что мой двухголовый 24-ядерный (48-поточный) сервер с 256G RAM просто захлебнётся.

Но если нужно именно синхронизировать данные между своими машинами, тут Syncthing конкурентов нет.

mord0d ★★★★★
()
Ответ на: комментарий от pfg

смотрю епловская закрытость тебе поборнику открытости прям чем-то годна ?? т.е. спец.апи для выдергивания фотоко видео из епло-приложений это норма, а вот то что синхфинг компилишь не сам это закрытость…

Ты путаешь тёплое с мягким.

Дать доступ одной копрорации к данным, которые и так хранятся на их устройстве или дать доступ всем подряд ко всем данным.

Читай этот мой комментарий.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Но ведь именно такое их использование и задумывалось, разве нет? (=

Ну так вопрос связи-за-NAT лежит за пределами задачи, которую решает сабж. Сама-то передача данных за NAT через релей работает. А вот управление - только локально/в пределах доступности IP.

Фишка P2P технологий в том, что использовать P2P-ноду по смыслу как сервер в клиент-серверной модели – обычно возможно. Для этого её нужно разместить на белом IP и внимательно отнестись к настройке.

А вот обратно - из клиент-сервера в P2P - не проворачивается.

Но если нужно именно синхронизировать данные между своими машинами, тут Syncthing конкурентов нет.

Это ключевое. Syncthing не разрабатывается как enterprise-grade решение. Теоретически - мог бы. А практически - разработчики поставили более узкую задачу, и наверное это более верно, так они не распыляют силы.

Ну… как бы да, но Nextcloud это enterprise-grade, там за безопасностью следят (по крайней мере стараются), а Syncthing это полтора неизвестных васяна (при этом я не знаю их квалификации, может даже лучше команды Nextcloud, но пока качество не подтверждено независимым аудитом, они останутся неизвестными васянами).

С этим согласен. Качество кода неизвестно. Если размещать панель управления на публичном IP, я бы поставил на входе прокси для авторизации вместо доверия средствам авторизации самого сервиса.

wandrien ★★★
() автор топика
Ответ на: комментарий от wandrien

Сама-то передача данных за NAT через релей работает. А вот управление - только локально/в пределах доступности IP.

И это абсолютно правильный подход! Данные-то шифруются, а вот имея доступ к веб-интерфейсу (который по дефолту не запаролен), можно добавить любой инстанс и передать на него хоть весь $HOME.

Syncthing не разрабатывается как enterprise-grade решение. Теоретически - мог бы. А практически - разработчики поставили более узкую задачу, и наверное это более верно, так они не распыляют силы.

Do one thing and do it well. Всё правильно сделали, нет претензий ни к протоколу, ни к подходу.

С этим согласен. Качество кода неизвестно. Если размещать панель управления на публичном IP, я бы поставил на входе прокси для авторизации вместо доверия средствам авторизации самого сервиса.

У меня так пара сервисов торчат наружу за двумя аутентификациями — одна на прокси, другая средствами самого сервиса. (=


Если что, я не топлю против Syncthing. Я сам им активно пользуюсь, но меня сильно напрягает, когда синхронизацию пытаются ставить на одну полку с облачным хранилищем. При синхронизации (Syncthing) данные занимают на всех машинах одинаково места (не очень одинаково, если включено версионирование, но не суть), и удаление части данных на одной машине приводит к удалению их на всех. Облачное хранилище же позволяет выгрузить данные "туда", освободив "здесь" место, при этом так же позволяя выборочно делиться данными (не все так умеют, но я взял для примера Nextcloud). Эти две сущности решают разные задачи и не могут заменять друг друга.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

При синхронизации (Syncthing) данные занимают на всех машинах одинаково места (не очень одинаково, если включено версионирование, но не суть), и удаление части данных на одной машине приводит к удалению их на всех. Облачное хранилище же позволяет выгрузить данные «туда», освободив «здесь» место, при этом так же позволяя выборочно делиться данными (не все так умеют, но я взял для примера Nextcloud). Эти две сущности решают разные задачи и не могут заменять друг друга.

Теоретически, первую задачу можно допилить до второй, а вторую до первой. =)

wandrien ★★★
() автор топика
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от wandrien

Теоретически, первую задачу можно допилить до второй, а вторую до первой. =)

При этом они перестанут выполнять изначальную задачу.


А ещё Syncthing не позволяет просмотреть список файлов и узнать объём данных без синхронизации. Сразу видно что делалось оно для синхронизации своих данных между своими машинами.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

А ещё Syncthing не позволяет просмотреть список файлов и узнать объём данных без синхронизации

Да, при чем это интерфейсная недоработка. Сам пир-то знает список, но нам не скажет. Только через REST API разве что.

wandrien ★★★
() автор топика
Ответ на: комментарий от thesis

Огонь. В следующий раз так и назову заметку, если снова про сабж что-нибудь писать буду.

wandrien ★★★
() автор топика
Ответ на: комментарий от wandrien

Сам пир-то знает список, но нам не скажет.

Знает ли, до собственно синхронизации? Объём, допустим, знает, чтобы заранее предупредить, если вдруг места не хватит, а вот полный список файлов (в отличие от статистического количества файлов/директорий, которые он тоже умеет показывать) тут совершенно не обязателен.

Да, при чем это интерфейсная недоработка.

Мне кажется, это сделано намеренно, чтобы не перегружать интерфейс. Подразумевается что пользователь и так знает свои данные, которые синхронизирует.


Кстати, у Syncthing есть офигенная фича, в отличие от других решений (разве что rsync так умеет, но его надо лапками запускать, а тут демон сам отслеживает): он умеет передавать метаданные, и если файлу/директории изменить права на одной машине без изменения контента, то они тоже изменятся на всех. Это прям супер удобно.

Эта киллерфича прям решает на конфигах и прочем в том же духе.

mord0d ★★★★★
()

В целом, частенько тупит. Синхронизирую комп, телефон и две читалки. Постоянно создаются куча папок типа .folder

Romanych
()
Ответ на: комментарий от Romanych

Какое-то из твоих устройств/приложений их создаёт…

wandrien ★★★
() автор топика
Ответ на: комментарий от mord0d

и если файлу/директории изменить права

Насколько я помню доки, разработчикам, бедным, пришлось попрыгать на костылях, чтобы это работало между оффтопиком, онтопиком, андроидом и модераторской ос. И поддержки xattr всё равно нет.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

На андроиде даже mtime приходится отдельно в БД хранить, потому что прописать mtime файлу - невозможно.

Абсолютно отвратительная система.

wandrien ★★★
() автор топика
Ответ на: комментарий от legolegs

чтобы это работало между оффтопиком, онтопиком, андроидом и модераторской ос

У меня FreeBSD ↔ FreeBSD полёт нормальный.

Вообще, POSIX ↔ POSIX должно работать без плясок.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Ну так это работает потому что это сделали. Но это не значит, что там красивое и элегантное под капотом.

Но xattr-то нет и не будет.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

Ну так это работает потому что это сделали. Но это не значит, что там красивое и элегантное под капотом.

POSIX attributes и без костылей реализуется. А вот если хочется сплясать вприсядку через препятствия (POSIX → non-POSIX или обратно) — тут без гребли не обойтись.

Но xattr-то нет и не будет.

Учитывая, что оно имеет доступ ко всему хомяку и не ведёт перзистентных логов, я бы не стал ему доверять. (=

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

POSIX attributes и без костылей реализуется

Ну вот выше писали, что для андроида надо костыли для простого mtime.

что оно имеет доступ ко всему хомяку и

Не понимаю претензии. Midnight commander тоже имеет доступ ко всему хомяку, и что?

legolegs ★★★★★
()
Ответ на: комментарий от mord0d

каким корпорациям месье ?? кто из теплое и мягкое.
синхфинг - опенсорц, разработка ведется кучей народа и внешние аудиты тоже были.
все остальное - лично тобой настроенные хранилища. если ты расместил хранилище на сервере под корпорацией то это твои проблемы :)
однако и на этот случай в синхфинге есть секретные раздачи, когда данные можно хранить в зашифрованном виде.

и да ты прав синхфинг для личного использования. вариант с многопользовательским доступом не реализован, да и сколь читал не особо кому интересен.

pfg ★★★★★
()
Ответ на: комментарий от mord0d

А ещё Syncthing не позволяет просмотреть список файлов и узнать объём данных без синхронизации. Сразу видно что делалось оно для синхронизации своих данных между своими машинами.

была разработка syncthing-lite, который представлял собой удаленный доступ без скачивания всей разадчи, но загнулся как не нужный

pfg ★★★★★
()
Ответ на: комментарий от pfg

Щас снова пытаются пилить. См в ОП.

wandrien ★★★
() автор топика
Ответ на: комментарий от legolegs

Ну вот выше писали, что для андроида надо костыли для простого mtime.

Так андроид не линукс. (%

что оно имеет доступ ко всему хомяку и

Не понимаю претензии. Midnight commander тоже имеет доступ ко всему хомяку, и что?

Так он в сеть не торчит.

mord0d ★★★★★
()

думаю, что если не пользуешься мобилой, то хватит обычного rsync. всегда синхронизировала файлы им и для этого ничего дополнительно не нужно. ключи и прочее он берёт из ssh, например. ничего сверх обычных системных настроек не требуется.

быстрый гуглёж показал, что даже и на ондроеде есть rsync.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

главное отличие: рсинк надо пинать, а тут демон.
прикладной опыт с работы: надо отфоткать железку - пошел в цех фоткнул, пока пришел обратно, они уже на компе :)

pfg ★★★★★
()
Ответ на: комментарий от pfg

можно его навесить на крон. простая система бэкапов так строится, например.

Iron_Bug ★★★★★
()
Ответ на: комментарий от legolegs

так без всякого ненужно же зато! всё штатными средствами, так сказать. ничего лишнего в системе.

Iron_Bug ★★★★★
()

А как быть с многопользовательской конфигурацией на одном компе? Желательно чтобы пользователи не могли синхронизировать папки друг друга…

vitruss ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.