Как сделать свой Dropbox
Если вы из тех, кто использует несколько устройств для работы онлайн, я уверен, что вы используете, или хотя бы хотите использовать метод для синхронизации файлов и каталогов между этими устройствами.
BitTorrent Sync, также известный как btsync (для краткости) — это кроссплатформенный инструмент синхронизации (бесплатный), который работает на BitTorrent, знаменитом протоколе peer-to-peer (P2P) (от пользователя-к-пользователю) распространения файлов. В отличие от классических BitTorrent клиентов, тем не менее, btsync шифрует трафик и предоставляет доступ к расшаренным файлам, основываясь на генерируемых автоматически ключах, в различных операционных системах и типах устройств.
Более конкретно, когда вы добавляете файлы или папки в btsync для расшаривания, создаются соответствующие ключи чтения/записи (так называемые секретные коды). Эти ключи распространяются по разным устройствам через ссылки HTTPS, электронные письма, QR коды и т. д. Когда два устройства сопряжены в пару через ключ, связанный контент может быть синхронизирован напрямую между ними. Нет лимитов на размер файла и скорость обмена никогда не «просядет», если вы сами не поставите ограничение. Через веб-интерфейс вы сможете создавать аккаунты внутри btsync, где вы сможете создавать и управлять ключами и файлами для распространения.
BitTorrent Sync доступен на множестве операционных систем, включая Linux, MacOS X, Windows, а также на Android и iOS. В этом уроке я покажу как использовать BitTorrent Sync для синхронизации файлов между Linux (домашний сервер) и 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
Настройка Btsync
Btsync поставляется со встроенным веб-сервером, который используется как интерфейс управления для BitTorrent Sync. Чтобы получить доступ в этот веб-интерфейс нужно создать конфигурационный файл. Вы можете сделать это следующей командой:
~/opt/btsync/btsync --dump-sample-config > ~/opt/btsync/btsync.config
Затем предпочитаемым текстовым редактором измените файл btsync.config (секцию webui) как показано ниже:
"listen" : "0.0.0.0:8888", "login" : "ваше_имя", "password" : "ваш_пароль"
Вы можете выбрать любое имя пользователя и пароль.
Для дальнейшей тонкой настройки посмотрите файл README в директории ~/opt/btsync, а я пока на этом остановлюсь.
Первый запуск Btsync
Будучи системными администраторами, мы верив в логи! Поэтому перед запуском btsync мы создадим лог файл для btsync.
touch /var/log/btsync.log
Наконец настало время запускать btsync:
~/opt/btsync/btsync --config ~/opt/btsync/btsync.config --log /var/log/btsync.log
Видим, что BitTorrent Sync был запущен как демон с PID 3642. Запомните этот номер, если в дальнейшем вы захотите вручную завершить этот процесс или послать ему какой-либо другой сигнал.
Сейчас откройте веб-браузер и наберите в адресной строке сервера Linux IP и порт, который прослушивает btsync (в моём случае 127.0.0.1:8888), вводим учётные данные:
соглашаемся с лицензией:
и попадаем на домашнюю страницу установленной на нашем компьютере программы btsync.
Посмотрите на эту панельку:
Слева-направо:
- Добавить каталогов
- Ввести ключ или ссылку
- История
- Оции
Установите BitTorrent Syn на вашу Windows машину (или другой Linux, как сами хотите) перед тем, как мы продолжим.
Расшаривание файлов в Btsync
На Windows машине вместо браузера откроется обычное окно программы.
Нажимаем Add a folder (добавить папку). После выбора соответствующей папки появится такое окно:
Permission – разрешения
Read Only – только чтение
Read & Write – чтение и запись
Security – Безопасность
Peers I invite must be approved on this device – Пиры, которых я приглашаю, должны быть одобрены на этом устройстве
Link will expire in … days – Ссылка перестаёт действовать через … дней
Link can be used … times – Ссылка может быть использована … раз
Если хотите синхронизировать в обе стороны, то выберите Read & Write. Если хотите синхронизировать в одну сторону, то выберите Read Only.
В этом же окне нажмите Email (для отправки ссылки по электронной почте) или Copy (для копирования ссылки в буфер обмена).
Я выбрал двухстороннюю синхронизацию и нажал скопировать — ссылка была скопирована в буфер обмена. Теперь я перехожу к Linux. Нажимаю там "Enter a key or link" (Ввести ключ или ссылку) и копирую туда ссылку:
Когда готово, нажимаем Next (далее). Появляется окно для выбора папки, куда будет происходить синхронизация:
Я нажимаю Add (добавить), и в следующем окне нажимаю Connect (соединение).
Сразу же приходит запрос на Windows машину:
Я принимаю его:
И мгновенно после это начинается синхронизация:
Это на Linux:
Это на Windows:
Каталог для синхронизации на Windows: я скопировал в него файл 23.jpg — и этот файл появился в соответствующем каталоге на Linux. На Linux я скопировал в папку для синхронизации файлы btsync.config и MailScanner.conf — и они появились в Windows.
Теперь повторите процесс с другими компьютерами или устройствами; выбирайте каталоги и файлы для расшаривания и импортируйте через веб-интерфейс соответствующие ключ (ключи) в вашу «центральную» установку btsync на вашем Linux сервере.
Чтобы было понятно, в этом процессе совсем необязательно должен участвовать компьютер с Linux. Могут быть два (и более) компьютера с Windows, может быть Windows и Android, два (и более) устройства с Android — в общем любые сочетания любого количества поддерживаемых устройств. Обратите внимание на поддерживаемые устройства (можно посмотреть на странице загрузки). Кроме уже перечисленных, там есть Kindle Fire, для ARM версии Windows (ну и ARM Linux, естественно), Mac, FreeBSD, железные серверы и файлохранилища QNAP, Seagate NAS OS, NETGEAR, SnapServer.
Автозапуск btsync на Linux
Откройте файл /etc/rc.local и в любое место перед строчкой exit 0 вставьте команду, подобную этой:
su mial -c '/home/mial/opt/btsync/btsync --config /home/mial/opt/btsync/btsync.config --log /var/log/btsync.log'
Обратите внимание, чтобы составить эту строчку нужно взять команду запуска, которую я приводил выше
~/opt/btsync/btsync --config ~/opt/btsync/btsync.config --log /var/log/btsync.log
И заменить тильды (~) абсолютными путями. Полученную таким образом строчку нужно поместить в кавычки и поместить перед ней дописать su имя_пользователя
Т.е. вместо mial в вашей команде будет пользователь, от чьего имени запускается команда.
Есть и другие способы автозапуска, но я остановлюсь на этом, чтобы не удлинять и не усложнять без необходимости инструкцию.
Последние замечания
Как вы можете видеть, BitTorrent Sync это почти как личный безсерверный Dropbox. Но не совсем. Когда вы синхронизируете между устройствами в одной локальной сети, синхронизация происходит напрямую между двумя устройствами. Тем не менее, если вы пробуете синхронизировать через различные сети, и спаренные устройства находятся за ограничительным файерволом, есть шанс, что трафик синхронизации идёт через сторонние релейные сервера, управляемые BitTorrent. Хотя они утверждают, что трафик зашифрован AES, возможно, вам всё равно не хочется, чтобы это происходило. Для вашей конфиденциальности убедитесь, что отключили все relay/tracker серверные опции в каждом каталоге, который вы расшариваете.
Надеюсь инструкция помогла! Счастливой синхронизации!