Доброго времени суток! С уходом компаний я задался вопросом: «что делать, если прикроют мой любимый Google Drive?». Понятно, что есть аналоги – Яндекс.Диск и Облако Mail.ru, но оба бесплатно предоставляют только 8 гб дискового пространства, а дальше жесткая тарификация, в то время как Google дает 15 и стоит дешево. «А так, чтобы бесплатно?». Выяснилось, что существует [достаточно много open-source решений]() для домашнего и корпоративного использования. Одним из самых популярных и навороченных является система NextCloud, представляющая собой набор программ и модулей для развертывания своего полноценного облачного хранилища. NextCloud Server даже предлагается для скачивания во время установки Ubuntu Server.
Почитал документацию и решил попробовать поставить на домашнем компьютере в своей локальной сети. Прежде чем описывать поэтапную настройку, изложу те проблемы и технические решения, которые нужны для их обхода, чтобы Вы могли понять, подходит ли NextCloud лично Вам.
Что полезного содержит эта статья.
-
Запуск NextCloud в докере на Windows и Linux.
-
Запуск NextCloud на домашнем компьютере. Проблемы, ограничения.
-
Запуск NextCloud для тестирования. Приобретение понимания, нужен ли этот продукт.
-
Анализ целесообразности развертывания облака дома.
-
Подробный разбор параметров контейнера NextCloud AIO.
-
VPN-тоннель домой с использованием сервиса Hamachi. Обход проблемы отсутствия белого ip.
-
Настройка reverse-proxy на базе Nginx, Apache или Caddy.
-
Запуск HTTPS-сервера на домашнем компьютере.
-
Получение SSL-сертификата с помощью сервиса letsencrypt.
-
Краткий разбор форматов SSL-сертификатов.
-
Настройка файервола в Windows.
Стэк.
Домашняя машина, на которой запущен NextCloud: Windows 10, Docker, образ NextCloud AIO, Hamachi-клиент для Windows, PuTTy.
Reverse-proxy-сервер: Ubuntu Server, certbot, Nginx, или Apache, или Caddy, консольный Hamachi-клиент для debian.
Ключевые слова.
NextCloud, NextCloud-AIO, reverse-proxy, Nginx, Apache, Certbot, Hamachi, localhost, Windows, Defender, SSL, HTTPS дома.
Содержание.
-
Целесообразность
-
Об образе NextCloud AIO
-
Этап 1. Настройка VPN
-
Этап 2. Получение SSL-сертификата
-
Покупка
-
Самописные сертификаты certbot
-
-
Этап 3. Настройка reverse-proxy
-
Apache
-
Nginx
-
Caddy
-
Тестирование
-
-
Этап 4. Запуск NextCloud AIO в Docker
-
Переменные окружения
-
Volumes
-
Порты
-
Пояснения к опциям docker run
-
Запуск
-
Первичная настройка
-
Не работает domaincheck
-
-
Этап 5. Фаервол
-
Инструменты Windows для диагностики сетевых интерфейсов
-
Заключение
Целесообразность.
Зададимся вопросом: а надо ли оно нам? Когда я приступал к настройке в первый раз, не зная особенностей этого программного комплекса, я бы однозначно ответил «да». Собственно, проблема стояла четко, и ее надо было преодолеть. У меня была техническая возможность и пометка в документации, что это развернуть NextCloud дома возможно. Но действительность оказалась, как всегда, скажем, другой. Сравним ожидание и реальность:
Ожидание:
-
Использование своего железа: большие объем диска и ОП, быстрый процессор.
-
Сервер установлен на той же машине, с которой осуществляется подключение loopback (localhost), следовательно, доступ к файлам мгновенный, как при использовании средств просмотра.
-
Быстрый доступ (до 100 Мбит/с) со всех устройств в квартире, находящихся в локальной Wi-Fi- или Ethernet-сети: ПК, ноутбука, планшета, смартфона,
часов, холодильника– для всей семьи. -
Быстрое добавление файлов и внесение изменений на диск с помощью домашнего компьютера, минуя сетевые операции, например, копирование с флэшки или переносного диска.
-
Доступ к файлам на ПК из любой точки мира с шифрованием.
-
Авторизация подключений путем добавления пользователей в сеть VPN.
-
Гибкая настройка доступа с помощью дополнительных модулей NextCloud для авторизации.
-
Клевые расширения: сервис авторизации через соцсети, аналоги Google Meets, Google-карт и Google-календаря, таск-трекеры и т.д. — все в одном месте — прямо как у «корпорации добра».
-
OpenSource, а значит, поддержка на форумах, постоянные обновления.
-
Все бесплатно, исключая затрат на железо: нет платы за ПО и аренду диска в облаке.
-
Не надо настраивать файервол, т. к. vpn — это частная сеть.
Реальность:
-
Отсутствие дистрибутива сервера NextCloud под Windows. Придется разворачивать на VM или в Docker. Но есть Windows-клиент. Однако, основным является браузерный клиент, а он кроссплатформенный.
-
NextCloud обязывает завести домен несмотря на то, что часто достаточно было бы подключаться по VPN. Его нельзя запустить на localhost (127.0.0.1) или другом IP без домена.
-
SSL. В принципе на этом можно было бы закончить. В репозитории NextCloud прямым текстом говорится о том, что концепция этой утилиты состоит в работе только с прокси по HTTPS. К сожалению, обязательная привязка к SSL перечеркивает все преимущества, основанные на быстром доступе по следующим причинам:
-
SSL-сертификат работать будет только на домене. IP-адрес, на который ведет домен, должен вести к конечной точке, которая может принимать внешние соединения, для того, чтобы стала возможной процедура верификации домена, а значит, нужен белый IP или внешний сервер, который будет выступать шлюзом в нашу локальную сеть, то есть проксировать запросы, а также само доменное имя.
-
Белый IP требует денежных вложений, чего изначально я пытался избежать. За внешний сервер даже самый слабый так же нужно платить аренду. Кроме того, согласно документации NextCloud’а не желательно, чтобы само облачное хранилище работало на том же хосте, на котором хранятся SSL-сертификаты, так что придется настраивать reverse-proxy. Я арендовал самый дешевый сервер: за 400 рублей в месяц, 1 ядро, 1 Гб, 32 Гб – супер-невыгодное предложение (об этом далее). Это уже дороже, чем подписка Google Drive (от 140 рублей за 30 Гб до 700 за 2 Тб). В идеале, стоило бы разместиться у друга или на выделенном сотрудникам сервере в офисе компании, в которой Вы работаете (обязательно проконсультируйтесь у сисадмина по устранению уязвимостей, связанных с работой VPN).
-
Сервер с 1 ГБ виртуальной ОЗУ тормозит (утилита top показывает загрузку 70-90%), и не может скомпилировать даже небольшой проект, а в режиме reverse-proxy с трудом способен обеспечить доступ 2-м клиентам одновременно, хотя значительную задержку вносят операции на моем HDD (чтение HDD происходит со скоростью около 30 Мбит/с).
-
Большая задержка по сети: трафик идет от клиента в датацентр, где развернут прокси, а оттуда ко мне домой, при этом пропускная способность датацентра, как водится, отличная, а ADSL-линия (старая технология доступа в интернет по телефонным проводам), протянутая ко мне провайдером, обеспечивает скорость входящих пакетов (на скачивание) всего 40 Мбит/с, и если я не ошибся в определении технологии, используемой провайдером, скорость исходящих пакетов (выгрузка в интернет, т.е. максимальная скорость доступа к моему «облаку») ограничена где-то 10 Мбит/с, когда обычная jpeg-картинка весит 4.2 Мб.
-
SSL-сертификат иногда выписывается при оплате домена, но в других случаях требует отдельной покупки. Однако его можно выписать себе самому. Самописные сертификаты не принимаются современными браузерами или принимаются ограниченно. Преимущество NextCloud состоит в том, что он умеет самостоятельно решать эту проблему, но только если не используется свой reverse-proxy.
-
-
Использование виртуальной машины накладывает ограничение на работу с облачным хранилищем напрямую через диск: все изменения в хостовой ФС NTFS должны быть проиндексированы (продублированы) в гостевой ФС Ext4. Хорошая новость состоит в том, что это не препятствие: перемещаем папку с ДЗ 30 Гб в папку NextCloud/data/<user>/files и создаем директорию с таким же названием через веб-клиент (в документации называется UI-client); однако иногда выскакивают предупреждения о невозможности выполнения операции особенно при удалении. На деле, мы всегда знаем, что ничего никуда не удаляется, а файлы просто перемещаются по диску в т. ч. в корзину.
-
Нужно не забыть настроить файервол как на домашнем компьютере, так и на reverse-proxy сервере.
-
Прежде чем приступать к настройке облака через веб-панель администратора, надо обязательно обеспечить доступ на сервер по порту 443. Этого требует NextCloud. Главная проблема при работе сервера на домашнем компьютере связана с этим. В Windows и Linux открыть для входящих соединений зарезервированные порты 0-1024 можно только лишь с правами администратора через настройки файервола. 443 порт может быть также заблокирован роутером. В Windows придется еще повозиться с политиками безопасности, в т. ч. групповыми. Прокси сервер и Docker тут кстати: можно настроить проброс портов и обойти эти трудности.
-
Когда я запустил сервер и установил клиент, я понял, что создатели NextCloud не предполагали использование их утилиты именно таким образом: клиент первым делом предлагает настроить синхронизацию с облаком, но ведь диск с файлами уже находится в этой же системе.
-
Установка программного комплекса NextCloud только для пользования в ЛВС нецелесообразна, т. к. локальная сеть — это изолированная система без возможности принимать входящие подключения, а значит, смысл облака теряется. В таких случаях требуется настроить шлюз с белым IP-адресом. Для работы чисто в ЛВС, возможно, достаточно настроить совместный доступ к папкам на диске NTFS и включить сервер RPC (стандартная возможность в Windows).
О преимуществах и недостатках различных решений обеспечения функционирования своего собственного сервера в виде аренды облака, аренды сервера и использования своего компьютера коротко и ясно говорится в этом ролике на Youtube.
Теперь, когда стал понятен фронт проблем, возможно стоит посмотреть другие решения по развертыванию облачных хранилищ.
Если Вам важно наличие именно функций NextCloud’а, некоторые люди на форумах предлагают поднять локальный DNS-сервер. Я пытался сделать и это, но такое решение не избавляет от необходимости подтверждать SSL-сертификат и разворачивать reverse-proxy, зато добавляет еще одну задачу по конфигурированию DNS в ЛВС. Если Вы решитесь пойти этом путем, посмотрите на bind9.
Итак, поставим задачу.
Задача
Хостинг NextCloud в локальной сети на Windows. Берем образ NextCloud AIO (all-in-one – англ. все в одном) – образ со всеми необходимыми утилитами.
Ресурсы
Наша библия для этого гайда – документация в репозитории.
Есть и другие варианты установки (листать до DOWNLOAD SERVER).
Также у NextCloud есть форум, где люди делятся своими проблемами и решениями. Возможно, Вы найдете здесь решение Вашей проблемы.
Мне очень помог этот гайд на youtube. Автор подробно объясняет, как будет работать итоговая система с точки зрения сисадмина. Он прошел через все этапы, настройки, которые затрагиваются в этом гайде. Единственное, он не рассказывает, как он установил сам NextCloud Server на свою машину. Кроме того, он использует Apache вместо Nginx и OpenVPN вместо Hamachi, не затрагивает тему Docker-контейнера NextCloud AIO.
На youtube, я не нашел гайдов, как запустить Docker-образ NextCloud AOI на локальной машине. А жаль, ведь есть много камней вроде выбора портов. Все развертывают NextCloud на внешнем арендованном сервере. Тем не менее, эти гайды демонстрируют, как правильно настроенный сайт выглядит в браузере.
Если Вы не знакомы с Docker, то для этого гайда это не критично. Но я все же посоветую посмотреть какой-нибудь гайд по запуску сервера в docker-контейнере. Бегло ознакомится стоит также с docker-compose.
Об образе NextCloud AIO.
Чтобы понять, что и для чего делается дальше, нужно пояснить, что входит в поставку образа NextCloud AIO. Если запустить этот контейнер, как сказано в документации, получим несколько дополнительных:
-
nextcloud-aio-mastercontainer – главный контейнер, в который превращается с образ NextCloud AI при запуске.
-
nextcloud-aio – основное приложение и веб-клиент к нему.
-
nextcloud-aio-redis – кто бы мог подумать, редис.
-
nextcloud-aio-database – контейнер, обеспечивающий соединение с БД. После установки будет предложено подключить свою: postgres, mysql или создать sqlite.
-
nextcloud-aio-apache – контейнер, обеспечивающий подключение ssl-сертификатов. Работает как reverse-proxy. Принимает HTTPS-запросы на порту 443 и передает их HTTP-версию на обработку в контейнер с основным приложением. Также, генерирует ssl- сертификаты. Самое интересное, что внутри контейнера, который называется nextcloud-aio-apache используется еще и готовый reverse-proxy Caddy. Caddy позволяет запустить HTTPS-сервер с самописными сертификатами с помощью однострочного конфига. Внутри себя запускает утилиту certbot, о которая также затрагивается в этом гайде (этап 2). Функционал этого контейнера не используется целиком, если подключаем внешний прокси-сервер. В этом гайде расписано, как это работает в этапе 2 и этапе 3.
-
nextcloud-aio-domaincheck – в этом контейнере обрабатываются ACME DNS Challenge-запросы для подтверждения самописанных ssl-сертификатов, если не используется внешний прокси. См. этап 2 вариант 2.
-
nextcloud-aio-callabora и nextcloud-aio-talk – дополнительные модули NextCloud. Их будет предложено подключить по окончании настройки.
На reverse-proxy не стоит обращать внимания. Это «имя проекта» — имя директории, где лежит docker-compose.yml.
Этап 1. Настройка VPN.
VPN позволит принимать соединения на домашнем компьютере без приобретения белого ip-адреса у провайдера.
Буду использовать Hamachi. У него хороший десктоп-клиент на Windows и есть консольный на Linux. Можно использовать любой другой VPN: например, в этом гайде используется аналог — OpenVPN.
Ставим клиент на Windows. Создаем сеть, даем ей имя и пароль.
Переходим в Настройки -> безопасность. Ставим: Шифрование – включено, Сжатие – любой. Переходим в Дополнительные -> Соединения с одноранговым узлом -> фильтрация трафика — разрешить все.
Фильтрация трафика – это по сути файервол. Hamachi добавит новую (виртуальную) сеть, которая для ОС аналогична полноценному сетевому интерфейсу, т.е. в компьютере как бы появится новая сетевая карта. Посмотреть на нее можно в панели управления: Панель управления -> Сеть и Интернет -> Центр управления сетями и общим доступом:
Также можно увидеть этот интерфейс, введя в консоль или powershell, запущенную от имени администратора (Win+X -> Windows PowerShell от имени администратора) команду ipconfig
:
На этой сети может работать встроенный файервол Windows (Defender). Его настроим в конце.
Перейдем на Ubuntu-сервер. Я для этого использую клиент PuTTy.
На reverse-proxy-сервере достаточно подключиться к нашей сети как клиент (показано для Debian/Ubuntu (Про установку в CentOS):
wget http://www.vpn.net/installers/logmein-hamachi_2.1.0.165-1_amd64.deb
sudo dpkg -i logmein-hamachi_2.1.0.165-1_amd64.deb
# подключение к сети > в графическом клиенте появится новый участник
hamachi join <network id> <password>
# включение автозагрузки сервиса
sudo systemctl enable logmein-hamachi
Теперь можно проверить работу VPN-тоннеля. Либо на сервере, либо на домашнем ПК наберите ping <ip домашнего ПК или ip сервера, который выдал Hamachi>
. Также это можно сделать в графическом клиенте Hamachi: ПКМ по участнику сети -> Проверить доступность.
Этап 2. Получение SSL-сертификата.
Если хотите использовать Caddy в качестве reverse-proxy, этот этап можно пропустить. Главное, чтобы Ваш сервер был доступен в интернете (имел белый ip), т. к. Caddy внутри себя использует certbot (см Этап 2. Вариант 2 ниже). Более того, при использовании образа NextCloud AIO на той же машине, где развернут сам NextCloud Вам не требуется его настраивать, т.к. он входит в образ.
Вариант 1. Покупка сертификата.
Покупаем сертификат. Получаем 2 файла: fullchain-сертификат и приватный ключ, переводим их в формат .pem. Тут и далее будем называть их fullchain.pem
и privkey.pem
. Для Apache еще нужен будетpublic.pem
с публичным ключом.
Примечание. В основном встречаются 3 типа форматов ключей: .pem, .crt, .cer, .key. Расширение файла не имеет значения. Имеют значение блоки в них. Подробнее тут. Центр выдачи сертификатов, например, reg.ru, даст Вам 5 файлов следующего вида:
Публичный сертификат
——BEGIN CERTIFICATE——
<много букв и цифр>
——END CERTIFICATE——
Корневой сертификат
——BEGIN CERTIFICATE——
<много букв и цифр>
——END CERTIFICATE——
Промежуточный сертификат
——BEGIN CERTIFICATE——
<много букв и цифр>
——END CERTIFICATE——
Запрос на получение сертификата
——BEGIN CERTIFICATE REQUEST——
<много букв и цифр>
——END CERTIFICATE——
И приватный ключ
——BEGIN RSA PRIVATE KEY——
<много букв и цифр>
——END RSA PRIVATE KEY——
Из конечного, промежуточного, корневого сертификатов в обычном блокноте нужно собрать fullchain, а приватный ключ записать отдельно. Если используете Apache, вынесете также отдельно публичный сертификат в файл public.pem. Если чего-то для fullchain не хватает, вставляйте то, что есть, главное, чтобы был корневой или промежуточный.
Корневые сертификаты. Выпущены специальными удостоверяющими центрами, имеют наивысшую доверительность. Могут удостоверять собой любые другие виды сертификатов.
Промежуточные сертификаты. Любые виды цепочек сертификатов. Тоже имеют право удостоверять (подписывать) другие сертификаты.
Сохраняем 2 файла в папку /certificates
на сервере. В PuTTy вставка текста осуществляется через ПКМ.
Вариант 2. Генерация самописного сертификата с помощью сервиса letsencrypt и утилиты certbot.
apt update
apt install -y software-properties-common
apt update
apt install -y certbot
certbot certonly -d www.<Ваш домен>,<Ваш домен> --agree-tos –n
certbot certificates
certbot renew --dry-run
Первые 4 команды обновляют репозитории для скачивания и устанавливают утилиту certbot
. Команда на пятой строке говорит сгенерировать или обновить сертификат (certbot certonly
) для доменов <Ваше доменное имя> с доменом верхнего уровня www
и без него (вводить домены через запятую) (-d www.<Ваш домен>,<Ваш домен>
) в неинтерактивном режиме для пропуска всех вопросов (certbot -n
), соглашаясь с лицензионным соглашением ACME DNS Challenge (certbot --agree-tos
). Предпоследняя покажет, в какую директорию certbot записал сертификаты. Последняя команда просит автоматически обновлять сертификаты по их истечению. Сами по себе сертификаты действительны 3 месяца.
Возможно, Вам также пригодятся следующие флаги команды certbot:
-m <email>
— сюда будут приходить уведомления о состоянии сертификата, например, напоминания о том, что его надо продлить.
--webroot <путь>
— certbot положит сертификаты в эту папку. Удобно, если уже есть развернутый сервер.
ACME DNS Challenge – это специальный стандарт проверки доменов, которые использует letsencrypt. Это накладывает дополнительные ограничения. Например, эти сертификаты не будут работать на собственном DNS, ведь для их подтверждения на Ваш сервер будет приходить запрос от letsencrypt по url, начинающимся на _acme-challenge или .well-known/acme-challenge. Надо научить сервер правильно на него отвечать. Это для нашей задачи вообще не понадобится, но кому интересно, подробнее тут. В Nginx-конфиге, например, поддержку ACME через HTTP можно осуществить, добавив что-то вроде
location ~ .well-known/acme-challenge {
allow all;
root /usr/share/nginx/html;
}
От выбора способа получения сертификата в нашем случае зависит не только положение ключей на диске (будем считать, что они лежат в /certificates). В случае с certbot’ом, если Вы используете Nginx, надо будет немного изменить конфиг (об этом в конфиге ниже).
Этап 3. Настройка reverse-proxy.
Образ NextCloud AIO поддерживает внешний reverse-proxy как опцию и требует, связать его и порт машины, где развернут контейнер Apache, входящий в поставку NextCloud AIO, а для этого надо указать переменную среды для контейнера APACHE_PORT с номером этого порта. В конфиге прокси-сервера требуется все внешние HTTPS-запросы перенаправлять на этот порт. Он может быть любым, но в документации используется 11000. Его и укажем. Итак, перенаправляем HTTP-запросы (порт 80) на HTTPS (443), а HTTPS 443 на HTTP11000. Таким образом, любой запрос в браузере к нашему домену, где явно не указан порт, будет приходить на порт 11000 машины, где развернут контейнер NextCloud AIO.
Вариант 1. Reverse-proxy на базе Apache
Наглядно процесс настройки показан в том ролике, на который я ссылался ранее. Конфиг ниже взят из него.
# файл apache.conf – конфиг, как в видеоролике
<VirtualHost *:80>
ServerName www.<домен>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
RequestHeader set X-Forwaded-Proto "https"
SSLCertificateFile /certificates /public.pem
SSLCertificateKeyFile /certificates /privkey.key
SSLCertificateChainFile /certificates /fullchain.crt
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite HIGH:!aNULL:!MD5:!3DES
SSLHonorCipherOrder on
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
ServerName www.<домен>
ProxyPreserveHost On
ProxyPass / http://<ip домашнего компьютера в сети hamachi>:11000/
ProxyPassReverse / http://<ip домашнего компьютера в сети hamachi >:11000/
</VirtualHost>
Можно попробовать альтернативный конфиг, представленный в документации.
Установим сам Apache и активируем конфиг.
apt update
apt install apache2
# Создаем или перемещаем конфигурационный файл в правильную директорию
mv <домен>.apache.conf /etc/apache2/sites-available/<домен>.conf
# Подключаем модули для работы с https в режиме проксирования
a2enmod proxy rewrite ssl headers proxy_http
# По умолчанию Apache уже имеет конфиг с базовым сайтом-пустышкой.
#Отключаем. И подключаем свой.
a2dissite 000-default.conf
a2ensite <домен>.apache.conf
# Проверка конфига
apachectl configtest
# Если выскочит предупреждение о том, что apache не знает имени сервера,
# выполним следующие 3 команды (необязательно):
chmod 777 /etc/apache2/apache2.conf
echo -e "$(cat /etc/apache2/apache2.conf)nServerName <любое имя>" > /etc/apache2/apache2.conf
chmod 644 /etc/apache2/apache2.conf
# Обязательно перезапускаем apache
service apache2 restart # или systemctl restart apache2
Развернуть Apache сервер для теста с NextCloud можно, например, в докере, воспользовавшись docker-compose.
# docker-compose-apache.yml
services:
apache-reverse-proxy:
image: php:7.4-apache
restart: unless-stopped
container_name: apache
volumes:
- ./certificates:/certificates
- ./apache.conf:/etc/apache2/sites-available/apache.conf
ports:
- "80:80"
- “443:443”
- "11000:11000"
network_mode: 'host'
tty: true
command: bash -c "
chmod 777 /etc/apache2/apache2.conf
&& echo -e "$$(cat /etc/apache2/apache2.conf)\nServerName www.sabernews.ru" > /etc/apache2/apache2.conf
&& chmod 644 /etc/apache2/apache2.conf
&& a2enmod proxy rewrite ssl headers proxy_http
&& a2dissite 000-default.conf
&& a2ensite sabernews-nexcloud.apache.conf
&& service apache2 restart
&& apachectl configtest
&& apt update
&& apt install -y net-tools
&& tail -f /dev/null
"
nextcloud:
image: nextcloud/all-in-one:latest
restart: unless-stopped
container_name: nextcloud-aio-mastercontainer
ports:
# про порты для nextcloud далее
- "8080:8080"
- "80:80"
- "11000:11000"
- "8443:8443"
environment:
- NEXTCLOUD_DATADIR=nextcloud_aio_nextcloud_datadir
volumes:
- nextcloud_aio_mastercontainer:/mnt/docker-aio-config
- //var/run/docker.sock:/var/run/docker.sock:ro
depends_on:
- apache-reverse-proxy
volumes:
nextcloud_aio_mastercontainer:
Вариант 2. Reverse-proxy на базе Nginx
Лично я использовал сервер, на котором был запущен другой веб-сайт, работающий на Nginx, а значит порты 443 и 80 уже были заняты. Как уже отмечалось выше, NextCloud’у обязательно нужен 443 порт. Однако домены разные, а значит, надо просто дополнить конфиг Nginx следующими строчками, которые будут работать и как самостоятельный конфиг-файл:
# <домен>.nginx.conf
# -> нужно поместить в /etc/nginx/nginx.conf
http {
## reverse-proxy
server {
listen 80 default;
server_name www.<домен>;
access_log off;
error_log off;
return 301 https://$server_name$request_uri;
}
server {
server_name www.<домен>;
listen 443 http2 ssl;
access_log /root/reverse-proxy/access.log;
ssl_certificate /certificates/fullchain.pem;
ssl_certificate_key /certificates/privkey.pem;
# эти строчки требуются для правильной работы сертификатов сертбота
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY13305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
location / {
add_header Cache-Control "public, must-revalidate";
add_header Front-End-Https on;
add_header Strict-Transport-Security "max-age=2592000; includeSubdomains";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://<ip>:11000; }
}
#server ## reverse-proxy
} # http
В документации написано, что конфиг, представленный там, может не работать. Он действительно не работает из-за строчки proxy_set_header Host $host;
, которая сохраняет заголовок Host HTTP, содержащий ip-адрес клиента. Это стандартное решение для прокси-серверов, иначе бекенд не сможет отличать клиентов по этому заголовку, если требуется. Однако в режиме reverse-proxy, когда прокси сервер перенаправляет через себя как запросы клиентов, так и ответы бекенда: и то, и то для прокси сервера является входящими сообщениями, которые подлежат обработке. Nginx опирается на Host, чтобы их различать. Если подменить хост, то это приводит к бесконечному перенаправлению запросов.
Запустим Nginx:
mv <домен>.nginx.conf /etc/nginx/nginx.conf
# тестируем конфиг
nginx –t
# Обязательно перезапускаем nginx
service nginx restart # или systemctl restart nginx
Вариант 3. Caddy reverse-proxy
Посмотрим так же на Caddy. На мой взгляд, это самый простой сервер, который будет обеспечивать нужный нам функционал подключения сертификата. Этот конфиг есть в документации.
# Caddyfile
https://<домен>:443 {
reverse_proxy <ip>:11000
}
Проверка работы
Остается протестировать. Я написал простой сервер на NodeJS для этого. Для запуска Вам понадобится установить node.
// server.js
const http = require("http");
const host = '0.0.0.0';
const ports = [80, 443, 8443, 11000, 8080];
const servers = ports.map((port) => {
try {
return [http.createServer((req, res) => {
console.log(`[${port}]`, req.url, ' |', req.headers['user-agent'].slice(0, 20), '| ', req.headers['x-forwarded-for']);
req.on('error', (err) => {
console.error(err);
});
res.writeHead(200);
res.end(`served by ${port}n${req.headers["user-agent"]}n`);
}), port];
}
catch (err) {
console.error(err);
}
});
servers.forEach(([server, port]) => {
try {
server.listen(port, host, () => {
console.log(`Server is running on ${host}:${port}`);
});
}
catch (err) {
console.error(err);
}
});
Здесь запускается прослушка 5 портов (они перечислены в массиве на строке 5). Запустим на домашнем компьютере:
node server.js
Перейдем в браузер и вобьем: http://localhost:80
, http://localhost:443
и т.д. – будет отображаться надпись с тем портом, на который мы подключились и Ваши текущие user-agent, и ip-адрес в заголовке Host. Обратите внимание, что протокол здесь только HTTP, и значка с замочком в браузере при таком подключении не появится.
Теперь заменим строку 4 const host = '0.0.0.0';
на const host = '<ip-адрес ПК в сети Hamachi>'
. Перезапустим: Ctrl+C и снова node server.js
. Подключиться теперь можно только по портам 80 и 443, т.к. наш конфиг прокси сервера (любой из 3-х представленных выше) указывает ему перенаправлять запросы с порта 80 на порт на 443, а к запросам с порта 443 подключать сертификат и перенаправлять его на порт 11000 по протоколу HTTP, поэтому вбив <ip>:80
, http://<ip>
, <ip>:443
или https://<ip>
(ip — это ip-reverse-proxy-сервера), или www.<домен>, увидим что-то вроде:
Хоть мы и не подключались явно к порту 11000, сервер принял запросы на нем, что отображено в ответе. Обратите внимание на замочек – установлено HTTPS-соединение.
Этап 4. Запуск NextCloud AIO в Docker.
Переменные окружения
У данного образа есть две основные опции, которые передаются как переменные окружения:
-
NEXTCLOUD_DATADIR
– абсолютный путь до директории, а в случае с Windows, константная строка “nextcloud_aio_nextcloud_datadir” – это имя того docker-volume, в которой будут записаны все файлы пользователей и системные файлы, необходимые для функционирования NextCloud. Соответственно, надо будет предварительно создать этот volume.Документация предупреждает нас перед запуском основного контейнера предварительно создать этот volume с именем и убедиться, что путь абсолютный, и путь существует.
Обратите внимание на простые правила преобразования пути. Абсолютный путь в Windows
C:NextCloudData
превращается вhost_mnt/c/NextCloudData
. -
APACHE_PORT
– переменная уже затрагивалась выше. Это номер порта, на который пересылает запросы Ваш reverse-proxy. -
SKIP_DOMAIN_VALIDATION=true
– выставить, если есть неразрешимые проблемы с тем, что NextCloud неправильно определяет домен, на котором запущен. Это будет понятно после первой настройки. В документации указано, что пользоваться этим надо только в крайнем случае, если Вы уверены, что всё остальное было сделано правильно. В этом гайде пользоваться этим флагом не нужно. Ниже приведены советы, что делать, если не получается запустить NextCloud.
Volumes
Есть 2 фиксированных имени вольюмов, которые нам понадобятся.
-
nextcloud_aio_nextcloud_datadir
– директория, где будут содержаться все файлы в облаке NextCloud. См пояснения выше к переменнойNEXTCLOUD_DATADIR
. -
nextcloud_aio_backupdir
– директория, куда будут помещаться архивы с копиями состояния облака, если Вы захотите использовать эту функцию. История точно такая же как сnextcloud_aio_nextcloud_datadir
: проверить, что путь существует, и соблюсти формат преобразования.
Их надо будет только создать. Подключать к контейнерам ничего не нужно. NextCloud сам умеет ими пользоваться.
Порты контейнера
Контейнер на образе NextCloud AIO использует 3 порта, которые согласно документации, нужно указать при запуске контейнера:
-
8080
порт используется для первичной настройки NextCloud. Там будет панель администратора. -
80
порт – единственный, который предназначается для взаимодействия с веб-приложением непосредственно. Соответственно, это протокол HTTP. Напомню, что все сторонние запросы к системе переводятся на HTTPS нашим прокси и поступают на 11000 порт контейнеров, которые уже внутри, неявно для нас, переведут их на 80 порт на обработку приложением. -
8443
порт должен использоваться для обновления самописного сертификата. Лично я с этим не работал, и не могу ничего сказать.
Как говорилось выше, на домашней машине будет непросто открыть порт 80. Да это и не нужно, когда докер представляет нам простой механизм переадресации портов. Я просто использовал порт 9090 вместо 80. Также я подменил порт 8080 в мастер-контейнере на 9880, т.к. иногда использую порт 8080 моего ПК при разработке своих серверов, и подменил 8443 портом 9443 просто за компанию.
Другие порты, такие как 11000 (наш APACHE_PORT) и 3478, используемые дополнительными модулями, будут подключаться автоматически. При запуске master-контейнера, их не нужно привязывать явно. После запуска будет автоматически созданы контейнеры nextcloud-aio-domaincheck и nextcloud-aio-apache, которые свяжутся с портом APACHE_PORT, а после настройки системы в панели администратора, появятся и другие контейнеры, например, nextcloud-aio-talk, которые займут свои порты.
Опции Docker
Очень важно не передавать настоящий сетевой интерфейс операционной системы хостовой машины как внутренний сетевой интерфейс контейнера. Это делается с помощью передачи опции --net=host
в команде docker run
или network_mode: 'host'
в docker-compose. Можно встретить некоторые гайды в интернете, которые предписывают делать именно так. Но это не соответствует документации! Единственное, когда это может быть оправдано, — запуск контейнера на выделенном Linux-сервере, когда докер применяется как IaC средство в задаче оркестрирования. В нашем же случае, контейнер просто не сможет открыть порты 80, 443, т.к. у него нет прав.
-
--sig-proxy=false
– отключает проксирование сигналов ОС. -
--name=<имя>
— задает имя контейнеру -
--restart=<always | no | unless-stopped>
— регулирует, что делать в случае критической ошибки или иных случаях, когда контейнер может завершить работу. Соответственно: всегда, никогда и до тех пор, пока пользователь вручную пошлет SIGTERM/SIGBRK. Облако должно быть доступно всегда. Ставим always. -
-e <имя>:<значение>
– передача переменной окружения -
-v (--volume) <директория хост>:<директория в ОС контейнера>, либо <имя volume>
— передача volume или директорий хостовой машины в пользование контейнеру. Что передавать берем из документации:nextcloud_aio_mastercontainer:/mnt/docker-aio-config
,//var/run/docker.sock:/var/run/docker.sock:ro
. -
-p (--port) <порт хост>:<порт в интерфейсе контейнера>
— соединение порта сетевого интерфейса хостовой машины и сетевого интерфейса контейнера.
Запуск
Сначала надо создать volume’ы.На Windows nextcloud_aio_nextcloud_datadir обязательный, nextcloud_aio_backupdir — опциональный.
Тут последовательность из пробела и обратной кавычки ( ` ) используется для ввода многострочной команды.
В Unix-системах аналогом выступает пробел и обратный слэш ( ).
# Backup dir
docker volume create `
--driver local `
--name nextcloud_aio_backupdir `
-o device="/host_mnt/c/NextCloudBackups" `
-o type="none" `
-o o="bind"
# Datadir
docker volume create `
--driver local `
--name nextcloud_aio_nextcloud_datadir `
-o device="/host_mnt/c/NextCloudData" `
-o type="none" `
-o o="bind"
Запускаем контейнер ровно так, как предписывает документация, но подменяем порты:
docker run `
-e NEXTCLOUD_DATADIR="nextcloud_aio_nextcloud_datadir" `
-e APACHE_PORT=11000 `
--sig-proxy=false `
--name nextcloud-aio-mastercontainer `
--restart always `
-p 9090:80 `
-p 9880:8080 `
-p 9443:8443 `
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config `
--volume //var/run/docker.sock:/var/run/docker.sock:ro `
nextcloud/all-in-one:latest
Либо через docker-compose:
# docker-compose.yml
services:
nextcloud:
image: nextcloud/all-in-one:latest
restart: "always"
container_name: nextcloud-aio-mastercontainer
environment:
- NEXTCLOUD_DATADIR=nextcloud_aio_nextcloud_datadir
- APACHE_PORT=11000
volumes:
- nextcloud_aio_mastercontainer:/mnt/docker-aio-config
- //var/run/docker.sock:/var/run/docker.sock:ro
ports:
- "9080:80"
- "9090:8080"
- "8443:8443"
volumes:
nextcloud_aio_mastercontainer:
docker-compose up
После запуска панель docker станет выглядеть так:
Тут видно все то, о чем было написано выше: появились новые контейнеры, которые заняли нужные ими порты. Master-container появляется первым и занял порты 9090, 9880 и 9443.
Остается настроить само облако
Переходим в браузер. Нужно подключиться к 8080 порту контейнера, т.е. для нас это адрес, оканчивающийся на :9880. Какой ip вводить? Любой, чтобы не попасть на прокси, ведь тот не знает о том, что что-то нужно пересылать на порт 9880
. Можно вбить localhost:9880
, <ip в локальной сети домашнего маршрутизатора 192. …>:9880
или <ip ПК в сети Hamachi>:9880
– все эти адреса ведут на порт 9880 одной и той же машины. Подключаться нужно по HTTPS (обязательно вбейте https://
перед адресом и портом, потому что браузер скорее всего сам подставит http, и тогда появится Bad Request от Apache с просьбой перейти на HTTPS). Далее выскачет предупреждение, что соединение небезопасно, но мы ведь знаем, что все безопасно, верно ;). Нажимаем «все равно подключиться» (на разных браузерах эта кнопочка может называться по-разному и быть скрыта за другой кнопкой, например, в Opera надо сначала нажать “help me understand”).
В NextCloud всё сделано именно так, потому что все внешние соединения должны быть зашифрованы и поэтому осуществляются через прокси по HTTPS. Считается, что раз до контейнера доходят HTTP-сообщения, значит, они либо защищены протоколом ssl на уровень выше, либо у оператора есть прямой доступ к машине.
Скопируем и сохраним в блокнот мнемоническую фразу для восстановления системы.
Далее на следующей странице надо будет ввести домен, который пользователь вбивает в браузере, чтобы подключиться, т.е. тот, по которому он попадает на reverse-proxy. В нашем случае www.<домен>. Форма ниже, связанная с бекапом понадобится не сейчас, а во время восстановления бекапа.
Если все успешно, Вас пробросит дальше на страницу, где будет создана учетная запись администратора. Сохраняем куда-нибудь выданный нам пароль. Тут же можно установить некоторые дополнительные модули (их намного больше). Знайте, что каждый модуль – это отдельный докер-образ, а значит весит он много, и его контейнер строится долго. Запустите все контейнеры и дождитесь, когда индикаторы загорятся зеленым.
Скриншоты к вышеописанному процессу не прилагаю. Все есть в обилии на youtube.
Что делать, если проверка домена не выполняется?
Для начала, это значит, что NextCloud попробовал найти сам себя по запросу https://<домен, который Вы ввели на панели администратора>
и не смог.
Проверьте, что на домене, который Вы приобрели, есть А-запись с правильным ip-адресом прокси-сервера. Если вы только что обновили эту запись, DNS-сервера провайдера распространяют её иерархически на магистральные роутеры, и на это может потребоваться время (по моим оценкам, до получаса). Можно, например, воспользоваться командой windows powershell ping <домен>
. В Widows она хороша тем, что вместо домена нам будет показан ip-адрес, ассоциированный, как считает домашний роутер, с введенным доменом. Другие утилиты, такие как tracert
могут не помочь в случае с арендованными серверами или vpn — все зависит от того, какие запросы пропускает к себе в датацентр хостинг.
Также стоит проверить, что прокси сервер работает, доступен в сети по собственному ip-адресу и на нем запущен Apache/Nginx/Caddy. Не пренебрегайте тестированием конфигов. Узнать, работает ли сервер можно, вбив systemctl status <apache2 | nginx | caddy>
.
Не забудем проверить и vpn-тонель со стороны сервера на домашний компьютер.
Для остальных случаев есть флаг SKIP_DOMAIN_VALIDATION
.
В конце есть список сетевых утилит Windows, которые могут помочь с отладкой сетевого маршрута.
Этап 5. Фаервол
Финальная часть – предотвращение несанкционированных попыток подключения к домашнему компьютеру и спама до состояния DDOS – настроим файервол.
В Linux – воспользуйтесь утилитами ufw или iptables.
Вбиваем в поиск системы «Защита от вирусов и угроз», или «Безопасность Windows», или «Defender», переходим в Брандмауэер -> дополнительные параметры ->правила для входящих подключений.
Нажимаем справа «создать правило», выбираем фильтрацию по порту: специальные порты, 11000. Если накладываете какие-то другие опции фильтрации, помните, что Hamachi – это частная сеть в ОС Windows.
Если планируете использовать эту же сеть Hamachi для передачи еще какого-то трафика, обязательно откройте порт здесь. Правила Defender можно редактировать на лету.
Инструменты Windows для диагностики сетевых интерфейсов
Все перечисленные здесь утилиты работают в powershell и cmd. Лучше выполнять от имени администратора.
nslookup
– получение ip по доменному имени на DNS-сервере, сведения о ближайшем DNS-сервере. Будьте внимательны, лично я столкнулся с тем, что nslookup кеширует свои ответы, и если, например, Вы меняете А-запись к своему домену, браузер может видеть изменения, а nslookup – нет. На этот случай есть команда ipconfig/flushdns
, но мне она не помогала.
ipconfig/flushdns
– сброс dns-кеша в ОС. Работает только в cmd.
Работу DNS можно сымитировать, добавив запись в системный файл C:WindowsSystem32driversetchosts
.
netstat -na | findstr ":8080"
— просмотр установленных соединений. Просто netstat -na
покажет все соединения.
ipconfig
— просмотр сетевых интерфейсов. Тут можно наблюдать сеть докера docker0 или WSL — она нужна, когда контейнер общается с сервером на хосте (почитайте про внешний адрес host.docker.internal).
Посмотреть, куда и как (редиректы, HTTP-заголовки) идут запросы в браузере можно через инструменты разработчика. Ctrl+Shift+I или ПКМ по пустому пространству в браузере -> network
Заключение
Итак, у меня получилось запустить NextCloud дома, однако потребовался внешний прокси-сервер. Это оказалось дороже, чем аренда места на Google Disk, но потенциально может быть дешевле, если исключить аренду прокси сервера, и найти какое-то другое решение. К тому же я неограничен в объемах хранимой информации и имею с одной машины в доме быстрый доступ через обычный проводник.
Тем не менее, опыт, я считаю, интересный. Пользоваться дома вполне можно. Все еще остается возможность переноса хранилища на какой-то тихий компьютер, такой который бы не жужжал при постоянной эксплуатации 24/7. Прекрасно подойдет старый системный блок или ноутбук с утилитой управления скоростью вращения вентиляторов.
Если планируете использовать NextCloud ровно так, как описано в этом гайде, то главное не забыть поставить Docker и Homachi на автозапуск. Так будет достигнута неплохая отказоустойчивость.
Надеюсь, материал был полезен. Спасибо, что читаете. Увидимся в другом гайде.
Содержание
- 8 бесплатных инструментов для создания собственного облака
- Как создать собственное облако, где можно бесплатно хранить любой объём данных
- Облако бесплатно. Как создать дома помойку файлов и пользоваться везде
- Самый доступный вариант
- Самый простой вариант
- Самый облачный вариант
- Как сделать своё облачное хранилище файлов. И не платить за него
- Предварительная подготовка
- Накатываем Linux
- Покупаем «белый» IP
- Пробрасываем порты
- Настраиваем сервер на базе Nextcloud
- Краткая настройка Nexctloud
- Владимир Кузин
- Экономим до 60% на продуктах и алкоголе перед Новым годом
- Москва приятная, предновогодняя
- Графика в процессоре M1 Max оказалась мощнее, чем видеокарта AMD Radeon Pro W6900X за 600 000 рублей
- В России стартовали продажи AirPods 3-го поколения
- Появились первые фото распаковки тряпочки Apple за 1999 рублей
- Слух: Apple выпустит iPhone SE 3 с безрамочным экраном в 2024 году
- В России появится выгодная подписка Apple One Premier. Экономите 500 рублей
- Обзор игры Diablo II: Resurrected. Отличный ремастер или провал?
- Обзор и впечатления от iPhone 13 Pro спустя неделю. Это мощно
- Этот робот-пылесос убирает отлично и даже воздух освежает. Обзор Ecovacs Deebot T9
- 🙈 Комментарии 72
8 бесплатных инструментов для создания собственного облака
В наши дни иметь облачный файлообменник стало обязательным требованием, и мы избалованы широким выбором сервисов для хранения копий важных файлов, например, Dropbox, Google Drive, Box и др. Однако все они имеют один общий недостаток. Место хранения ограничено и, в конечном счете, они не перестают быть третьей стороной, которой вы вынуждены доверять свои (иногда конфиденциальные) файлы.
Так зачем идти на компромисс, если есть очевидное решение этой проблемы? Благодаря растущему контингенту разработчиков стало возможно создание собственного облачного файлообменника. Таким образом, нет необходимости иметь дело с посторонним сервером, и ваши файлы гарантированно видны только вам. Представляем 8 инструментов для создания собственного облака. Все они предлагают неограниченное пространство и несколько функций, которых нет у общедоступных облачных файлообменников.
Обратите внимание, что некоторые из них требуют ознакомления с процессом настройки своего собственного сервера. Просмотрев список, вы заметите, что процесс установки не так прост.
Мы уже ранее представляли Bittorrent Sync в качестве средства для перемещения объемных файлов анонимно. Но было ли вам известно, что его также можно использовать для создания своего собственного облака? Нужно лишь настроить папку так, чтобы она работала в качестве хранилища, чтобы можно было синхронизировать все файлы на всех устройствах при помощи Bittorrent Sync.
Поддерживаемые платформы: Windows, Mac OS X, Linux, FreeBSD, iOS, Android, Windows Phone, Kindle Fire.
PClouds решит вопрос по созданию личного облачного файло-обменника благодаря чему можно будет с легкостью делиться файлами между OS X и iOS. Программа недавно вышла в бета-версии и требует регистрации, но она выглядит солидно, также она проста в использовании, и в ней можно создать личное облако в экосистеме Apple, минуя iTunes. Также имеется простое приложение-менеджер файлов для мобильных устройств. В планах нет разработки для других ОС.
Поддерживаемые платформы: Mac OS X, iOS.
Невероятно разнообразный инструмент ownCloud – это бесплатное open source приложение, которое позволяет сделать нечто большее, чем просто заместить Dropbox для обмена данными. Наряду с хранением данных, приложение предлагает множество других функций : управление календарем, список задач, редактирование документов и многое другое. Здесь можно установить OwnCloud с инструкциями.
Поддерживаемые платформы: клиент доступен для Windows, Mac OS X, Linux, iOS, Android. Серверное ПО устанавливается при помощи веб-установщика.
Seafile – еще один open source вариант, представляемый как инструмент для синхронизации файлов и интернет-сотрудничества. Можно использовать облачный сервис SeaCloud.cc или же настроить резидентные серверы. Есть два вида последних: Open Source и Business (25$ в год). В приложении вы найдете многофункциональный онлайн-редактор файлов, управление версиями, мульти-платформу по синхронизации файлов и прочее.
Поддерживаемые платформы: клиент доступен для Windows, Mac OS X, Linux, iOS, Android. Серверное ПО доступно для Windows, Linux, Raspberry Pi.
Как и у OwnCloud, цель Cozy заключается в том, чтобы предоставить возможность обслуживания данных, используя собственные сетевые приложения. По словам самих разработчиков, Cozy позволяет превратить сервер во что-то вроде личного Google App Engine. Разработчики стимулируют пользователей, обещая развивать это и в будущем и объединить много разных сервисов и утилит в одном флаконе.
Поддерживаемые платформы: образы доступны на Virtualbox, Raspberry Pi, OpenVZ, Cubieboard2, Cubietruck.
AeroFS – это open source приложение для корпоративных пользователей, которое предлагает инструменты для сотрудничества как часть пакета услуг. Разработчики также предлагают бесплатную версию для личного пользования с поддержкой трех пользователей. Сервис гордится высокими скоростями синхронизации и отсутствием лимита на передачу данных. Нужно лишь установить клиент AeroFS на устройство, чтобы запустить цепь синхронизации.
Поддерживаемые платформы: Windows, Mac OS X, Linux, iOS, Android.
SparkleShare использует Git для обслуживания данных. Это значит, что вы получите полную версию истории ваших файлов, а также много чего другого, идущего вместе с Git. Это станет идеальным решением, если у вас есть документы, требующие многократных изменений. При этом, однако, приложение не очень хорошо справляется с крупными файлами.
Поддерживаемые платформы: клиент доступен для Windows, Mac OS X, Linux. И использует Git-сервер для хранения данных.
Как и SparkleShare – и как понятно из самого названия – git-annex также использует Git для управления файлами, но «без проверки содержания файлов на сервере Git». Это означает, что приложение лучше подходит для крупных файлов, чей Git приспособлен для использования. Это приложение обычно представляет собой командную строку, но для тех, кто в этом не сильно разбирается, есть и более простая альтернативная версия.
Поддерживаемые платформы: серверное ПО доступно для Windows, Mac OS X, Linux.
Вам понравился материал? Поблагодарить легко!
Будем весьма признательны, если поделитесь этой статьей в социальных сетях:
Источник
Как создать собственное облако, где можно бесплатно хранить любой объём данных
Мы все пользуемся облачными хранилищами, а некоторые из нас даже платят абонентскую плату за возможность хранить файлы сверх выделенного лимита. Это удобно — при наличии интернета нам в любой момент доступны все файлы, которые мы скопировали в облако. Но у таких сервисов есть и недостатки: их могут взломать хакеры, файлы могут попасть к посторонним, а если владельцев облака не устроит контент, который вы храните у них, ваш аккаунт могут заблокировать, и тогда все файлы пропадут. Создание собственного облака — отличное решение, хотя и у него есть свои недостатки.
Премущества персонального облака:
— Нет лимитов. Вы можете хранить столько файлов, сколько вмещается на накопители в вашем компьютере.
— Никаких платежей, всё бесплатно (кроме электроэнергии).
— Полная приватность. Файлы копируются с компьютера на другие устройства без использования стороннего сервера.
— Возможность делиться неограниченным количеством папок и файлов с другими пользователями.
— Управление уровнями доступа к файлам и папкам.
Недостатки персонального облака:
— Придётся держать компьютер постоянно включённым, иначе удалённый доступ к файлам пропадёт.
— Не получится прикрутить ваше облако к большей части приложений, которые работают с популярными хранилищами.
— Риск лишиться файлов из-за сбоя в компьютере.
Как создать своё облако:
1. Зайдите на сайт Tonido и создайте учётную запись.
2. Скачайте программу Tonido Server. Установите её, запустите и разрешите ей доступ к сети (если выскочит диалоговое окно брандмауэра). Эта программа создаёт из компьютера сервер, благодаря чему доступ к хранящимся на нём файлам может осуществляться из любой точки мира через интернет.
3. Значок Tonido Server висит в панели уведомлений. По нажатию на нему в браузере открывается локальный адрес http://127.0.0.1:10001 с интерфейсом сервиса, где можно указать, какие папки будут добавлены в облако.
4. Скачайте мобильное или десктопное приложение Tonido. Запустите его и зайдите в свою учётную запись. Если вы увидите в приложении файлы, которые хранятся на компьютере, значит облако готово и им можно пользоваться. Теперь у вас всегда будут при себе все нужные вам файлы.
Приложение может открывать некоторые типы файлов, в том числе видео, музыку и тексты. Любой файл можно скачать на устройство или отправить другу (по электронной почте или с прямым доступом по ссылке в сервисе Tonido).
Строго говоря, сервер, запущенный на домашнем компьютере, не может считаться полноценным облачным сервисом. Облако — профессиональное решение, которое использует технологию распределения файлов по нескольким серверам, благодаря чему риск их пропажи почти исключается. Вероятность повреждения данных можно минимизировать и дома — для этого, например, можно создать RAID-массив. Но даже в этом случае остаются другие риски, например, физическое повреждение компьютера или его кража. Обезопаситься от этого сложнее.
Источник
Облако бесплатно. Как создать дома помойку файлов и пользоваться везде
Apple давно свернула подразделение и прекратила выпуск AirPort и Time Capsule. Довольно полезные девайсы еще распродаются в магазинах электроники, но с каждым годом они лишь устаревают.
В то же время появляются решения от других производителей, да и самому собрать средство для бекапов под силу каждому. Сейчас выберем подходящий вариант.
Самый доступный вариант
У большинства из вас уже есть роутер с USB-разъемом. Если он поддерживает подключение внешнего накопителя (иногда USB выделяют для перепрошивки или настройки принт-сервера), то половина системы уже готова.
Некоторые маршрутизаторы придется перепрошить для создания сетевого файлового хранилища. Подробно о таких манипуляциях мы уже рассказывали.
Останется лишь найти емкий внешний накопитель, флешку или даже обычный жесткий диск с «карманом» для подключения по USB.
Общая схема настройки следующая:
1. Форматируем внешний диск или флешку в APFS (Apple File System), Mac OS Extended (HFS+) для систем старее macOS High Sierra либо exFAT. С NTFS заморачиваться не советуем, получите нестабильную работу и низкую скорость передачи данных из macOS.
2. Берем роутер с поддержкой внешних накопителей и подключаем к нему отформатированный диск. Маршрутизатор может не поддерживать APFS или HFS+ разделы. Иногда это решается при помощи прошивки, а иногда придется использовать файловую систему exFAT.
3. Подключаем сетевой диск к macOS.
4. Перенастраиваем место сохранения резервных копий в настройках Mac или через терминальную утилиту.
Преимущества:
Недостатки:
Самый простой вариант
Чтобы не заморачиваться с настройками роутера, не настраивать всевозможные сервисы и службы, можно приобрести так называемый NAS (Network Attached Storage).
Домашнее сетевое хранилище имеет множество возможностей, одна из которых – быстрый и удобный бекап Time Machine.
Большинство современных NAS прямо из коробки поддерживают такую возможность, нужно лишь активировать соответствующую опцию.
Общая схема настройки выглядит следующим образом:
1. Настраиваем NAS для работы в домашней сети.
2. Подключаемся к хранилищу через приложение или веб-интерфейс.
3. Выделяем часть накопителя для хранения резервных копий Time Machine.
4. Форматируем раздел или весь накопитель в подходящую файловую систему.
5. Подключаем сетевой диск в macOS.
6. Перенастраиваем сохранение резервных копий в Time Machine на созданный сетевой диск.
Минимум телодвижений – максимум эффективности, нужно лишь заплатить.
Преимущества:
Недостатки:
Система обладает и другим недостатком вроде увеличенной нагрузки на сеть. Однако, в домашних условиях это не так критично, как в небольшом офисе. Кроме того, любой аналог в виде системы роутер+флешка будет обладать аналогичным недостатком.
Самый облачный вариант
Есть возможность и вовсе хранить бекапы в облаке. Так надежность системы возрастает многократно, ведь сервера Dropbox, Яндекс.Диск или Облака Mail.ru имеют больше степеней защиты данных, чем NAS.
Другое дело, что простого и изящного решения для переноса бекапов в сторонние облака нет, придется пользоваться так называемыми костылями.
Нам нужно сохранить бекап на накопитель или даже на отдельный раздел компьютера, а потом сгрузить его в облако.
При использовании внешнего диска его придется постоянно подключать к компьютеру для обновления бекапа, а при хранении копии на Mac, под неё потребуется дополнительное пространство.
Тут каждый выберет более удобный вариант самостоятельно. Есть большой HDD – оставляем копию на Mac, есть объемная флешка или внешний диск – подключаем их регулярно для создания копий.
Общий алгоритм настройки выглядит так:
1. Определяемся с местом хранения резервной копии и настраиваем Time Machine.
2. Выбираем подходящий облачный сервис и устанавливаем его клиент на Mac.
3. Настраиваем синхронизацию с облаком для раздела (папки) с хранящимися резервными копиями.
Теперь все созданные бекапы будут улетать в облако.
Для тех, кто переживает за сохранность данных в сторонних сервисах, предлагаем настроить свое облако и действовать по приведенному выше алгоритму.
Преимущества:
Недостатки:
Вот так можно сделать подходящий аналог Time Capsule и хранить резервные копии в доступном и удобном для использования месте.
Источник
Как сделать своё облачное хранилище файлов. И не платить за него
Месяц назад я рассказывал о препарировании старенького Mac mini 2007 года. Моя цель — сделать собственный сервер и отказаться от облачных хранилищ, вроде iCloud, Google Drive, Dropbox и прочих.
После пропайки нового разъема с резистором нагрузки Mac mini исправно работает. За последний месяц он ни разу не выключался, выполняя роль домашнего FTP-сервера с внешним доступом.
В этой статье я расскажу, как поднять аналогичное хранилище у себя дома. В качестве компьютера не обязательно останавливаться на Mac mini.
Подойдет любой старенький системник, уставший ноутбук или неттоп. Можно заморочиться и с одноплатным Raspberry, но там немного другая специфика настройки и, скорее тема отдельного материала.
Что ж, приступим к созданию собственного сервера.
Предварительная подготовка
Накатываем Linux
Так случилось, что мой Mac mini был с нерабочим DVD-Rom. После безуспешных попыток запустить систему и часов, потраченных на форматирование загрузочных флешек, мне удалось выяснить кое-что интересное.
Не все Mac mini и старые Mac поддерживают установку с флешки.
У меня как раз такой случай.
Установить DVD-Rom от старенького ноутбука HP не удалось — разъемы не совпадают. Искать донора или аналогичный привод не было желания.
Решение было следующим. Я достал 2,5» винт Mac mini, установил его в ноутбук на базе Windows. Загрузил дистрибутив Linux Debian (можно сделать это вот здесь), развернул образ на флешку и установил на HDD от Mac mini.
Потом HDD с уже накатанной Linux поставил обратно в Mac mini, включил и все заработало.
Linux неприхотлива к железу. Wi-Fi, Ethernet, графика — все заработало после первого запуска.
Все, теперь у Mac mini есть работающая операционка и можно приступать к дальнейшей настройке.
Покупаем «белый» IP
Без этого никак. Вам понадобится так называемый «белый» IP-адрес. То есть такой айпишник, который будет закреплен конкретно за вашим роутером.
Чтобы его получить, звоним провайдеру и просим активировать «белый статический IP-адрес». Обычно стоимость месяца такого IP не более 100 – 150 рублей.
Увы, бесплатно держать свой сервер не выйдет. Зато вы можете наращивать емкость собственного хранилища, но при этом не платить заоблачные цены за гигабайты в облаке.
Время активации зависит от провайдера. У меня был белый IP уже через 30 минут после звонка провайдеру.
Пробрасываем порты
Для того, чтобы вы могли получить доступ к вашему серверу из любой точки мира, необходимо выполнить так называемый проброс портов. Суть его вот в чем.
Вы находитесь далеко от дома, пользуетесь, например интернетом от оператора сотовой связи.
Указываете домашний IP-адрес. На него поступает запрос, а дальше он должен связаться с вашим домашним сервером, «постучав» на конкретный сетевой порт.
Данная настройка зависит конкретно от вашей модели роутера. Логичнее будет почитать про проброс портов конкретно на ваш роутер отдельно. У меня этот пункт настроек выглядит так:
Я просто активировал DMZ (доступ к общедоступным сервисами) и прописал IP-адрес Mac mini в локальной сети.
Его, к слову, можно посмотреть как в сетевых настройках Linux, либо в веб-интерфейсе роутера в разделе подключенных устройств.
Настраиваем сервер на базе Nextcloud
Поскольку я изначально поставил перед собой цель сделать полноценную замену популярным облачным сервисам, ограничиваться банальным FTP не буду.
Хочется получить нормальный мобильный клиент, автоматическую синхронизацию и красивую оболочку.
Лучший вариант для всего этого — решением от Nextcloud.
Nextcloud — это как раз-таки специально разработанный комплекс для создания серверов с регулируемыми уровнями доступа для разных клиентов в рамках корпоративной сети. Но он позиционируется и как удобный инструмент для создания домашнего сервера.
Что ж, приступим к установке Nextcloud на наш Mac mini.
Шаг 1. Запускаем терминал в Linux Debian на Mac mini. Можно вводить все команды как на самом будущем сервере, так и воспользовавшись SSH из Терминала вашего MacBook или другого рабочего компьютера.
Для подключения по SSH необходимо ввести следующую строчку:
Затем указать пароль администратора в системе Linux (на нашем сервер).
Вводим следующую команду:
Затем устанавливаем сервер MariaDB:
Дожидаемся загрузки и установки всех пакетов.
Теперь проверим статус установленного сервера:
sudo systemctl status mariadb
Видим статус active, значит все в порядке.
Чтобы выйти нажимаем Q. Продолжаем настройку.
Шаг 2. Проверяем версию MySQL, указав следующую команду:
Теперь настроим систему управления базами данных MySQL под работу сервера Nextcloud. Вводим:
На запрос пароля введите либо ваш пароль администратора, либо просто нажмите Enter.
Шаг 3. Теперь нам предстоит прописать серию команд для создания базы данных под Nextcloud. Вводим:
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Нажимаем Enter и получаем ответ: Query OK, 1 row affected (0.00 sec). Продолжаем ввод команд:
GRANT ALL ON nextcloud.* TO ‘nextclouduser’@’localhost’ IDENTIFIED BY ‘ПРИДУМАТЬ_ПАРОЛЬ’;
Готово. База данных MySQL создана.
Шаг 4. Время установить PHP. Вводим следующую команду.
su apt install software-properties-common жмем еnter
su add-apt-repository ppa:ondrej/php
Жмем еще раз Enter после выполнения последней команды. Дожидаемся окончания установки.
Ставим Apache. Вводим такую строчку:
su apt install apache2 php7.1 php7.1-gd php7.1-json php7.1-mysql php7.1-curl php7.1-mbstring php7.1-intl php7.1-mcrypt php7.1-imagick php7.1-xml php7.1-zip libapache2-mod-php7.1
Подтверждаем действие, нажав Y и Enter. Дожидаемся установки всех пакетов.
Настроим Firewall. Вводим:
Теперь приступаем к загрузке Nextcloud. Меняем директорию:
Жмем Enter. Ждем окончания загрузки. Вводим:
Раскрываем список файлов:
Перемещаем Nextcloud в «правильную» папку:
Все, Nexctloud перемещен в корневую директорию нашего HTTP-сервера. Вводим еще одну команду:
И редактируем файл конфига Apache:
su nan /etc/apache2/conf-available/nextcloud.conf
Содержимое данного фала должно быть следующим:
Alias /nextcloud «/var/www/nexctloud/»
Options +FollowSymlinks
AllowOverride All
SetEnv HOME /var/www/nexctloud
SetEnv HTTP_HOME /var/www/nextcloud
Если подобного текста нет — копируем и вставляем его в файл конфига и нажимаем CTRL + O для сохранения. Жмем Enter.
Остается включить несколько конфигурационных файлов. Ниже серия команд, которые следует вводить поочередно. Нажимаем Enter после каждой команды и дожидаемся выполнения.
su a2enconf rewrite
su systemctl reload apache2 (вводим пароль)
su a2enmod rewrite
su a2enmod headers
su a2enmod env
su a2enmod dir
su a2enmod mime
su systemctl reload apache2
Готово. Настройка Nextcloud окончена.
Краткая настройка Nexctloud
Открываем браузер и вводим адрес нашего белого IP, дописав /nextcloud. То есть во так:
80.23.23.223/nextcloud указываете ваш IP вместо предложенного
И видим окно, показанное на скриншоте выше.
Задаем пароль для пользователя Admin. Попадаем в веб-интерфейс нашего сервера.
Рассказать о всех тонкостях настройки серверного решения Nextcloud в одном материале невозможно. Главное, что следует сделать — скачать мобильный клиент для Android или iOS.
Авторизоваться в нем можно, указав ваш IP-адрес сервера и добавив /nextcloud. Вводите созданное имя пользователя и пароль.
А дальше останется выбрать папки, которые вы хотите автоматически синхронизировать с вашим облачным сервером, установить настройки синхронизации, создать учетные записи для всех членов семьи.
Nexctloud позволяет полностью отказаться от облачных решений вроде Dropbox и iCloud. И главное, вы знаете, что ваши файлы всегда доступны только вам и вашим близким.
Владимир Кузин
DIY-техноман. Уверен, что все можно сделать своими руками. Коллайдер не в счет.
Экономим до 60% на продуктах и алкоголе перед Новым годом
Москва приятная, предновогодняя
Графика в процессоре M1 Max оказалась мощнее, чем видеокарта AMD Radeon Pro W6900X за 600 000 рублей
В России стартовали продажи AirPods 3-го поколения
Появились первые фото распаковки тряпочки Apple за 1999 рублей
Слух: Apple выпустит iPhone SE 3 с безрамочным экраном в 2024 году
В России появится выгодная подписка Apple One Premier. Экономите 500 рублей
Обзор игры Diablo II: Resurrected. Отличный ремастер или провал?
Обзор и впечатления от iPhone 13 Pro спустя неделю. Это мощно
Этот робот-пылесос убирает отлично и даже воздух освежает. Обзор Ecovacs Deebot T9
🙈 Комментарии 72
Заголовок статьи не правда
Источник
Содержание
- Создание собственного частного облака, преимущества и недостатки
- Превратите компьютер в частное облако
- аппаратные средства
- Операционные системы и программное обеспечение для использования
- Синхронизация файлов и папок
- Nextcloud
- OwnCloud
Создание собственного частного облака, преимущества и недостатки
Сегодня преобразование компьютера в частное облако — выполнимая задача. Обычно во многих домах, офисах и компаниях у нас очень распространено широкополосное подключение к Интернету со скоростью 300 Мбит / с и даже более высокими скоростями.
Что касается элементов, которые нам понадобятся:
- Компьютер с не слишком мощным оборудованием
- Интернет-соединение.
- Система хранения, для которой мы обычно будем использовать жесткие диски.
Иногда у нас уже есть этот компьютер, и подключение к Интернету — это фиксированная плата, которую мы должны оплачивать каждый месяц. В этот момент вы можете задаться вопросом, а не превратить ли ваш компьютер в частное облако. Единственное, что вам все еще нужно, — это купить жесткий диск большей емкости, если у вас нет места, которое вы собираетесь хранить.
Теперь поговорим о Преимущества от делать это. Одно было бы это у нас было бы больше места для хранения в котором лимит устанавливается нами в зависимости от жесткого диска, который мы хотим поставить. У нас также есть больше возможностей и гибкости конфигурации . Еще нужно иметь в виду, что мы можем иметь большая безопасность и контроль над нашими файлами если мы сделаем это правильно. Кроме того, в среднесрочной и долгосрочной перспективе мы могли бы снизить затраты .
Что же касается недостатки, они это что начальная цена будет дороже в том случае, если нам придется покупать все оборудование. Также плохая конфигурация может вызвать серьезные проблемы с безопасностью . При загрузке файлов у нас могут быть узкие места в зависимости от их размера и нашей связи. Кроме того, есть увеличение счета за электроэнергию , но это также будет зависеть от того, как долго мы будем держать этот компьютер включенным.
Затем мы увидим, какое оборудование нам понадобится, а также какие операционные системы мы можем использовать, чтобы превратить наш компьютер в частное облако.
Превратите компьютер в частное облако
Чтобы превратить наш компьютер в частное облако, первое, что нам понадобится, — это минимальные требования к оборудованию. Кроме того, не то же самое, что компьютер ориентирован на работу в качестве частного облака, где приоритет отдается скорости локальной сети и хранилища, чем игровому компьютеру, где графическая карта и основной процессор являются наиболее важными. .
Мы также должны учитывать используемую операционную систему, обычно мы все используем Windows 10, но есть операционные системы, специально ориентированные на работу в качестве NAS-сервера и легко и быстро монтирующие наше частное облако, поскольку они включают в себя все необходимые службы, и нам не нужно устанавливать их одну за другой. Эти операционные системы обычно основаны на Linux или Unix, но у них действительно интуитивно понятный и очень быстрый графический пользовательский интерфейс, идеально подходящий для любого пользователя.
аппаратные средства
Оборудование для настройки частного облака очень важно, но нам не понадобится очень мощный процессор или ультрасовременная видеокарта. В домашних условиях или в небольшом и среднем офисе достаточно иметь Intel or AMD четырехъядерный процессор или выше, в этом нет необходимости, потому что мы не будем использовать его в отношении Оперативная память памяти, рекомендуется иметь как минимум 8 ГБ ОЗУ для обеспечения надлежащего функционирования всех служб.
Что касается хранилища, лучше всего иметь 2 или более жестких диска большой емкости, не менее 3 ТБ, чтобы позже настроить его как RAID1 или как ZFS Mirror и дублировать всю информацию на обоих. Таким образом, если один из двух выйдет из строя, вся информация будет на другом жестком диске, и мы сможем восстановить его и получить к нему доступ.
Наконец, сетевая карта также очень важна, обычно все компьютеры имеют сетевую карту Gigabit Ethernet, но в настоящее время 2.5G Мультигигабитные сети уже монтируются, поэтому было бы идеально иметь карты этого типа, которые обеспечат нам отличную проводную производительность и смогут выжать максимальную скорость чтения и записи жестких дисков.
Таким образом, оборудование, которое нам понадобится для монтирования частного облака, будет следующим:
- 4-ядерный процессор Intel или AMD или выше.
- 8 ГБ ОЗУ или больше.
- Жесткие диски емкостью 3 ТБ или более, рекомендуется иметь 2 или более дисков для монтирования различных RAID.
- Мультигигабитная сетевая карта 2.5 Гбит / с для передачи данных на максимальной скорости.
Остальное оборудование (блок питания, материнская плата и GPU / ГРАФИЧЕСКИЙ ПРОЦЕССОР) мы оставляем это на ваш выбор, они должны быть компонентами, соответствующими остальному используемому оборудованию.
Операционные системы и программное обеспечение для использования
Когда мы собираемся создать частное облако, мы отвечаем за безопасность. Операционная система, которую мы собираемся использовать, должна быть обновлена. По этой причине и в целях нашей собственной безопасности в этой статье мы не рекомендуем использовать неподдерживаемые системы, такие как Windows XP или Windows 7. Если вы собираетесь использовать операционную систему с Windows 10 или аналогичной, мы можем выбрать лучший вариант. это к создать FTP-сервер где у нас хранятся наши файлы. Затем мы будем использовать FTP-клиент, который представляет собой программу, с помощью которой мы можем подключаться с нашего ПК к серверу для безопасной отправки и загрузки файлов.
Вот несколько примеров бесплатных FTP-серверов, которые мы можем использовать:
- FileZilla Server — это наверное, самый популярный прямо сейчас. Он совместим с Windows 8.1 и 10 в 32- и 64-битных версиях. Кроме того, он поддерживает как протокол FTP, так и протокол FTPS / FTPES для обеспечения сквозной конфиденциальности, а также использует протокол TLS для защиты соединений между клиентами и сервером. Вы можете получить больше информации на официальном сайте FileZilla Server.
- БесплатноFTPd включает очень простой и визуальный интерфейс, совместимый с протоколами FTP, FTPS, FTPES и SFTP, основанными на протоколе SSH. Вы можете получить дополнительную информацию на сайте FreeFTPd.
- Wing FTP-сервер это кроссплатформенная программа с версиями для Windows, Linux и macOS. Кроме того, он поддерживает протоколы FTP, FTPS / FTPES, SFTP и даже HTTP / HTTPS. Если вам нужна дополнительная информация, вы можете посетить официальный сайт Wftpserver .
- Основной FTP-сервер может использовать FTP / FTPS / FTPES, а также поддерживает SFTP и HTTPS для передачи файлов. Для получения дополнительной информации вот официальный сайт Core FTP Server .
Мы также должны принять во внимание другие службы для операционной системы Windows 10, такие как обмен данными через Samba через локальную домашнюю сеть или включение сервера SFTP для использования протокола SSH и отправки и получения всех файлов. зашифрованный и аутентифицированный.
XigmaNAS
Эта ориентированная на NAS операционная система — одна из наших любимых, мы можем установить эту операционную систему на любой носитель данных, мы можем даже установить ее на флеш-накопитель и всегда начинать отсюда. Эта операционная система занимает очень мало хранилища и аппаратных ресурсов (ЦП и RAM), что делает его идеальным для менее мощных компьютеров.
Это дистрибутив NAS с открытым исходным кодом. на базе FreeBSD . Операционная система XigmaNAS может быть установлена практически на любой аппаратной платформе для совместного использования хранилища компьютерных данных по компьютерной сети. XigmaNAS — это простой и быстрый способ создания централизованного и легкодоступного сервера для всех типов данных со всеми типами сетевых протоколов и из любой сети.
Кроме того, он поддерживает совместное использование Windows, Яблоко, и системы UNIX. Он также включает программный RAID (0,1,5), шифрование диска и отчеты SMART. В этом случае он поддерживает следующие протоколы: CIFS / SMB (Samba), Active Directory Domain Controller (Samba), FTP, NFS, TFTP, AFP и RSYNC, SSH с SFTP и многие другие расширенные параметры для монтирования настоящего частного облака. Если вам нужна дополнительная информация, вы можете посетить ее Официальном сайте .
Громовое ядро
Эта операционная система является преемницей популярной FreeNAS, она также основана на FreeBSD и имеет файловую систему ZFS, одну из самых продвинутых существующих, которая также включает XigmaNAS. Эта операционная система имеет гораздо лучший графический пользовательский интерфейс, чем предыдущая XigmaNAS, но потребляет больше ресурсов ЦП и ОЗУ.
Одна из характеристик, которые нам больше всего нравятся в этой операционной системе, заключается в том, что она включает в себя огромное количество служб, таких как серверы Samba, AD, FTP, NFS, TFTP, AFP, Rsync, SSH, сервер OpenVPN, а также клиент OpenVPN и мы даже можем легко и быстро установить дополнительное программное обеспечение, такое как Plex Media Server, через репозиторий дополнительного программного обеспечения. Таким образом, установка дополнительных программ, таких как Plex или Nextcloud, действительно проста.
OpenMediaVault
Мы можем рассмотреть openmediavault в качестве решения сетевого хранилища (NAS) нового поколения, которое на основе Debian Linux . Следует также отметить, что он предлагает такие услуги, как SSH, (S) FTP, SMB / CIFS, медиа-сервер DAAP, RSync, клиент BitTorrent и другие. Кроме того, он был разработан для использования в небольших офисах и дома, хотя его можно использовать и в других местах. Мы находим простое и удобное в использовании решение, которое не требует больших затрат времени на приготовление пищи для установки и управления нашим хранилищем.
Что касается других функций openmediavault, у нас есть поддержка IPv6, e-mail уведомления, совместное использование файлов и простые обновления системы через управление пакетами Debian. Если вам нужна дополнительная информация, вы можете получить ее, нажав на эту ссылке .
Синхронизация файлов и папок
Все предыдущие операционные системы используют серверы, такие как Samba, FTP или SFTP, для передачи по запросу файлов и папок, которые нам нужны. Если мы хотим иметь автоматическую синхронизацию файлов и папок, как это делают Dropbox, OneDrive или Google Drive, мы должны установить специальное программное обеспечение для выполнения этой задачи.
Несмотря на то, что существует множество решений для автоматической синхронизации файлов и папок, в мире широко используются две программы, которые являются лучшими: одна из них — Nextcloud, являющаяся ответвлением OwnCloud, а другая — это собственно OwnCloud. продолжает обновляться.
Nextcloud
Другой вариант, который мы можем использовать для преобразования компьютера в частное облако, — это Nextcloud . Таким образом, мы можем безопасно делиться файлами, поскольку мы будем использовать HTTPS . Еще одна интересная проблема заключается в том, что в Nextcloud есть устройство под названием Коробка Nextcloud который работает вместе с одним с Raspberry Pi .
Nextcloud использует архитектуру клиент / сервер и может быть установлен в операционных системах Linux. Что касается клиентов Nextcloud, то в нем есть Windows, Linux, Мак ОС, помимо приложений для Android и iOS . Для получения дополнительной информации щелкните здесь . Мы можем установить это программное обеспечение практически на любой компьютер, потому что разработчики выпустили образы VMware и VirtualBox, поэтому, если вы используете Windows, вы можете использовать это программное обеспечение путем виртуализации сервера NextCloud и в таких операционных системах, как XigmaNAS, TrueNAS Core и OpenMediaVault вы можете без проблем установить изначально.
Позже на клиентских компьютерах, смартфонах и планшетах мы должны использовать клиент Nextcloud для правильной синхронизации всех файлов и папок.
OwnCloud
С ownCloud мы можем создать собственное частное облако, которое можно адаптировать как для домашних, так и для частных пользователей.
Следует также отметить, что он бесплатен, пока используется одним пользователем, но у нас не будет поддержки клиентов. Следует отметить, что он работает в Linux, и вы можете скачать его с здесь. Также следует отметить, что помимо Windows, Mac OS и Linux у него есть клиенты для Android и iOS.
Как вы видели, настроить частное облако на старом или нынешнем компьютере очень просто, в зависимости от ваших потребностей и знаний вы можете выбрать тот или иной вариант.
Содержание
- Персональное облако
- Возможные решения
- OwnCloud
- NextCloud
- SparkleShare
- Seafile
- Pydio
- ProjectSend
- SpiderOak
- Установка NextCloud
- OnlyOffice
- Выводы
- Создай свое собственное облачное хранилище. Инструкция
- Зачем мне свое облако?
- Что мне понадобится для создания своего облака?
- Я уже готов, что нужно делать?
- Как теперь пользоваться облаком?
- Какие возможности есть у моего облака?
- Как сделать ограниченный доступ для определенных пользователей?
- Артём Суровцев
- Как создать собственное облако, где можно бесплатно хранить любой объём данных
- Создаем личное облако на 3 Тб
- Однако.
- Ответы на вопросы:
Персональное облако
Облачное хранилище позволяет не только хранить данные, но и обеспечивать совместную работу с ними в NAS.
Возможные решения
Существует несколько вариантов облачных сервисов: NextCloud, Seafile, Pydio и т.д…
Ниже рассмотрена часть из них.
OwnCloud
Реализован на PHP/Javascript.
NextCloud
Форк OwnCloud. Реализован на PHP/Javascript.
SparkleShare
Seafile
Реализован на C/Javascript.
Pydio
Реализован на PHP/Javascript.
ProjectSend
Реализован на PHP/Javascript.
SpiderOak
Закрытая проприетарная система.
С учётом того, что данное ПО платное и частично закрытое, его использование исключается.
Установка NextCloud
Изначально было желание использовать Seafile: серверная часть реализована на C, он эффективен и стабилен. Но выяснилось, что в бесплатной версии есть далеко не всё.
Потому, я попробовал Nextcloud и остался доволен. Он предоставляет больше возможностей и полностью бесплатен.
Посмотреть, как он работает в демо-режиме вы можете здесь.
Вот общие точки сопряжения между облачным хранилищем и системой:
Т.к. конфигурация NextCloud достаточно объёмна и состоит из нескольких файлов, я не буду приводить их здесь.
Всё, что нужно вы найдёте в репозитории на Github.
Там же доступна конфигурация для SeaFile.
Сначала установите и запустите NextCloud.
Для этого надо скопировать конфигурацию в каталог /tank0/docker/services/nextcloud и выполнить:
Кардинальных отличий или сильного улучшения производительности я не заметил.
Ниже я считаю, что вы используете версию 13+.
Далее, зайдите в NextCloud и выбрав в меню справа вверху «Приложения», выполните установку необходимых плагинов.
Замечу, что если вы установите версию 13+, но потом решите обновиться на версию 15, это и многое другое вы сможете сделать с помощью утилиты occ.
Настройка LDAP не тривиальна, потому я расскажу подробнее.
Нажимайте кнопку «Проверить конфигурацию DN» и, если индикатор проверки зелёный, кнопку «Далее».
Фильтр будет выглядеть так:
Нажимайте «Проверить базу настроек и пересчитать пользователей», и если всё корректно, должно быть выведено количество пользователей. Нажимайте «Далее».
На следующей странице будет настроен фильтр пользователей, по которому NextCloud их будет искать.
На этой странице надо ввести логин какого-либо пользователя и нажать «Проверить настройки».
Последний раз «Далее».
Итоговый фильтр здесь такой:
OnlyOffice
OnlyOffice — это прекрасный кроссплатформенный офисный пакет, который поддерживает работу с документами MS Office. Он бесплатный и открытый, также как и LibreOffice и также способен работать, как сервер.
Но при этом, поддержка оригинального формата у него реализована гораздо лучше, почти как в оригинальном офисе от MS, он более стабилен, имеет более продуманный интерфейс.
Кстати, есть и Desktop версия OnlyOffice, в том числе под Linux. В общем, намучавшись с тяжёлой и нестабильной Collabora (это LibreOffice), я выбрал OnlyOffice и пока вполне доволен.
Конфигурация OnlyOffice доступна на Github и ниже, под спойлером.
Поясню некоторые моменты:
Теперь надо поднять офис:
И, если всё работает, по адресу office.NAS.cloudns.cc будет следующая страница:
Затем, в настройках NextCloud требуется выбрать Пункт «Администрирование->ONLYOFFICE» и прописать в первых двух полях адрес сервера документов: https://office.NAS.cloudns.cc/ и ваш JWT token.
В третьем поле надо прописать адрес облака.
JWT токен возможно сгенерировать, например здесь.
Выводы
Облачное хранилище является центральным звеном для взаимодействия пользователей между собой и другими сервисами.
В этой роли NextCloud весьма удобен и обладает широким функционалом.
У него есть свои в процессе обновления между версиями, но в целом, это хранилище возможно рекомендовать.
Источник
Создай свое собственное облачное хранилище. Инструкция
Забудь о Dropbox и Google Drive.
Тема облачного хранения данных в последние годы интересует многих активных пользователей компьютеров и мобильных устройств. У каждого из нас есть учетные записи в Dropbox, Google Drive, Облаке Mail.ru, Yandex Диск и ряде подобных хранилищ.
Пока разработчики сервисов борются между собой, не давая нам выбрать идеальное решение, предлагаю организовать свое облако и забыть о других альтернативах.
Зачем мне свое облако?
Свое облачное хранилище имеет ряд преимуществ и лишь несколько недостатков, с которыми можно ужиться. Для начала о плюсах такого решения:
Можно будет забыть о существующих сервисах и перестать приглашать новых друзей, когда закончится свободное место в Dropbox или Yandex Диск. Конечно, собственное облако имеет ряд ограничений по сравнению с популярными решениями:
Как видите, недостатки у решения не такие уж и существенные, можно создать свое облако для личных целей, а при необходимости обменяться данными между приложениями на iPhone или постоянно иметь доступ к определенным данным всегда пригодится имеющийся аккаунт в том же Dropbox или Google Drive.
Что мне понадобится для создания своего облака?
Для многих может стать проблемой необходимость в постоянном компьютере-сервере. Подойдет любой стационарный Mac или PC, который выступает в роли медиа-сервера в квартире или просто может быть регулярно включен.
Можно использовать и ноутбук, но во время работы вдалеке от розетки придется останавливать сервер облака, чтобы экономить заряд аккумулятора и сетевой трафик. В это время просмотреть данные с других устройств не получится.
Я уже готов, что нужно делать?
Для начала переходим на сайт сервиса Tonido и загружаем бесплатное приложение для своей операционной системы (выбираем раздел с серверными программами). Есть версии для OS X, Windows и Linux.
После установки программы нас автоматически перебросит на сайт сервиса, регистрируемся и создаем свою учетную запись. Процедура полностью бесплатна и не займет больше минуты времени. В процессе мы придумаем постоянный web-адрес для нашего хранилища (он будет выступать логином) и пароль для авторизации.
Важным этапом является выбор папок доступных извне. Если пропустить этот шаг, то при подключении с другого устройства можно будет просматривать и редактировать абсолютно любые файлы с компьютера-сервера.
В любой момент через веб-интерфейс в разделе Разное можно добавить или удалить видимые в облаке папки.
Как теперь пользоваться облаком?
Когда настройка будет завершена, можно попытаться получить доступ к данным с любого другого устройства, для этого предусмотрено несколько вариантов:
Ссылка вида https://*.tonidoid.com будет постоянной и по ней всегда можно получить доступ к данным с компьютера-сервера (разумеется, когда он включен и имеет подключение к интернету).
Какие возможности есть у моего облака?
Возможности бесплатного аккаунта в Tonido практически безграничны. Ознакомиться со всем перечнем можно на специальной странице. Для личного использования большинству из нас этого хватит с головой. Корпоративные клиенты могут получить еще целый вагон полезных фишек, но за это придется заплатить.
Через мобильное приложение на iPhone и iPad можно:
Клиенты для настольных операционных систем обладают аналогичными возможностями и ни чем не уступают решениям от облачных сервисов. Можно настроить постоянную синхронизацию, чтобы иметь копии всех расшаренных файлов.
Как сделать ограниченный доступ для определенных пользователей?
Отдельного упоминания заслуживает режим предоставления ограниченного доступа. Чтобы выдать кому-либо права на просмотр определенных данных, заходим в веб-интерфейс. Здесь открываем любую из доступных папок и нажимаем на иконку с гаечным ключом.
Выбираем раздел Общая папка и открываем Расширенные опции.
Здесь можно создать учетную запись с ограниченными правами или задать временное ограничение, после указанной даты файлы по сгенерированной ссылке будут недоступны.
Вот такой ряд весомых аргументов имеет свое облако. Теперь любые данные будут всегда с вами без условностей и ограничений.
Артём Суровцев
Люблю технологии и все, что с ними связано. Верю, что величайшие открытия человечества еще впереди!
Источник
Как создать собственное облако, где можно бесплатно хранить любой объём данных
Мы все пользуемся облачными хранилищами, а некоторые из нас даже платят абонентскую плату за возможность хранить файлы сверх выделенного лимита. Это удобно — при наличии интернета нам в любой момент доступны все файлы, которые мы скопировали в облако. Но у таких сервисов есть и недостатки: их могут взломать хакеры, файлы могут попасть к посторонним, а если владельцев облака не устроит контент, который вы храните у них, ваш аккаунт могут заблокировать, и тогда все файлы пропадут. Создание собственного облака — отличное решение, хотя и у него есть свои недостатки.
Премущества персонального облака:
— Нет лимитов. Вы можете хранить столько файлов, сколько вмещается на накопители в вашем компьютере.
— Никаких платежей, всё бесплатно (кроме электроэнергии).
— Полная приватность. Файлы копируются с компьютера на другие устройства без использования стороннего сервера.
— Возможность делиться неограниченным количеством папок и файлов с другими пользователями.
— Управление уровнями доступа к файлам и папкам.
Недостатки персонального облака:
— Придётся держать компьютер постоянно включённым, иначе удалённый доступ к файлам пропадёт.
— Не получится прикрутить ваше облако к большей части приложений, которые работают с популярными хранилищами.
— Риск лишиться файлов из-за сбоя в компьютере.
Как создать своё облако:
1. Зайдите на сайт Tonido и создайте учётную запись.
2. Скачайте программу Tonido Server. Установите её, запустите и разрешите ей доступ к сети (если выскочит диалоговое окно брандмауэра). Эта программа создаёт из компьютера сервер, благодаря чему доступ к хранящимся на нём файлам может осуществляться из любой точки мира через интернет.
3. Значок Tonido Server висит в панели уведомлений. По нажатию на нему в браузере открывается локальный адрес http://127.0.0.1:10001 с интерфейсом сервиса, где можно указать, какие папки будут добавлены в облако.
4. Скачайте мобильное или десктопное приложение Tonido. Запустите его и зайдите в свою учётную запись. Если вы увидите в приложении файлы, которые хранятся на компьютере, значит облако готово и им можно пользоваться. Теперь у вас всегда будут при себе все нужные вам файлы.
Приложение может открывать некоторые типы файлов, в том числе видео, музыку и тексты. Любой файл можно скачать на устройство или отправить другу (по электронной почте или с прямым доступом по ссылке в сервисе Tonido).
Строго говоря, сервер, запущенный на домашнем компьютере, не может считаться полноценным облачным сервисом. Облако — профессиональное решение, которое использует технологию распределения файлов по нескольким серверам, благодаря чему риск их пропажи почти исключается. Вероятность повреждения данных можно минимизировать и дома — для этого, например, можно создать RAID-массив. Но даже в этом случае остаются другие риски, например, физическое повреждение компьютера или его кража. Обезопаситься от этого сложнее.
Источник
Создаем личное облако на 3 Тб
Я бы хотел поделиться одним способом создания личного облака на базе трехтеррабайтного WD MyBook Live. Нет, я не буду даже упоминать про wd2go и их «полуоблака», которые по сути являются только доступами к самому NAS через сервисы WD при помощи довольно корявых Java-апплетов. В этой статье речь пойдет о «честном» облаке, работающем на MBL при помощи ownCloud.
Это решение подойдет тем, кто мечтает о личном аналоге Dropbox, файлы в котором хранятся не «где-то там», а на конкретном физическом носителе, и ограничены только его объемом, без необходимости платить ежемесячно за этот объем (пренебрегая абонентской платой за интернет и стоимостью электроэнергии).
Большинство решений подобной задачи требуют достаточно много покопаться в интернете и опираются на хорошее знание Linux-систем. В данном посте я попытаюсь дать наиболее полный и адекватный HOW-TO на русском, чего сам в интернете не нашел. Так что многое пришлось делать методом проб и ошибок на свой страх и риск. Реализация данного решения не требует каких-либо фундаментальных знаний Linux, и я постараюсь расписать все наиболее доступно, по шагам.
Если интересно что из этого вышло — добро пожаловать под кат.
Прежде всего, хотел бы сказать что все манипуляции над своим MyBook Live вы делаете только под собственную ответственность. Теоретически, при неправильной последовательности действий, есть возможность сделать его не работоспособным, и хотя в подавляющем большинстве случаев, коробочку можно воскресить, а данные — спасти, все равно постарайтесь сделать бэкап содержимого на другой носитель. Либо, если есть такая возможность, лучше работать над чистым носителем.
Современная линейка WD MyBook Live — это процессор 800 МГц, 256 Мбайт оперативной памяти и практически полноценный вариант Debian Linux в качестве прошивки, правда это уже не поддерживаемый Lenny с примесью файлов прошивки от WD, да еще и под архитектуру PPC, так что с пакетами повозиться все же придется, однако apt-get, wget и dpkg тут самые что ни на есть обычные, а значит работать с репозиториями возможно в полной мере.
На хабре уже была статья об ownCloud, поэтому останавливаться подробно на том что это такое и как оно устанавливается в общем случае я не буду, перейду сразу к конкретике для MBL. Прежде всего, ownCloud – это серверное приложение, которое работает максимально похоже на сервисы Dropbox, Google Drive и подобные, только хостится оно на вашем железе, что само по себе совершенно бесплатно, да и MBL – далеко не худший вариант для хостинга подобного решения.
В первую очередь, нам нужно будет включить доступ к нашему MBL по SSH для дальнейшей работы. Делается это довольно просто — зайдя по адресу mybooklive/UI/ssh и поставив галочку напротив протокола SSH:
Как видно, пароль по-умолчанию для доступа – welc0me.
Дальше останется только войти по SSH через терминал (на windows-машине можно использовать PuTTY):
Предлагаю в первую очередь, также сменить пароль на более стойкий (тем более потребуется если в дальнейшем будете открывать доступ через интернет), командой passwd, после чего будет необходимо два раза ввести новый пароль.
Ни в коем случае не пытайтесь проапгрейдить дистрибутив на мажорную версию, а лучше вообще забудьте о существовании команд full-upgrade, safe-upgrade или любой другой upgrade, это неминуемо приводит к тому, что вы больше не сможете загрузить девайс. Мне пришлось-таки поплатиться за свое любопытство ручным разбором устройства и восстановлением через анбрик. Ничего смертельного, но чрезвычайно неприятно и отнимает уйму времени.
Также, советую тщательно следить за пакетами, которые устанавливаете или удаляете. Так можно в лучшем случае утянуть уйму ненужного мусора, а в худшем — при удалении какого-либо ненужного пакета вместе с зависимостями, грохнуть что-то жизненно важное. Так, например если вы умудритесь грохнуть ssh, то единственный вариант вернуть коробку к жизни также, будет через разбор и анбрик начисто.
Ну и на последок, чего вообще делать нельзя — так это трогать udev, его даже апдейтить опасно, в этом случае рискуете получить вместо My Book Live кирпич, непригодный к восстановлению. Лучше всего от греха подальше, запретить ему обновляться командой:
Это заморозит данный пакет, тем самым предотвратив возможность его обновления.
Потом, нам потребуется подготовить платформу для установки стороннего ПО. И ключевым здесь будет удаление пакетов wd-nas, дабы apt-get не ругался в дальнейшем по каждому пустяку. Как ни странно, этой информации нет практически нигде, кроме официального источника:
Это устранит пакеты, зависимые от прошивки.
Следующим шагом, нам будет необходимо добавить в список доступных репозиториев две ссылки. Сделать это удобнее всего в редакторе nano, командой:
А вот что необходимо добавить:
Возможно у кого-то возникнут вопросы, зачем добавлять репозитории squeeze если версия самого WD MBL — lenny? Отвечу — просто потому что lenny с февраля 2012 года более не поддерживается, и большинство необходимых пакетов для него давно устарели, что может привести к неразрешимым зависимостям (пришлось откатываться к заводским настройкам после первой неудачной попытки). В интернете достаточно много советов по тому какие еще репозитории можно добавить, включая тестовые ветки, но я советую не слишком увлекаться, потому что не зная что ты делаешь, можно превратить эту шуструю коробочку в безжизненный кирпичик.
После добавления нужных строк и сохранения списка репозиториев, нужно попробовать обновиться командой:
Не забываем, что ownCloud все же написан на PHP, поэтому для его полноценной работы нам потребуется установить ряд необходимых пакетов, включая актуальную версию PHP5 и несколько необходимых модулей:
Установщик может ругнуться на недоверенные пакеты. Это происходит потому что подписанные ключи для репозиториев Дебиан уже не актуальны. У этой проблемы существует решение, однако можно и проигнорировать предупреждение просто нажав пару раз на «Y». Также, в процессе установки возможны конфликты разных версий пакетов, часть из которых была предустановлена в системе. По-умолчанию, предпочтение будет дано уже установленным пакетам (это же Debian), так что вполне можно согласиться с этим решением (хотя ничего страшного не должно произойти даже если заменить эти пакеты на новые).
Если все прошло успешно, самое время перейти непосредственно к установке ownCloud. Это достаточно простая часть. Нужно перейти в каталог /www/ и скачать туда веб-установщик при помощи wget. А также, убедиться что установлены соответствующие групповые права на запись:
Далее, нужно перейти в браузере по адресу mybooklive/setup-owncloud.php чтобы продолжить установку. Можно установить ownCloud в любой каталог, но чтобы не запутаться в дальнейшем, советую все же, ставить его в одноименный каталог /owncloud/.
Если в конце установки, вы увидите
то не пугайтесь. Все требуемые модули мы устанавливали еще на прошлом шаге, но для того чтобы они заработали, нужно всего-навсего, перезагрузить веб-сервер apache:
Хотя я бы не стал на данный момент этого делать, потому что немного позже мы все равно его будем перезагружать.
После того как мы определились с каталогом установки, останется лишь немного допилить напильничком доступы извне для http и SSL https, а также вернуть групповые права для /www/. Для этого, необходимо будет прописать следующие строки:
Вот теперь можно перезагружать апач и возвращать права доступа для /www/:
Технически, данные вновь установленного owncloud хоть и находятся на жестком диске, однако логически они принадлежат системному разделу MBL, который имеет ограничение в 2 Гб. Для того, чтобы иметь возможность использовать весь доступный объем под owncloud (честно, не представляю кому и зачем это может понадобиться и сколько лет будут синхронизироваться все 3TB, забитые данными), а не ограничиваться системным разделом, мы сделаем символическую ссылку в основной раздел DataVolume, предварительно остановив апач на время наших манипуляций:
Я категорически не советую прокидывать линк в папку Public из соображений безопасности.
По сути, нам останется только вновь запустить апач и основная цель будет достигнута:
Теперь по адресу mybooklive/owncloud нам доступно собственное облако, в котором можно держать и синхронизировать огромное количество документов, доступ к которым можно получить с Win, Mac, Linux, Android и даже iOS при помощи нативных клиентов для каждой из осей, просто настроив клиент на синхронизацию с вышеуказанным адресом.
Похоже, это победа.
Однако.
По правде, это еще далеко не победа, а только полпути, потому что адрес mybooklive/owncloud является локальным, и работать наше облако будет только в рамках домашней сети, благодаря чему толку от него будет очень немного. Но что же сделать чтобы пользоваться ownCloud можно было отовсюду? Конечно, счастливые обладатели статических IP скажут что нужно просто заменить «mybooklive» в адресе на IP устройства, предварительно пробросив нужные порты через роутер, и будут правы. Но такая роскошь есть не у каждого, и подавляющее большинство пользователей имеют-таки самые обычные динамические IP, которые меняются постоянно, так что каждый раз устройство будет иметь новый адрес.
Как ни странно, у этой задачи есть достаточно несложное решение. Нет, даже не подумайте что мы посмотрим в сторону неудобного сервиса wd2go (хотя была пара идей как можно использовать и его) – напротив, мы опять поработаем головой и воспользуемся такой полезной штукой как Dynamic DNS.
В качестве сервера DynDNS лично я выбрал совершенно бесплатный от freedns.afraid.org, потому что платить за не используемые фишки от dyn.com/dns даже минимальную абонентку в год, как-то не хотелось. Для нашей задачи отлично подойдет самый минимальный функционал. Подробно расписывать процедуру регистрации домена и привязки его к сервису DynDNS в рамках данной статьи я не буду. Достаточно просто зарегистрироваться на сервисе и на странице freedns.afraid.org/domain найти пункт «Add A Domain into FreeDNS», после чего добавить в качестве DNS у вашего регистратора следующие ns-сервера:
При этом не стоит пугаться красного статуса Broken — если все нормально, он исчезнет сам в течение 24-х часов.
Далее нам необходимо выбрать и установить какой-либо Dynamic DNS клиент на MyBookLive. На самом деле, это задача не из легких, потому что подобных решений действительно огромное множество на Perl, Python, PHP, есть также отдельные демоны для *nix всех видов и мастей. Перед тем как найти подходящее решение, мне пришлось перепробовать достаточно много вариантов, но везде что-то не устраивало — то настройка через одно место, то стабильность работы не устраивает, то с выбранным сервером не совместим, то с версией протокола, то слишком неповоротливо. В итоге решил остановиться на самом маленьком, простом и незатейливом клиенте inadyn. Из плюсов — шустрая работа, очень маленький размер, совместимость с выбранным сервером, довольно гибкая настройка, поддержка крона, запуск в режиме демона и обновление IP через заданный интервал. Из минусов разве что отсутствие какого-либо GUI, и то это даже минусом назвать сложно для такой консольной утилитки.
Устанавливается она просто командой:
Также важное замечание что для работы inadyn может потребоваться curl, если он не был установлен. Решается так:
Далее нам необходимо войти под своим аккаунтом на freedns.afraid.org/dynamic и выбрать пункт Direct URL напротив домена, который мы привязывали ранее. Обратите внимание, что в строке браузера будет нечто подобное:
Нас интересует все, что стоит справа от ?. Это — хэш, действительный только для вашего домена (значения в примере изменены). Скопируйте его куда-нибудь, он нам вскоре понадобится.
Теперь создаем конфигурационный файл inadyn командой:
в который вставляем необходимые настройки и сохраняем:
Теперь нам нужно добавить inadyn в крон как автоматическое событие при перезагрузке, чтобы каждый раз при перезагрузке MyBookLive, она стартовала автоматически. Для этого:
Чтобы проверить работоспособность программки после наших манипуляций, можно перезагрузить MBL командой
Затем подождать 3-5 минут пока он перезагрузится и стартует, после чего проверить процессы:
Нам останется только проверить доступность нашего майбука по имени домена командой ping:
P.S. за время написания статьи, методом проб и ошибок, пришлось один раз делать полный программный сброс к заводским настройкам и два раза разбирать устройство чтобы воскресить (по инструкции отсюда), поэтому очень прошу, отнестись ко всем предостережения серьезно, с пониманием собственной ответственности и возможности испортить железку и потерять информацию. Также, не забывайте, что MyBookLive прежде всего, просто бюджетный nas, и использовать его в качестве полноценного сервера все же не стоит, для этого есть куда более подходящие решения.
P.P.S. о каких-то ошибках или неточностях, просьба писать в личных сообщениях. Тема лично мне очень интересна, и я не обладаю большими фундаментальными познаниями в администрировании Linux, так что замечания могут быть очень полезны. Вполне возможно, что статья будет еще дополняться, расширяться, а если она будет востребована, то возможно и обзаведется второй частью (есть еще несколько идей как можно прокачать MyBookLive)
Ответы на вопросы:
Вопрос: На какой версии прошивки проводился эксперимент?
Ответ: Все делалось на 02.42.03-027, но по идее, должно работать и с более ранними. К сожалению, информации по различным прошивкам нет.
Вопрос: Может ли Feature Pack Manager повлиять каким-либо образом на описанное в статье?
Ответ: По своей сути, fpkmgr — просто некий расширенный менеджер пакетов, который устанавливает тот набор пакетов, который выберет пользователь. На моем MBL спокойно работали параллельно Transmission из fpkmgr и owncloud. Возможно, есть какие-то пакеты, устанавливаемые при помощи fpkmgr, которые могут конфликтовать, но информацией об этом я пока не обладаю. Если кто-то сталкивался и напишет об этом, я включу замечание сюда.
Вопрос: После действий, описанных в статье, будет ли owncloud отключаться, когда MBL уходит в сон?
Ответ: Самое интересное, что судя по поведению светодиода, он-таки в сон уходил пока я не отключил энергосбережение. По факту работал с некоторой задержкой чтобы «проснуться» и показать содержимое owncloud при заходе из браузера, хотя технически этот аспект я не изучал. При отключенном энергосбережении все отлично работает.
Вопрос: Все сделал по инструкции, но при попытке доступа пишет что невозможно подключиться к серверу. Что делать?
Ответ: Для нормальной работы owncloud, необходимо пробросить на роутере порты 80 и 443. Как это сделать, подскажет гугл при запросе port-forwarding.
Источник
Мы продолжаем идти к цифровому суверенитету и теперь настраиваем своё облачное хранилище на сервере. Вот как мы к этому пришли:
- Что такое бэкап, зачем он нужен и как его делать
- Как работает автоматизация в компьютере
- Защита важных файлов: автоматический бэкап за пять минут
- Настраиваем сервер для своего облачного хранилища
Сегодня будет самая лёгкая часть — мы установим специальный софт, который будет работать точно так же, как Dropbox, только на нашем сервере. Он будет следить за изменениями в выбранных папках и сразу отправлять их на сервер. А если установить его на несколько компьютеров, то на каждом из них будут одинаково синхронизированные файлы.
Что за Dropbox?
Dropbox — это сервис для резервного копирования и синхронизации файлов, аналогичный Google Drive и Яндекс-диску. Правильнее сказать, что это Google Drive и Яндекс-диск аналогичны «Дропбоксу», потому что он был раньше.
После отключения международных платёжных систем оплачивать Dropbox можно только через магазин App Store, привязав аккаунт к мобильному телефону. Стоит сервис недёшево: за 120 долларов в год вам дадут 2 Тб места на диске. Для сравнения: сейчас Яндекс-диск по акции стоит 999 ₽ за 3 Тб на два года.
Если вам нужно просто облачное хранилище за небольшие деньги — идите в Яндекс-диск и просто подписывайтесь, пока идёт промоакция. Но если вы решили стать полностью суверенным и не зависеть от сторонних сервисов, оставайтесь с нами.
Что понадобится
Для реализации нам нужно три компонента:
- Свой облачный сервер на линуксе с большим диском. Его мы запускали в прошлой части нашей саги.
- Установленная на этот сервер программа Nextcloud.
- Клиентская программа на компьютере.
Nextcloud — это проект с открытым исходным кодом, который можно поставить почти на любой компьютер с линуксом. Он состоит из трёх частей — серверного бэкенда, веб-интерфейса и клиентских приложений. Серверный бэкенд отвечает за приёмку файлов с компьютера и синхронизацию между несколькими машинами. Веб-интерфейс даст доступ к файлам через браузер и поможет настроить систему. Клиентская часть устанавливается на домашний компьютер — она отправит на сервер новые файлы и будет следить за изменениями в файлах и папках. Если что-то изменится — сразу отправит в облако.
Свой сервер у нас уже есть, поэтому переходим к установке и проверке Nextcloud.
Запускаем Nextcloud на сервере
Когда мы оформляли и покупали облачный сервер, то ставили галочку на Nextcloud в списке предустановленного ПО. По идее, этого уже достаточно, чтобы сервер сам всё развернул внутри себя и запустил. Для проверки нужно зайти в браузере по IP-адресу сервера, и если всё в порядке, то мы увидим страницу входа в сервис.
Узнать IP-адрес своего сервера можно из письма, которое прислала техподдержка, или из панели управления:
Переустановка Nextcloud
Если вместо стартового экрана браузер показывает белый лист (именно белый, а не ошибку), нужно переустановить систему. Такое бывает, иногда при установке не подтягиваются сразу все сервисы.
Белый лист означает, что сервер всё-таки ответил, просто ответил «ничего». Если бы сервер не работал как таковой, мы бы получили ошибку в духе «Не могу дозвониться».
Чтобы переустановить систему на сервере, заходим в VMmanager — панель управления виртуальным контейнером. Адрес панели и логин с паролем можно найти в письме от сервиса или на вкладке «Инструкция»:
В этой панели управления выбираем свой сервер и нажимаем «Переустановить». В новой вкладке проверяем, что выбрана свежая версия Ubuntu и в рецепте стоит Nextcloud, — если нет, то ставим это вручную и нажимаем ОК. На переустановку нужно минут 20, а во время процесса в графе «Состояние» будет мигать значок жёсткого диска.
Заходим в облако
Для первого входа нам понадобится логин и пароль — они такие же, как для root-доступа на сервер, поэтому используем их. Данные берите в письме, которое отправил хостер при регистрации сервера — даже если вы установили на сам сервер ключи доступа.
Осваиваемся в веб-интерфейсе
Всё работает точно так же, как в остальных облачных хранилищах. Например, можно просто перетащить из проводника в браузер любой файл, и он сразу загрузится в открытую папку. Делиться файлами и папками тоже можно, как в «Дропбоксе» — щёлкаем правой кнопкой мыши по названию, выбираем «Поделиться» и настраиваем, если нужно, права доступа.
Как-то медленно, да?
Если вы заказывали сервер для хранения файлов (как в нашей инструкции), то у вас там медленный одно- или двухъядерный процессор и чуть-чуть оперативной памяти. Из-за этого вы прямо физически ощутите, что Nextcloud на вашем сервере еле шевелится.
Добро пожаловать в мир цифрового суверенитета: хотите более мощный процессор — платите. Правда, конкретно с FirstVDS платить особо не за что: у них есть либо быстрые машины для приложений, но у них мало места для хранения; либо наоборот — безразмерные диски, но медленные процессоры.
Поэтому придётся потерпеть.
Ставим приложение на компьютер
Сервер настроен, теперь займёмся клиентской частью. Заходим в Настройки → Клиенты для ПК и мобильных платформ и выбираем нужное:
Нас перекинет на официальный сайт с вариантами установок — выбираем свою операционную систему, скачиваем и устанавливаем. После запуска нажимаем на кнопку «Войти в Nextcloud» и вводим IP-адрес нашего севера:
Сервер начнёт ругаться, что не может установить безопасное соединение — его мы сделаем в следующий раз. Пока что нажимаем «Попробовать без шифрования»:
Так как мы первый раз подключаемся к облаку с этого компьютера, то сервис в браузере сразу спросит нас, мы это делаем или нет. Для подтверждения нужно нажать «Войти» и разрешить доступ:
Когда приложение получит доступ, оно предложит нам настроить папки для синхронизации — можно оставить установки по умолчанию и нажать «Подключиться». Приложение начнёт синхронизацию и перейдёт в штатный режим работы. Если нужно добавить новую папку для синхронизации, заходим в параметры и нажимаем «Добавить папку для синхронизации»:
Что ещё можно настроить
Nextcloud — это огромный комбайн с кучей возможностей, в который можно подключить:
- календари
- контакты
- диск
- органайзер
- списки задач
- игры
- комментарии
- совместную работу
- и ещё много всего остального
Часть из этого нам может пригодиться в будущем, когда мы сделаем сервер центром своей цифровой вселенной.
Что дальше
Сейчас сервис работает по незащищённому протоколу HTTP — это может быть небезопасно при бэкапе важных документов. Чтобы перейти на HTTPS, нужно привязать адрес сервера к домену и установить SSL-сертификат.
А ещё будет здорово добавить на сервер возможность редактировать документы онлайн и получить собственный аналог гуглодокументов на своём облаке. Сделаем это в следующий выпусках.
Вёрстка:
Кирилл Климентьев