BitTorrent Sync как альтернатива DropBox'у

Заимев облачный хостинг, который включает 20ГБ свободного места на жёстком диске за 5$ в месяц, мне пришла в голову идея использовать его для хранения своих файлов. В целом для этой задачи я использую DropBox, но чем хуже заморочиться с собственным таким сервисом? Кстати, если у Вас ещё нет виртуалки на DigitalOcean, то зарегистировавшись по моей реферальной ссылке в правой части страницы Вы получите бесплатно 10$ на счёт, что эквивалентно 2 (двум) месяцам бесплатного использования виртуальной машины начального уровня (20ГБ HDD, 1 процессор и 512МБ RAM). Итак, имеем облачный хостинг (в моём случае виртуальная машина на хостинге DigitalOcean с Debian Wheezy на борту), домашний ноутбук (не отличусь оригинальностью -- тоже с Debian Wheezy на борту :) ) и Android смартфон. Если у Вас другие операционные системы -- BitTorrent Sync клиент следует искать на официальной странице. Для справки: PPC QorIQ клиент можно установить на NAS WD My Book Live. :)

Настройка хостинга

У BitTorrent Sync есть собственный репозиторий, поэтому для установки серверной части будем его настраивать. Подключаем репозиторий, импортируем ключ и ставим btsync:

sudo touch /etc/apt/sources.list.d/btsync
sudo echo deb http://debian.yeasoft.net/btsync wheezy main >> /etc/apt/sources.list.d/btsync.list
sudo echo deb-src http://debian.yeasoft.net/btsync wheezy main >> /etc/apt/sources.list.d/btsync.list
sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 6BF18B15
sudo apt-get update
sudo aptitude install btsync

В процессе установки задаются вопросы:

  • Do you want to define a default BitTorrent Sync instance? (хотим ли мы задать настройки по умолчанию. Если нет, то будут созданы только заготовки конфигурационных файлов в каталоге /etc/btsync/samples, а сам демон не запустится): yes
  • BitTorrent Sync Daemon Credentials (имя пользователя, с правами которого будет запускаться демон btsync, оставил по умолчанию): btsync
  • BitTorrent Sync Daemon Group (имя группы, с правами которой будет запускаться демон btsync, оставил по умолчанию): default
  • Niceness of the BitTorrent Sync Daemon (приоритет демона, оставил по умолчанию): 0
  • Web Interface Bind IP Address (ip-адрес веб-интерфейса, оставил по умолчанию): 0.0.0.0
  • Web Interface Listen Port (порт веб-интерфейса, оставил по умолчанию, хотя можно соригинальничать): 8888
  • Should BitTorrent Sync allow only SSL connections to the Web UI (следует ли делать доступ к веб-интерфейсу только по SSL, считаю это обязательным, т.к. Интернет всё же): yes
  • Start path for the web interface folder browser (путь, который будет отображаться по умолчанию в веб-интерфейсе. Если не указать, то демон btsync будет шариться по всему диску): /home/btsync
  • BitTorrent Sync API Key (пока я не разбирался, какие возможности может дать API, поэтому оставил поле пустым, по умолчанию):
  • Do you want to configure folder defaults (хотим ли мы настроить параметры каталогов): no но если ответить yes, то можно настроить:
  •  Should old version of files be preserved by default (нужно ли хранить старые версии файлов, т.е. функция корзины, по умолчанию yes, да): yes
  •  Should BitTorrent Sync use DHT by default (не разбирался, что это, по умолчанию no): yes
  •  Should BitTorrent Sync use LAN broadcasts by default (должен ли демон искать пиров локальной сети широковещательными запросами. По умолчанию да,  но я выбрал нет): no
  •  Should BitTorrent Sync use external relay servers wheen needed (нужно ли включить релей сервер. Имеет смысл если есть проблемы с NAT, по умолчанию yes, на хостинге лучше отключить): no
  •  Should BitTorrent Sync use external tracker servers by default (нужно ли использовать внешние трекер-сервера для обмена пирами, по умолчанию yes. Лучше оставить, т.к. иначе будут проблемы с идентификацией устройств при получении ссылок): yes
  •  Default known hosts list for new shared folders (перечень известных хостов, полагаю, фишка полезная, но пока пропустил)
  • Do you want to configure advanced parameters (нужно ли настроить расширенные параметры, по умолчанию нет, но вкратце пробежим по ним):
  •  Umask value to set for the daemon (umask, если не знаете, что это -- лучше оставить пустым)
  •  External port number reported to the tracker (настройки входящего порта, по умолчанию 0, т.е. демон может сам выбирать порт): 0
  •  Should BitTorrent Sync perform disk operations with low priority (приоритет дисковых операций, по умолчанию низкий): yes
  •  Should BitTorrent Sync encrypt data on the local network (нужно ли шифровать данные при передаче, по умолчанию да): yes
  •  Should BitTorrent Sync apply speed limits also in local networks (нужно ли ограничивать скорость передачи данных, по умолчанию нет): no
  •  Fall back folder rescan interval in seconds (период дополнительной синхронизации, по умолчанию 600 секунд): 600
  •  Maximum file size difference for patching (максимальный размер файла для патчей, всё, что больше заданного в МБ размера, будет синхронизироваться кусками. Умолчание не выставлено)
  •  Maximum file size for versioning (максимальный размер файла для версионирования, всё, что больше заданного в МБ размера, не будет сохраняться в корзине. Умолчание не выставлено)
  •  Send Buffer Size (размер выходного буфера. Умолчание не выставлено)
  •  Receive buffer size (размер входного буфера. Умолчание не выставлено)
  •  Maximum time difference between devices (максимальная рассинхронизация времени между пирами, секунд. Пиры, с превышенным значением не будут синхронизироваться. Умолчание не выставлено)
  •  Maximum time to live for versioned copies (максимальное время жизни файлов в корзине, дней. Умолчание не выставлено)
  •  Debug logfile size in MB (размер файла отладки. По умолчанию 10 МБ): 10
  •  Peer expiration days (время жизни пира, по истечении пир будет исключён из списка пиров. По умолчанию 7 дней): 7

