xaker

Syncthing: свободная программа для синхронизации и резервного копирования

  • вторник, 13 мая 2014 г. в 03:10:45
http://www.xakep.ru/post/62487/

Для синхронизации и резервного копирования файлов созданы десятки программ и онлайновых сервисов. Самый популярный из облачных хостингов — Dropbox, а для синхронизации по локальной сети часто используют BitTorrent Sync, Owncloud и Sparkleshare. Но все эти проекты имеют определённые недостатки. Например, BitTorrent Sync работает по проприетарному протоколу с закрытыми исходниками, да и криптографические методы там немного странные. С остальными сервисами тоже не всё в порядке, поэтому появление новой альтернативы не может не радовать.

Проект Syncthing — работа плодовитого программиста Якоба Борга. Хотя первая версия программы ещё не увидела свет, но судя по истории релизов, этот день не за горами. Якоб Борг, похоже, работает круглосуточно.

Для синхронизации файлов между узлами в P2P-сети написан простой, эффективный, открытый и безопасный протокол обмена блоками Block Exchange Protocol (BEP). Утилита Syncthing — это образцовая реализация данного протокола, хотя его можно использовать в любом программном обеспечении. Программа выпускается под Mac OS X, Windows, Linux, FreeBSD и Solaris, работает в локальной сети или через интернет, легко настраивается через веб-интерфейс.

От использования протокола BitTorrent решено отказаться по понятным причинам. Неизвестно даже, используется ли он в программе BitTorrent Sync.

Syncthing синхронизирует файлы между пирами по защищённым каналам TLS с использованием протокола обмена ключами с совершенной прямой секретностью, дабы исключить возможность прослушивания. Аутентификация каждого узла в сети происходит с помощью надёжного криптографического сертификата. Только после этого узел может присоединиться к файлообменному кластеру. Для обмена файлами нужно всего лишь сообщить ID своего компьютера тому человеку, с которым хотите организовать совместное хранилище. Синхронизация происходит по дате последнего изменения файлов, версионность пока не поддерживается, зато есть поддержка синхронизации на уровне блоков, то есть при маленьком изменении в большом файле будет обновляться только небольшая часть файла.

Разработка идёт полностью открыто, весь исходный код публикуют на Github. Протокол тоже полностью открыт, так что любые баги можно сразу обнаружить и исправить.

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