The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск открытой P2P-системы синхронизации файлов Syncthing 0.11

23.04.2015 13:44

Доступен значительный релиз системы синхронизации файлов Syncthing, решающей задачи, сходные с проприетарной системой BitTorrent Sync. Syncthing позволяет организовать автоматическую синхронизацию файлов пользователя на нескольких устройствах. Синхронизированные данные не загружаются на транзитные облачные хранилища, а напрямую реплицируются между системами пользователя при их одновременном появлении в online.

Для обмена данными применяется развиваемый проектом протокол BEP (Block Exchange Protocol), который находится в активном развитии и после стабилизации позволит создавать сторонние реализации систем синхронизации данных, совместимые с Syncthing. При синхронизации файл логически разбивается на блоки, которые являются неделимой частью при передаче данных между системами пользователя. При наличии идентичных блоков на нескольких устройствах, при синхронизации на новое устройство копирование осуществляется с распределением отдачи трафика по узлам, по аналогии с работой системы BitTorrent. Чем больше устройств участвуют в синхронизации, тем быстрее будет проходить репликация новых данных за счёт распараллеливания. Возможно создание больших сетей совместно используемых данных, в которых принимают участие разные пользователи. Предоставляются гибкие средства контроля доступа и создания исключений для синхронизации.

Синхронизируется содержимое файлов, время модификации и, в зависимости от операционной системы, права доступа и символические ссылки. Не переносятся между системами информация о владельце/группе, специализированные файлы (fifo, сокеты), расширенные атрибуты и ACL. Такие операции как переименование или изменение прав доступа синхронизируются на уровне обновления метаданных, без необходимости повторной передачи содержимого. Похожим способом синхронизируются изменения файлов - по сети передаются только изменившиеся блоки данных. Каналы передачи данных формируются при помощи TLS, все узлы аутентифицируют друг друга по сертификатам и идентификаторам устройств, для контроля целостности применяется SHA-256. Для определения узлов синхронизации в локальной сети может быть использован протокол UPnP, при котором не требуется ручной ввод IP-адресов синхронизируемых устройств.

В версии 0.11 добавлены средства для выявления и устранения конфликтов синхронизации, например, когда файл был изменён одновременно на двух устройствах. Ранее, частичным решением проблемы с конфликтами было включение режима версионирования, при котором ведётся сохранение изменений и предоставляется возможность отката состояния файла на определённый момент времени. Теперь в случае конфликта, активным остаётся более новый файл, а другой сохраняется под именем "file.sync-conflict-YYYMMDD-HHMMSS.ext".

В новом выпуске также реализованы многочисленные оптимизации, например, вместо периодического опроса сервера, графический интерфейс теперь в push-режиме принимает обновления состояния со стороны сервера. Изменены настройки сборщика мусора для снижения нагрузки на CPU во время синхронизации больших файлов. Проведена оптимизация синхронизации большого числа мелких файлов и сканирования содержимого больших файлов. Из-за изменения формата БД ветка Syncthing 0.11.x не является совместимой с ранее установленными выпусками Syncthing 0.10.x, поэтому требуется явное ручное инициирование обновления или выполнение команды "syncthing -upgrade". При первом запуске новой версии БД будет перестроена.