Т.к. мы указали папку, в которой btsync будет держать наши каталоги, то эту папку надо создать и указать соответствующего владельца:

sudo mkdir /home/btsync
sudo chown btsync:btsync /home/btsync

После установки демон запустится и будет доступен по адресу: https://[ip-адрес-или-домен]:8888

BitTorrent Sync start

Здесь нам предлагают ввести имя пользователя и пароль для доступа к веб-интерфейсу. Логинимся и создаём папку:

btsync add folder icon

Нажимаем по ссылке New folder, пишем имя и нажимаем Add. Отмечу, что если бы в настройках веб-интерфейса мы не задали каталог, то имели бы дерево каталогов, но создать папку могли бы всё равно только там, куда имеет права на запись пользователь btsync.

add test folder to btsync

Итак у нас на хостинге установлен btsync с одной единственной папкой

btsync main window

Настройка ноутбука

Т.к. на моём ноутбуке стоит та же самая операционная система, что и на хостинге, то настройка проводится аналогично. Я не буду подробно описывать процесс настройки, ограничась только отличиями:

  • Параметры учетной записи демона BitTorrent Sync (я выбрал своего пользователя. Альтернативные пути: добавить своего пользователя в группу btsync, изменить права доступа к каталогам btsync): [username]
  • Использовать только SSL подключение к Web-интерфейсу (в моей локальной сети я в этом смысла не вижу, поэтому отключил): no
  • Использовать широковещательную рассылку в локальной сети по умолчанию (т.к. у меня может возникнуть потенциальная необходимость синхронизировать второй компьютер, то смысла тянуть данные с облака нет, т.к. они лежат на соседнем компьютере, поэтому я выбрал да): yes
  • Использовать внешний трекер сервер: yes
  • Использовать внешний релей сервер: yes

После настройки локальный btsync будет доступен по адресу http://localhost:8888

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

Обмен ссылками

Для создания ссылки на доступ к папке необходимо нажать кнопку Share (Поделиться)

btsync share button

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

btsync share options

Т.к. цель -- получить аналог DropBox, то выбираем доступ на чтение и запись. Локальный btsync открыт в соседней вкладке браузера, поэтому ссылку можно просто скопировать, поэтому нажимаем "Копировать". Появится окно с именем пользователя и именем устройства. Их не меняем и нажимаем ОК.

btsync auth

Копируем полученную ссылку

btsync link

На локальном компьютере кликаем по иконке ввод ссылки

btsync enter link button

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

btsync pending

В это время btsync на хостинге нам сообщает о подключении нового пира с возможностью принятия или отклонения

btsync grant  permission

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

BitTorrent Sync на смартфоне

Опишу под имеющийся у меня Android. Ставим из GooglePlay официальный клиент

В веб-интерфейсе btsync нажимаем кнопку "Поделиться", выбираем права доступа и нажимаем на иконку "QR-код"

btsync generate qr-code

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

btsync scan qr-code

Отмечу, что при доступе через QR-код разрешение на доступ запрашиваться не будет.

Добавлено: 2014-09-05, обновлено: 2014-09-06


Поделиться:

Оставить комментарий

Комментарий появится после одобрения.

Поля со значком * обязательны для заполнения.