Прошу совета по созданию домашнего сервера

Доброго дня всех участникам форума.

Сейчас у меня к роутеру Keenetic Viva (KN-1912) подключен внешний жесткий диск.

Настроены:

  • Transmission, торрент-клиент.
  • WebDav, используется для синхронизации и актуальности хранилища Obsidian, а так же хранилища паролей KeePass.
  • Samba, доступ для основного домашнего компьютера, плюс через данное соединение производится зеркалирование данных с подключенного диска
  • Доступ к файлам диска через Web интерфейс роутера.

В связи с тем что захотелось расширить функционал, захотелось добавить найденный в комментариях work web-inpx ( Сервис для хранения и чтения книг в формате fb2 - #19 от пользователя Snork ). То собрал небольшой сервер на материнской плате GigaByte GA-N3150N-D3V, главная её особенность наличие двух гигабитных сетевых карт и наличие 4-х разъемов SATA. Процессор интегрированный Celeron N3150, память 2х4Гб DDR3L so DIMM, больше 8 ГБ не поддерживается.

В качестве накопителя для системы SSD диск 120 Гб от компании Kingston. Для данных ноутбучный HDD на 500 Гб, потом к нему добавится HDD такого же формата, но на 1 Тб, сейчас подключенный к роутеру.

Из-за того что железо не очень мощное и есть некоторый опыт с Ubuntu, то в качестве ОС выбран Debian 13.5.

Планирую для начала повторить функционал который предоставляет роутер, а уже дальше добавлять другие функции.

И если с Samba сервером и торрент клиентом, планируется transmisson-daemon, то вот как обеспечить остальной функционал понять не могу. Кроме того необходимо защитить доступ снаружи к расшариваемым ресурсам, что тоже никогда не делал.

Поэтому прошу подсказать:

  • как защитить доступ снаружи
  • каким образом обеспечить доступ к файлам из интернета, необходимо расшаривать доступ к некоторым каталогам
  • как лучше организовать синхронизацию хранилища Obsidian и базы паролей Keepass.

P.s. Так как материнская плата имеет две сетевые, то планирую одну использовать стандартно, то есть сетевая будет смотреть в ту же сеть что и остальные сетевые устройства, а для второй сделать отдельную подсеть на роутере и через неё настраивать доступ к ресурсам из интернета. Для организации доступа из интернета так же использовать Keenetic, а именно KeenDNS.

Тут есть несколько развилок.
Предоставление доступа:

  1. Предоставлять доступ только для себя любимого/семьи
  2. Предоставлять доступ для широкого круга лиц.

Наличие белого адреса от провайдера:

  1. Есть
  2. Нет

В общем если есть белый адрес, то: если для себя, то на кинетике можно поднять впн сервер и через него подключаться к своей сети снаружи. Если для всего интернета, то прокидывать порты с наружи на твой сервер + пилить права на доступ.

Если нет белого адреса, то надо заиметь ВПСку в интернете (лучше в России) и дальше: если для себя - netbird/tailscale (смотри zero trust), если для публики, то pangolin.

На канале было видео про нетбёрд https://www.youtube.com/watch?v=eKYHmdY8ikw
Про панголин было видео на соседнем канале (да простит меня админ) https://www.youtube.com/watch?v=EfiLQ6cWDMY

Единственное прокидывание портов самбы шары - неблагодарное дело…

Обсидиан я синкаю через syncthing. На компах и на телефоне стоят приложения, на компах сразу происходит синхронизация, на телефоне при подключении к зарядке (оно батарею жрёт в рабочем режиме).

По предоставлению доступа, в основном для себя, но иногда будет требоваться расшаривать доступ для других пользователь. Сейчас пока смотрю для этих целей на HFS: HTTP File Server (GitHub - rejetto/hfs: HFS is a web file server for your computer. Share folders or even a single file thanks to the virtual file system. · GitHub), который для расшаривания и создавался, так как позволяет организовать доступ по логину и паролю, а также позволяет настроить доступ по ссылке. А пробрасывать наружу Samba я и не собирался :slightly_smiling_face:

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

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

это не нужно, больше возни

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

Не знал, значит одну проблему вычеркиваем.

Как написал выше, это мне обеспечивает не провайдер, а сам роутер.

Вопрос как организовать доступ к каталогам диска и как настроить WebDAV для синхронизации для Obsidian и Keepass. Хотя для последних задач возможно есть другой вариант который мне пока не известен. Потому и прощу помощи куда направить свои поиски.

ну а на роутере адрес откуда берется?

просто на роутере поднять впн, все остальное будет работать так же, как будто ты дома подключаешся к этому

но это если у тебя белый адрес

Просто в роутере указываешь адрес внутри свой сети и присваиваешь ему DNS имя. Соответстветно по этому DNS адресу можно получить доступ к сервису находящемуся внутри своей сети снаружи. Более подробнее можно прочитать например в этой статье: Удалённый доступ к Home Assistant через KeenDNS

Белого адреса нет, но как и сказал выше он просто не нужен в моем случае.

Видимо в кинетиках из коробки есть аналог панголина Удаленный доступ к веб-сервисам домашней сети через CrazeDNS то есть роутер подключается к их серверу, ему даётся имя 3 уровня которое резолвится в адрес облака кинетика/неткрейза. А там уже пакеты пересылаются на роутер.

Так ты же сервер поднимаешь, туда ставишь syncthing, с ним спариваешь все устройства. То есть пересылка через него.

Тут на форуме есть NextExplorer посмотри его для организации файлопомойки. Умет шаринг. То есть на сервере поднимаешь его, например на 8080 порту. Затем в веб морде кинеткика делаешь домен 4 уровня типа files.<домен от кинетика> указывающий на адрес с ервера и порт 8080.

Direct-доступ предполагает прямое подключение к вашему роутеру по доменному имени KeenDNS. В этом режиме можно использовать любые протоколы и сервисы, доступные в локальной сети. Для работы Direct-режима требуется публичный IP-адрес (статический или динамический); при сером IP этот режим работать не будет.

это собственно и есть 1 способ - самый простой - прикрутить домен к динамическому ип и расшарить порты

Cloud-доступ используется в ситуациях, когда провайдер выдаёт серый IP-адрес (CG-NAT). Подключение к Home Assistant в этом режиме происходит по HTTP/HTTPS через облачную инфраструктуру Keenetic. Прямого входящего соединения к роутеру нет, используются стандартные HTTPS-порты, что накладывает ограничения на доступ к другим сервисам внутри сети — например, в Cloud-режиме невозможно подключиться по SSH или использовать нестандартные протоколы.

это собственно и есть 2й вариант, когда тебе нужно будет купить впс и воткнуть туда впн и на роутере сделать впн site to site

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

не смотрел этот панголин, сейчас столько этих названий, что уже ничего не запомнить
скорей всего просто обратный прокси там

Не сообразил. Пару лет назад под Windows пробовал данный сервис, но были проблемы с синхронизацией, не всегда корректно выбирался какой файл последний, особенно если поменять название файла, но сам файл не менять. Сейчас таких проблем нет?

Спасибо посмотрю тему.

Меня ещё заинтересовал из подобных решений проекты HFS: HTTP File Server ( GitHub - rejetto/hfs: HFS is a web file server for your computer. Share folders or even a single file thanks to the virtual file system. · GitHub ) и copyparty ( GitHub - 9001/copyparty: Portable file server with accelerated resumable uploads, dedup, WebDAV, SFTP, FTP, TFTP, zeroconf, media indexer, thumbnails++ all in one file · GitHub ), но у последнего не могу разобраться до конца с документацией :frowning:

хм, не сталкивался. Напиши подробно шаги какие надо сделать. Сразу попробую

Шары Самбы это только для локальной сети и наружу их выводить не буду. Наружу планирую выпускать аналогичное NextExplorer или его самого. Т.е. это будет файловый веб сервис с авторизацией. После ответов у меня сейчас больше вызывает вопрос с WebDAV, потому что синхронизировать Obsidian и Keepass мне необходимо, но в крайнем случае просто сотавлю маленький накопител на роутере, хотя не хотелось бы.

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

ну он работает по хттпс, весь вопрос только в авторизации
если она там есть, то можеш просто прокинуть по тому же мануалу, как ты линк давал

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

Как раз сервис для WebDAV подходящий и не нашел, потому думал может кто находил или алтернативное решение подскажет.

выше писали syncthink специально придуман
лучше для этих дел купи сетевое хранилище synology, там все отлично сделано для хранения и обмена файлами и тоже есть доступ за натом, настраивается все легко

я клиентам ставлю и норм

Подумаю, в крайнем случае действительно на железе подыму xpenology.

Исходные данные:
Папка с файлом 7 МБ. Папка напрямую синкается с другим Win компом напрямую


Переименовываю файл:

на втором компе тоже переименовалось:

Спасибо, буду пробовать данный вариант.

Пока тему оставлю открытой, вдруг ещё найдутся подскажет варианты.