Код Syncthing написан на языке Go и распространяется под свободной лицензией MPL. Поддерживается работа в Linux, Android, Windows, OS X, FreeBSD и Solaris. Для настройки системы и мониторинга предусмотрен встроенный web-интерфейс, CLI-клиент и GUI Syncthing-GTK, в котором дополнительно предоставляются средства управления узлами синхронизации и репозиториями. Для упрощения поиска узлов Syncthing развивается сервер координации обнаружения узлов, для которого также имеется готовый образ для запуска в Docker.



  1. Главная ссылка к новости (https://forum.syncthing.net/t/...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/42093-syncthing
Ключевые слова: syncthing, sync
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (40) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 14:13, 23/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пока inotify и обход nat не запилят штука абсолютно бесполезная.
     
     
  • 2.3, Xasd (ok), 14:21, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > обход nat

    если в этой штуке нет IPv6 -- то она действительно бесполезна.

    а если есть -- то nat уже не страшен.. так как IPv6 он либо native либо Miredo либо тунель -- какой-нибудь ды и найдётся

     
     
  • 3.6, Мимопроходил (?), 14:39, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    ipv6 есть. Насколько хорошо работает не знаю.
     
  • 3.15, Аноним (-), 14:59, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > он либо native либо Miredo либо тунель --

    А для miredo/teredo остались живые серваки?

     
     
  • 4.28, Xasd (ok), 16:14, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    ServerAddress 83.170.6.76
     
     
  • 5.34, Аноним (-), 17:46, 24/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А это кто такой и за что ему так? :)
     
  • 4.44, Аноним (-), 14:12, 29/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    teredo.trex.fi
    teredo.remlab.net
     
  • 3.20, Аноним (-), 15:28, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    вот мне делать больше нефига, дополнительную хрень ставить, разрабатывать нужно обход несимметричного NAT, благо не шибко сложная штука но судя по разрабам они это не осилят.
     
  • 3.43, Аноним (-), 09:48, 28/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    ipv6 не нужен
     
  • 2.21, Аноним (-), 15:32, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Полагаться на inotify при синхронизации - сразу эту синхронизацию угробить. Слишком кривая штука - пропускает события в файлах в наблюдаемых директориях на раз, причем это 'by design'. Чтобы нормально оно работало надо как в случае с kqueue ставить watch на каждый файл и директорию по отдельности, что не очень айс
     

  • 1.2, Аноним (-), 14:15, 23/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    syncthing-gtk на гводо бейсике, мда уж лучше веб интерфейс пилить помогли.
     
     
  • 2.4, Xasd (ok), 14:23, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > уж лучше веб интерфейс..

    с кучей дыр, типа Clickjacking, CSRF, XSS .. которые будут там десятилетиями находиться и не исправляться.

    (как например это сейчас происходит в современных web-ui-торрент-клиентах.. вот например кое где думают это исправлять, но ещё на стадии планов -- https://trac.transmissionbt.com/ticket/5894 .. а кое-где даже тикетов нет на эту тему )

     
     
  • 3.5, ГеккоШтат (?), 14:37, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Используй ВПН, Люк.
     
     
  • 4.8, Xasd (ok), 14:44, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Используй ВПН, Люк.

    почитай станачало как эти дыры эксплуатируются..

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

    или предлагаешь не ходить по "подозрительным" ссылкам? (а может просто лучше вы не будете делать глупые\детские дыры в своих web-ui-программах?)

     
     
  • 5.13, Аноним (-), 14:56, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > злоумышленник должен подсунуть мне ссылку, и когда я нажму на неё --

    1) Жать на ссылки не обязательно, js это и без тебя может сделать.
    2) Но есть такая штука как ABE (application boundaries enforcer) в NoScript. Как и clickjacking protection. Пользуйтесь.

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

     
  • 4.9, Аноним (-), 14:45, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    впн до локалхоста, чтобы не спёрли его вебгуй?
     
  • 3.7, Аноним (-), 14:44, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем веб-интерфейс торрент-клиента выставлять на публику? Разреши доступ для 127.0.0.1, и всё.
     
     
  • 4.10, Xasd (ok), 14:47, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А зачем веб-интерфейс торрент-клиента выставлять на публику? Разреши доступ для 127.0.0.1,
    > и всё.

    в этом-то вся и проблема -- 127.0.0.1 -- не спасает от CSRF и от Clickjacking. :-)

    если в приложении дыра (а по умолчанию и БУДЕТ дыра, если используются куки), то через CSRF\Clickjacking -- злоумышленник имеет доступ (доступ для возможности подпортить мне жизнь) доступ ровно туда-же куда и имею доступ я.

    только недавно это поправили в CUPS ..

    а на Linux.Org.Ru -- до сих пор не поправили (тема про удаление аватарок, злоумышленником -- уже создавалась на linux.org.ru . но там тяжело это эксплуатировать так как у каждого участника своя графическая-тема-для-сайта )

     
     
  • 5.12, Аноним (-), 14:53, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > а на Linux.Org.Ru -- до сих пор не поправили (тема про удаление
    > аватарок, злоумышленником --уже создавалась на linux.org.ru )

    Это не баг, это фича :)

     
  • 5.14, Аноним (-), 14:57, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > в этом-то вся и проблема -- 127.0.0.1 -- не спасает от CSRF
    > и от Clickjacking. :-)

    От них NoScript в фоксе и ему подобных спасает.

     
     
  • 6.32, Xasd (ok), 21:01, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    сделай одолжение!...

    ...найди мне версию NoScript в которой бы вместо чёртовой-кучи-галочек-и-переключателей-и-кнопочек -- была бы только одна статическая надпись:

    "теперь у вас всё зашибись!" (это примерный смысл.. формулировка может отличаться)

    ну и разумеется чтобы всякие-там-уязвимоти на сайтах автоматически исправлялись бы :-) ..
    то есть чтобы всё это нормально работало бы(!), а не пыль в глаза!

     
     
  • 7.36, Аноним (-), 12:00, 25/04/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > "теперь у вас всё зашибись!" (это примерный смысл.. формулировка может отличаться)

    Зачем? У тебя и так все зашибись. Но если ты не хочешь разбираться - аватары будут иногда удаляться, компы и прочее немного взламываться ушлыми ботнетчиками и прочими, все дела.

    Судьба у хомяка такая. Хомяков все имеют и доят. Так что или ты трескаешь red pill и таки сам определяешь что для тебя зашибись, расставляя галочки. Или другие будут делать зашибись себе. За твой счет. Ну, просто потому что зачем им делать зашибись тебе, если можно сделать зашибись себе? :)

     
  • 5.16, Аноним (-), 15:00, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Эм, CSRF и Clickjacking по умолчанию предполагает что злоумышленнику известен URI атакуемого, ну поменяй ты порт на другой к веб кую или ип адрес и все, хватит уже балаболи специалист.
     
     
  • 6.17, Xasd (ok), 15:14, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > ну поменяй ты порт на другой

    ну ты не делай детские ошибки при изготовлении web-ui ..

    > хватит уже балаболи специалист.

    вот диалог:

    1. я всего лишь написал о том что в web-ui -- дыры.

    2. мне предложили использовать 127.0.0.1

    3. я объяснил что это не спасает.

    4. теперь ты мне предлагаешь заменять какие-то номера портов или\и делать другие мутные настройки...

    блин, люди -- откуды вы берётесь вообще(?) -- ЕСЛИ ЕСТЬ ДЫРА ТО ЕЁ НАДО ИСПАВЛЯТЬ (или лучше не допускать), а не придумывать какие-то левые способы запутать злоумышленника, или обзывать меня "специалистом"..

    с фигали ты *меня* "специалистом" (саркастично) обозвал -- если дыру допустил НЕ Я а тот кто делал web-ui ?

    я всего лишь указал на эту дыру -- для этого не нужно быть "специалистом".

    > злоумышленнику известен URI атакуемого

    учитывая что злоумышленником может быть человек за моей спиной (иногда сидящий около меня на 2 метра.. но не ближе чем 2 метра, то есть не имеет физического доступа до моего компа) -- то наверняка он знает какой URI ..

     
  • 5.18, Аноним (-), 15:19, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > в этом-то вся и проблема -- 127.0.0.1 -- не спасает от CSRF и от Clickjacking. :-)

    Зато RequestPolicy (http://requestpolicycontinued.github.io/) спасает.

    > если в приложении дыра (а по умолчанию и БУДЕТ дыра, если используются куки), то через CSRF\Clickjacking -- злоумышленник имеет доступ (доступ для возможности подпортить мне жизнь) доступ ровно туда-же куда и имею доступ я.

    Вот именно поэтому и нужно использовать штуки вроде RequestPolicy - дырявые webapp без защиты от CSRF найдутся всегда.

     
     
  • 6.23, Xasd (ok), 15:39, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    звучит интересно :)
     
  • 3.19, Аноним (-), 15:24, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Clickjacking вообще не про это, это обман юзера чтоб он кликнул.
    XSS - недостаточная фильтрация входных данных в приложении, ты что свой гуй что то собрался вставлять тексты скрипты? Продукт на это вообще не рассчитан.
    CSRF теоретически можно, этой атакой атаковать но веб приложение очень легко защитить он нее, достаточно во все формы всунуть токен. И конкретно данное приложение так и поступает.
     
     
  • 4.25, Xasd (ok), 15:44, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > очень легко защитить он нее

    ясное дело что легко..

    но для этого об этом должен знать разработчик webapp .. а они довольно часто почему-то не знают (хотя вроде бы всё элементарно).

    > Clickjacking вообще не про это, это обман юзера чтоб он кликнул.

    когда юзер кликнет -- то щёлкнет например на "удалить" на авторизованном webapp .... это может иметь несущественные последствия, а может иметь и существенные. кто знает.

    нажимать на "удалить" -- пользователь совсем не хотел, и если злоумышленник заставил сделать это против воли пользователя -- то это дыра и не как иначе.

    и тоже исправляется элементарно (http-header-для-CSP или использовать Framekiller) .. но точно также -- об этом должен знать разработчик (если он не знает -- то кто будет исправлять?).

     
  • 2.27, Fidel Castro (?), 16:11, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Можно по старинке конф файл править.
     

  • 1.11, Аноним (-), 14:52, 23/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    131 мег на скрине? Для всего лишь синхры файлов?

    Фигасе, этот их thing память жpeт как половина моего DE.

     
     
  • 2.35, Аноним (-), 03:55, 25/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    У моего awesome 120mb :)
     

  • 1.22, Аноним (-), 15:38, 23/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отличная вещь этот (уже) наш Syncthing!
     
  • 1.24, KOT040188 (?), 15:44, 23/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Добавление папок для синхронизации по прежнему мозговыносящее? После BitTorrent Sync это полная жесть…
     
     
  • 2.29, Аноним (-), 16:41, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    После недавней уязвимости в BitTorrent Sync, дающей выполнить код на другом компьютере, его использование это жесть.
    http://securityaffairs.co/wordpress/35752/hacking/severe-flaw-bittorrent-sync
     
     
  • 3.31, KOT040188 (?), 18:55, 23/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А кто его выполнять будет в локальной сети? Мне мой мозг дороже…
     

  • 1.30, t28 (?), 17:47, 23/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Код Syncthing  написан на языке Go

    Спасибо.

     
  • 1.33, Аноним (-), 11:57, 24/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну что Go прочно входит в нашу жизнь. Обратите внимание, что уже не Python стандарт для написания подобного барахлишка.

    Пора брать книжки и учебники и изучать новый языкю.

     
     
  • 2.42, Аноним (-), 20:31, 26/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Пора брать книжки и учебники и изучать новый языкю.

    Какая разница, на чем написана никому не нужная поделка?

     

  • 1.37, Crazy Alex (ok), 12:04, 26/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А кто знает - есть ли подобные штуки, которые синхронизировали в несколько облаков параллельно? Только не веб-сервисы - я ещё не совсем спятил, чтобы учетки от аккаунтов давать какой-то сторонней хрени. Сами синхронизируемые данные-то, понятно, шифруются.
     
     
  • 2.41, Аноним (-), 18:14, 26/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > А кто знает - есть ли подобные штуки, которые синхронизировали в несколько
    > облаков параллельно? Только не веб-сервисы - я ещё не совсем спятил,
    > чтобы учетки от аккаунтов давать какой-то сторонней хрени. Сами синхронизируемые данные-то,
    > понятно, шифруются.

    Чем оно тебе поможет?

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру