От обычных к пиринговым сетям
В отличие от свободных облачных хранилищ, таких, как ownCloud, приложение Syncthing (как и BitTorrent Sync) не хранит загружаемые данные на центральном сервере; вместо этого оно распространяет их по компьютерам (или узлам, если вам будет угодно), из которых состоит пиринговая сеть. Команда разработчиков Syncthing разработала протокол Block Exchange Protocol , в рамках которого реализуются все механизмы, необходимые для обмена данными. Обязательное использование алгоритмов шифрования гарантирует доступность ваших данных лишь для вас.
Syncthing осуществляет синхронизацию данных между устройствами в локальной сети, а также между удаленными компьютерами. Для упрощения обмена данными с компьютерами, расположенными за пределами локальной сети, рассматриваемое приложение, как и его закрытый аналог BitTorrent Sync, использует протокол UPnP , поддержку которого вам, возможно, придется активировать на уровне вашего маршрутизатора. Поддержка данного протокола активирована по умолчанию на большинстве маршрутизаторов, поэтому вам не придется вмешиваться в автоматический процесс проброса требуемых портов. Если ваш маршрутизатор не поддерживает протокол UPnP, вам придется осуществить проброс необходимых портов вручную: пробросьте TCP-порт 22000 вашего компьютера для того, чтобы он мог взаимодействовать с другими удаленными компьютерами. Если компьютер находится за локальным межсетевым экраном, вам придется пробросить как TCP-порт 22000, так и UDP-порт 21025.
Дополнительная информация
Если к папке был предоставлен полный доступ (чтение и запись), то при изменении ее содержимого на одном из устройств, оно будет меняться и на других. При этом, ограниченная история изменений по умолчанию (эту настройку можно изменить) остается доступной в папке «Архив» (открыть можно в меню папки) на случай каких-либо непредвиденных изменений.
В завершение статей с обзорами я обычно пишу что-то похожее на субъективный вердикт, но здесь не знаю, что именно написать. Решение очень интересное, но лично для себя я не нашел применений. Гигабайтных файлов не передаю, а излишней паранойи по поводу хранения своих файлов в «коммерческих» облачных хранилищах не имею, именно с их помощью и осуществляю синхронизацию. С другой стороны, не исключаю, что для кого-то такой вариант синхронизации окажется хорошей находкой.
Предоставление доступа к папке в BitTorrent Sync
В главном окне программы (при первом запуске) вам будет предложено «Добавить папку».
Здесь имеется в виду либо добавление папки, находящейся на данном устройстве, для общего доступа к ней с других компьютеров и мобильных устройств, либо добавление в синхронизацию папки, доступ к которой ранее был предоставлен на другом устройстве (для этого варианта используйте пункт «Введите ключ или ссылку», который доступен при нажатии на стрелку справа от «Добавить папку».
Для добавления папки с этого компьютера выберите «Стандартная папка» (или просто нажмите «Добавить папку», после чего укажите путь к папке, которая будет синхронизироваться между вашими устройствами или же доступ к которой (например, для скачивания файла или набора файлов) вы хотите кому-то предоставить.
После выбора папки, откроются опции предоставления доступа к папке, среди которых:
- Режим доступа (только чтение или чтение и записи или изменение).
- Необходимость подтверждения для каждого нового пира (скачивающего).
- Время действия ссылки (если вы хотите предоставить ограниченный во времени или по количеству скачиваний доступ).
Если, например, вы собираетесь использовать BitTorrent Sync для синхронизации между своими устройствами, то имеет смысл включить «Чтение и запись» и не ограничивать действие ссылки (впрочем, необязательно, вы можете использовать «Ключ» с соответствующей вкладки, который не имеет таких ограничений и ввести его на другом своем устройстве). Если же вы просто хотите передать кому-то файл, то оставляем «Чтение» и, возможно, ограничиваем время действия ссылки.
Важно: ограничения (срок действия ссылки, количество загрузок) действуют только если вы делитесь ссылкой из вкладки «Привязать» (которое можно в любой момент вызвать, нажав «Поделиться» в списке папок, чтобы создать новую ссылку с ограничениями). На вкладках «Ключ» и «QR-код» отдельно доступны два варианта ключа для ввода в меню программы «Добавить папку» — «Введите ключ или ссылку» (если вы не хотите использовать ссылки, в которых задействован сайт getsync.com) и, соответственно, QR-код для сканирования из Sync на мобильных устройствах
Эти варианты используются именно для синхронизации на своих устройствах, а не для предоставления однократной возможности скачать файлы
На вкладках «Ключ» и «QR-код» отдельно доступны два варианта ключа для ввода в меню программы «Добавить папку» — «Введите ключ или ссылку» (если вы не хотите использовать ссылки, в которых задействован сайт getsync.com) и, соответственно, QR-код для сканирования из Sync на мобильных устройствах. Эти варианты используются именно для синхронизации на своих устройствах, а не для предоставления однократной возможности скачать файлы.
Использование btsync с помощью веб интерфейса.
Для работы веб интерфейса нужно:
1) отсутствие в конфигурационном файле блока shared_folders. Расшаривать папки будете уже в веб-интерфейсе.
2) наличие в конфигурационном файле блока webui.
Пример
"webui" : { "listen" "0.0.0.0:8888", "login" "admin", "password" "pa$$1admin2very3Strong!" }
С помощью веб-интерфейса совсем не сложно расшарить папку. Используйте вначале кнопку Добавить папку (Add Folder) и нажмите один и только один раз кнопку Сгенерировать (Generate) и сохраните ваш ключ-секрет. Укажите Путь (Path) к папке, которая будет участвовать в синхронизации.
На остальных ваших устройствах больше не нажимайте кнопку Сгенерировать (Generate), а просто добавляйте папки и указывайте уже полученный ключ-секрет.
Syncthing
Пишут, что это удачная альтернатива BitTorrent Sync, который стал частично платным и не имеет открытого исходного кода.
Syncthing может работать в локальной сети и сети интернет, передача всех данных происходит по защищенным каналам TLS. Протокол является документированным стандартом — Block Exchange Protocol (протокол обмена блоками).
Синхронизация происходит по дате изменения файла, есть поддержка синхронизации на уровне блоков, то есть при небольших изменениях в файле будут синхронизированы только изменившиеся блоки, а не весь файл.
Поддержка сохранения последовательных версий файла по нескольким алгоритмам
Веб-интерфейс. Настройка и мониторинг Syncthing возможны через динамичный и мощный интерфейс, доступный через веб-браузер.
Syncthing не требует IP-адресов или продвинутого конфигурирования. Каждое устройство идентифицируется по ID.
Syncthing не использует P2P-сеть для обнаружения устройств или для решения проблемы NAT-роутеров, но все соединения между устройствами происходят непосредственно по принципу точка-точка.
Возможно соединение непосредственно по IP-адресу/DNS-имени без использования обнаружения вообще, это вариант также является более безопасным (открытый ключ в паре с адресом не попадают в общий, в той или иной степени, доступ). Также возможно использование собственного discovery-сервера
Опция «master-slave», благодаря которой другие узлы будут лишь синхронизироваться с данной директорией, но не смогут изменять её содержимое.
Syncthing не умеет мониторить ФС, а просто периодически сканирует ФС.
syncthing-inotify — приложение командной строки для реализации поддержки отслеживания события ОС об изменении файла.
SyncTrayzor is a little tray utility for Syncthing on Windows.
Для чего нужно резервное копирование
Резервное копирование ваших файлов, таких как личные документы, фото и видео, защитит их от утраты в результате случайного удаления, сбоя в операционной системе, действия вирусов или повреждения жесткого диска.
Помните! Если вы не будете выполнять резервное копирование ваших файлов, то рано или поздно вы их потеряете!
Другой целью резервного копирования может быть синхронизация ваших файлов между несколькими компьютерами. Например, вы можете работать с одними и теми же файлами дома и на работе и вам нужно, чтобы на домашнем и рабочем компьютере файлы обновлялись по мере их изменения, создания или удаления.
Также регулярное резервное копирование файлов значительно упростит восстановление компьютера в случае сбоя. Вам достаточно будет восстановить образ операционной системы, а все файлы уже надежно сохранены в резервной копии и вам не придется тратить много времени и усилий для их восстановления.
Установка BitTorrent Sync на Raspberry Pi
К сожалению, программа BitTorrent Sync пока отсутствует в репозитории Raspbian. Уверен, что со временем ситуация изменится, но нам, как первопроходцам, придется приложить немного больше усилий для ее установки. Не будем тянуть время и приступим.
Входим в консоль управления Raspberry Pi под пользователем root.
Создаем каталог для приложения. Для этого вводим команду:
mkdir ~/.btsync
(то есть /root/.btsync)
Переходим в созданный каталог командой:
cd ~/.btsync
Скачиваем архив с программой BitTorrent Sync командой:
wget http://repository.geekelectronics.org/bittorrent_sync_arm.tar.gz
Распаковываем архив командой:
tar -xvf bittorrent_sync_arm.tar.gz
Запускаем программу BitTorrent Sync:
./btsync
Если выдаст ошибку, что файл не найден, то выполните команду: ln -sf /lib/ld-linux-armhf.so.3 /lib/ld-linux.so.3 а затем повторите запуск.
Установка программы BitTorrent Sync завершена, но для удобства давайте ее сразу добавим в автозагрузку. Для этого открываем файл /etc/crontab и добавляем в конец строку:
@reboot root ~/.btsync/btsync
В конце строки не забудьте нажать Enter, чтобы добавилась пустая строка.
Перезагружаем Raspberry Pi командой:
sudo reboot
Настройка BitTorrent Sync на Raspberry Pi
Открываем браузер и вводим URL http://ip_адрес_вашей_Raspberry_Pi:8888/gui/
В моем случае это: http://192.168.1.10:8888/gui/
Жмем на кнопку Согласен.
В новом окне вводим пароль администратора, который будет использован для удаленного доступа к веб-интерфейсу.
Авторизируемся.
Попадаем в веб-интерфейс программы BitTorrent Sync.
Создаем пустую папку на Raspberry Pi, в которую потом будут синхронизироваться наши данные командой:
mkdir /mnt/usbdrive/sync
Укажите свой путь при создании пустой папке, если он отличается от моего места монтирования USB жесткого диска.
На этом пока закончим работу с BitTorrent Sync на Raspberry Pi и перейдем к установке BitTorrent Sync на компьютеры под управлением Windows.
Установка Btsync на Linux
BitTorrent Sync доступен для загрузки на веб-сайте проекта. Я предполагаю, что Windows версия BiTorrent Sync установлена на компьютер с Windows, это может быть сделано очень просто. Я сфокусируюсь на установке и настройки на сервере Linux.
Для своих программ, которые я ставлю вручную, я создал в своей домашней папке каталог opt (адрес получается ~/opt). По аналогии с системным opt, куда ставятся разные дополнительные программы. Вы можете выбрать любую директорию для установки. Например, в некоторых инструкциях рекомендуют ставить в /usr/local/bin — это не принципиально, но если вы выберите директорию за пределами свой домашней папки, то, возможно, придётся дополнительно изменять разрешения на папки и файлы, а также процесс добавления в автозапуск может стать чуть сложнее, чем описано в этой инструкции..
mkdir ~/opt cd ~/opt
На странице загрузки выберите вашу архитектуру, кликните правой кнопкой по соответствующей ссылке, выберите Скопировать ссылку (или что-то подобное — зависит от вашего браузера), а затем скопируйте ссылку в wget в вашем терминале как показано ниже:
Для 64-битных Linux:
wget
Для 32-битных Linux:
wget
Когда загрузка завершена, извлеките содержимое архива в каталог, который мы специально создадим для этой цели:
mkdir btsync tar xzf stable -C btsync
Резервное копирование в реальном времени
Здесь мы рассмотрим дополнительную утилиту RealTimeSync, которая устанавливается вместе с основной программой и используется для автоматической синхронизации.
Откройте утилиту с помощью ярлыка RealTimeSync на рабочем столе или в меню «ПУСК», зайдите в меню «Файл» и выберите «Открыть».
Здесь же можно сохранить настройки самой утилиты в еще один специальный файл. Найдите и откройте файл пакетного задания, который вы создали в основной программе.
Оставьте в разделе «Папки для наблюдения» только папки с файлами на диске компьютера, а папки с резервной копией на внешнем диске, флэшке или в локальной сети удалите.
Установите время в секундах, через которое вы хотели бы проверять папки на наличие измененных файлов. Например, установив 3600 секунд, папки будут проверяться через каждый час с момента начала наблюдения. Осталось только нажать кнопку «Start», программа свернется в системный трей (в значок рядом с часами) и начнет наблюдение за папками.
Если во время очередной проверки в указанных папках произойдут изменения файлов, программа запустит процесс синхронизации, который завершится выводом соответствующего окна.
Если в настройках пакетного задания установлена галочка «Запустить свернутым», то это сообщение отображаться не будет и синхронизация будет производиться в тихом режиме.
Если в момент обнаружения изменений в папках утилита не сможет получить доступ к внешнему диску, флэшке или сетевой папке с резервными копиями, то появится соответствующее сообщение.
Если в настройках пакетного задания опция «Обработка ошибок» будет установлена в значение «Игнорировать», то это сообщения выводиться не будет и синхронизация произойдет при возобновлении доступа к устройству с резервными копиями.
Из преимуществ утилиты RealTimeSync можно отметить простоту её настройки и использования, но она имеет и несколько недостатков. Во-первых, её нужно запускать вручную или самому настроить автозагрузку вместе с Windows (например, скопировав ярлык в папку «Автозагрузка» в меню «ПУСК»). Во-вторых, она не позволяет задать гибкое расписание для синхронизации. И в-третьих, иногда синхронизация не срабатывает.
Сообщения об ошибках
«Can’t open the destination folder» / «Невозможно открыть папку»
Сообщение может появиться по нескольким причинам:
- Вы должны указать каталог для синхронизации на каждом устройстве, а не только на первом из них. Эта ошибка появляется также если ввели секретный ключ на нескольких устройствах без указания каталога для синхронизации.
- Если вы раньше уже синхронизировали каталог, используя другую версию BitTorrent Sync, возможно файл .SyncID поврежден. Найдите этот файл (он может быть скрытым), удалите его и еще раз добавьте каталог в BitTorrent Sync.
- В некоторых случаях у программы могут возникнуть трудности с открытием сетевых общих каталогов. Попробуйте примонтировать общий каталог к свободному диску. Например если есть общий каталог \\mydrive\folder примонтируйте его к свободному диску (например Z:) и добавьте в BitTorrent Sync каталог Z:\folder
«Selected folder is already added to BitTorrent Sync» / «Выбранная папка уже добавлена»
Если вы видите эту ошибку, то по всей видимости секретный ключ уже используется для синхронизации другого каталога. Невозможно синхронизировать два разных каталога с одним и тем же секретным ключом на одном устройстве.
«Sync stopped: device time difference more than 600 seconds» / «Синхронизация остановлена: разница времени между устройствами больше 600 сек.»
На одном из ваших устройств неправильно установлены системные часы. Следует синхронизировать время на всех устройствах.
Использование btsync без помощи веб интерфейса.
Админам, возможно, захочется настроить синхронизацию множества серверов, без висения лишнего порта с веб-интерфейсом, хоть и защищённый паролем.
Мне нужно было настроить синхронизацию среди 3 серверов, где каждый бы из серверов складывал свои резервные копии в определённую папку, а файлы из неё с помощью btsync синхронизировались на другие два сервера, что создавало нужную избыточность.
Веб-интерфейс сам отключится, если
1) присутствует в конфигурационном файле блок shared_folders.
2) отсутствие блока webui или его параметра listen.
С помощью команды был получен ключ-секрет AVE43EXY2TMKKXZISGEJ7S7NSGGPHRJBR , который был прописан в параметре secret блока shared_folders. Так как синхронизация будет проходить в стенах локальной сети, то отключены такие технологии как трекер, DHT, релей-сервер. А раз речь идёт о локальной сети, то указаны все IP адреса серверов в блоке known_hosts. Пользователю, от которого будет работать btsync, даны права на запись в каталоги /var/dump_backup/, /var/run/btsync/ и /usr/local/lib/btsync/.
В моём случае, конф /etc/btsync/sync.conf приобрёл вид:
{ "device_name": "node1", "listening_port" : 8889, "storage_path" : "/usr/local/lib/btsync/", "pid_file" : "/var/run/btsync/btsync.pid", "check_for_updates" : false, "use_upnp" : false, "disk_low_priority" : true, "lan_encrypt_data" : true, "lan_use_tcp" : true, "max_file_size_diff_for_patching" : 50, "folder_rescan_interval" : 60, "download_limit" : 0, "upload_limit" : 0, "shared_folders" : [ { "secret" : "AVE43EXY2TMKKXZISGEJ7S7NSGGPHRJBR", "dir" : "/var/dump_backup/", "use_relay_server" : false, "use_tracker" : false, "use_dht" : false, "search_lan" : false, "use_sync_trash" : false, "known_hosts" : } ] }
Данный конфиг был растиражирован на остальные сервера и подправлен только параметр device_name, который должен быть уникален в пределах вашей системы синхронизации. Рестарт службы btsync на всех серверах — и теперь любой файл, попавший в каталог /var/dump_backup/ окажется на всех остальных серверах в их локальных каталогах /var/dump_backup/.
Что такое btsync?
BitTorrent Sync — это возможность безопасно с шифрованием передавать файлы между вашими (и только вашими) устройствами с помощью BitTorrent протокола. Не нужны будут новомодные облака, в которые люди заливают шифрованные резервные копии, так как не понятно кто может на стороне облака рыться в ваших файлах.
btsync работает на большинстве современных операционных систем:
- Mac OS X Snow Leopard или новее.
- Windows XP SP3 или новее.
- Linux с ядром 2.6.16 (glibc 2.4) или новее.
- FreeBSD 8.4, 9.1 или новее.
- Android 2.2 или новее.
- iOS 5.0 или новее.
Для многих привычно ассоциировать BitTorrent с кучей народа, качающим сообща пиратские фильмы, благодаря торрент-трекерам. Но в случае с btsync — это не так! Для синхронизации ваших файлов между вашими устройствами вы должны будете сгенерировать символьный ключ-секрет. BitTorrent Sync использует /dev/random в Mac и Linux и Crypto API в Windows для создания вашего случайного, Base32-основанного, символьного ключа-секрета. Весь трафик при синхронизации будет зашифрован AES.
Если синхронизация будет осуществляться не в локальной сети, а через Интернет, то могут быть задействованы UDP, NAT traversal и UPnP для прохода шифрованного трафика через маршрутизаторы. Но в любом случае файлы передаются по шифрованным соединениям только между вашими устройствами, которые знают ключ-секрет.
Для решения задачи поиска ваших устройств в сети существуют следующие решения:
- Local peer discovery. Если все ваши устройства находятся в локальной сети, то для их поиска производится отправка широковещательного (broadcast) пакета. Все устройства с единым секретом отвечают на такой пакет и тем самым начинают взаимодействие.
- Peer exchange (PEX). Ваши устройства помогают друг другу, выдавая известные им адреса.
- Известные хосты. Для локальной сети с постоянными IP адресами можно вручную указать адреса, по которым обитают ваши устройства.
- DHT (Distributed Hash Table). Если вы разрешите, то с помощью распределённой хеш-таблицы будет осуществлён поиск всех ваших устройств, знающих SHA1(ключ-секрет).
- BitTorrent трекер. BitTorrent Sync может с вашего разрешения использовать трекер для облегчения поиска друг друга вашим устройствам. Трекер так же выступает в роли STUN сервера и помогает устройствам установить прямое соединение, которые могут находиться за NAT.
Синхронизация дополнительных файлов с Android
Из-за закрытой среды iOS с телефона можно синхронизировать только фото и видео. Но пользователи Android могут настроить приложение для синхронизации дополнительных файлов и папок. Это может быть папка резервного копирования или папка загрузки. Чтобы добавить папку, нажмите на значок плюса в и выберите Новая резервная копия. Затем приложение предоставит вам некоторые из часто используемых папок, а также возможность выбрать собственное местоположение.
Как только вы сделаете свой выбор, это будет та же история снова и снова. Так же, как при резервном копировании фотографий. Пришлите себе ссылку на ПК и настройте передачу.
Вот как вы можете настроить синхронизацию с вашего телефона в приложении BitTorrent для ПК. Давайте теперь посмотрим, как настроить синхронизацию папок с помощью приложения для ПК.
Что такое btsync?
BitTorrent Sync — это возможность безопасно с шифрованием передавать файлы между вашими (и только вашими) устройствами с помощью BitTorrent протокола. Не нужны будут новомодные облака, в которые люди заливают шифрованные резервные копии, так как не понятно кто может на стороне облака рыться в ваших файлах.
btsync работает на большинстве современных операционных систем:
- Mac OS X Snow Leopard или новее.
- Windows XP SP3 или новее.
- Linux с ядром 2.6.16 (glibc 2.4) или новее.
- FreeBSD 8.4, 9.1 или новее.
- Android 2.2 или новее.
- iOS 5.0 или новее.
Для многих привычно ассоциировать BitTorrent с кучей народа, качающим сообща пиратские фильмы, благодаря торрент-трекерам. Но в случае с btsync — это не так! Для синхронизации ваших файлов между вашими устройствами вы должны будете сгенерировать символьный ключ-секрет. BitTorrent Sync использует /dev/random в Mac и Linux и Crypto API в Windows для создания вашего случайного, Base32-основанного, символьного ключа-секрета. Весь трафик при синхронизации будет зашифрован AES.
Если синхронизация будет осуществляться не в локальной сети, а через Интернет, то могут быть задействованы UDP, NAT traversal и UPnP для прохода шифрованного трафика через маршрутизаторы. Но в любом случае файлы передаются по шифрованным соединениям только между вашими устройствами, которые знают ключ-секрет.
Для решения задачи поиска ваших устройств в сети существуют следующие решения:
- Local peer discovery. Если все ваши устройства находятся в локальной сети, то для их поиска производится отправка широковещательного (broadcast) пакета. Все устройства с единым секретом отвечают на такой пакет и тем самым начинают взаимодействие.
- Peer exchange (PEX). Ваши устройства помогают друг другу, выдавая известные им адреса.
- Известные хосты. Для локальной сети с постоянными IP адресами можно вручную указать адреса, по которым обитают ваши устройства.
- DHT (Distributed Hash Table). Если вы разрешите, то с помощью распределённой хеш-таблицы будет осуществлён поиск всех ваших устройств, знающих SHA1(ключ-секрет).
- BitTorrent трекер. BitTorrent Sync может с вашего разрешения использовать трекер для облегчения поиска друг друга вашим устройствам. Трекер так же выступает в роли STUN сервера и помогает устройствам установить прямое соединение, которые могут находиться за NAT.
⇡#Заключение
Благодаря тому, что объем данных, синхронизируемых при помощи Bittorrent Sync, не ограничен, этот сервис, как и прежде, удобно использовать, скажем, для резервного копирования фотографий и других медиафайлов, которые могут представлять ценность. Достаточно один раз настроить параметры синхронизации на двух-трех домашних компьютерах, и можно больше не думать о том, на какой из них вы в последний раз переписали фотографии с карты памяти и куда скопировали диск с записью видео детского утренника.
Конечно, у Bittorrent Sync есть и недостатки, которые являются следствием особенностей работы сервиса. Главный из них состоит в том, что для получения доступа к синхронизируемым файлам хотя бы один из компьютеров должен быть включен. Также стоит помнить о том, что, если на устройстве используются файлы-заглушки, и возникла необходимость получения доступа к такому файлу, нужно будет тоже включить компьютер, где они физически сохранены.
Несмотря на то, что безопасность передачи файлов при использовании BitTorrent Sync уже неоднократно становилась поводом для дискуссий, в любом случае прямое копирование данных между компьютерами всегда безопаснее, чем хранение информации на удаленном сервере. Кроме этого, BitTorrent Sync всегда выбирает самый быстрый путь копирования данных, поэтому, например, при работе в домашней сети Интернет вообще не задействуется. Кстати, высокая скорость передачи достигается еще и за счет того, что для файлов размером более 4 Мбайт приложение копирует только их измененные части.
Вторая версия BitTorrent Sync — это большой шаг вперед, но ее создателям все еще есть над чем работать. Например, исключение файлов и вложенных папок из синхронизируемой директории в ручном режиме — это каменный век. Однако разработчики действительно активно занимаются развитием BitTorrent Sync. Поэтому надеемся, что в будущем приложение будет постоянно улучшаться, и не только за счет добавления полезных функций в платной версии. Текущие же ограничения бесплатной версии столь незначительны, что вряд ли отпугнут от программы основную часть пользователей. Ну а те, кто в принципе не приемлет проприетарное ПО, могут переходить на альтернативный открытый Syncthing.