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

Всем привет!

Я хочу построить домашний сервер для следующих целей:

  • хранить файлы / носители в качестве резервной копии с компьютеров, которые имеют к ним доступ
  • Потоковая передача указанного медиа на конкретный компьютер, подключенный к нему или на телевизор, подключенный к серверу
  • Игровой сервер для minecreaft / terraria / etc (он не будет работать 100% времени, и я захочу выключить и включить его, чтобы освободить память для других задач при необходимости
  • Доступ к файлам и поток из него из Интернета, чтобы я мог получить к нему доступ в любом месте, если это будет необходимо.

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

Я также хочу иметь возможность получить доступ к нему из Интернета, если это возможно. Таким образом, если мне действительно нужно, я могу подключиться к нему из любого места и извлечь из него файлы. Я знаю, что на самом деле это может быть действительно сложно, поскольку мой внешний IP-адрес может не быть статичным (как многие компании, такие как comcast, провайдер, к которому я к сожалению подключен), на самом деле может иногда менять ваш внешний IP-адрес (но не очень часто). Я купил доменное имя для сервера у namecheap, который предлагает своим клиентам услугу динамического DNS. Таким образом, он может корректно обновить свой внешний IP-адрес.

Немного предыстории о себе: я физик и электротехник, специализируюсь в области компьютерных наук. Я знаю значительную долю C, C++ и Python. Но я не знаю PHP или других языков сервера. Я знаком с Windows / OSX / Linux, но мои навыки Linux / терминала не на высшем уровне.

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

Как мне начать делать все это? Как мне убедиться, что сервер совместим с Windows /OSX /Linux.

Я надеялся сделать его сервером Linux, так как я знаю, что он, вероятно, лучший (хотя я не мастер Linux).

Если я могу подключить его к Интернету (чтобы я мог получить доступ к этим файлам из любого места), как я могу защитить его? Как сделать так, чтобы только определенные пользователи могли войти в систему?

Я имею в виду компьютер, вот его характеристики. У него нет никаких дополнительных обновлений (поэтому у него есть оперативная память - 8 ГБ). Все, с чем это идет, - то, что это имеет.

У меня есть оборудование, которое я перечислил. Это очень старый (читай: 6 лет) рабочий стол, который я получил некоторое время назад. Я хочу, чтобы это был частично проект, но с легкой кривой обучения. Я не хочу писать свое собственное приложение службы потоковой передачи, но я не хочу, чтобы все было "настроено и забыто", поскольку я хочу изучить основы сетевых устройств и подключения серверов к Интернету для передачи файлов / удаленного управления. / так далее

Я не знаю, является ли виртуализация всего наилучшим по двум причинам: 1) виртуализация требует гораздо больше ОЗУ 2) она кажется сложной для этой работы, я хочу иметь возможность полностью контролировать все удаленно, и если виртуальный машина выходит из строя, как я могу запустить ее удаленно? (возможно это не проблема)

Я рассмотрел некоторые вещи, такие как Plex и OwnCloud, но я хочу убедиться, что они интегрируются (т.е. я могу загружать медиа на сервер с OwnCloud, который Plex может затем передавать). Я полностью открыт к альтернативам, я упоминаю только plex и OwnCloud, потому что они появились в моем исследовании. Также я хочу, чтобы несколько пользователей могли иметь доступ к серверу одновременно (потоковая передача на несколько устройств одновременно - с одинаковыми или разными носителями, загрузка / выгрузка файлов, в то время как кто-то еще транслирует и т.д.)

1 ответ1

0

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

  • Во-первых, вам нужно рассмотреть ваше оборудование. Надежен ли настольный компьютер для повседневного использования? Можно ли легко проводить техническое обслуживание накопителей и оперативной памяти? Не могли бы вы найти запчасти для сервера через два года? Вы можете выбрать переоборудование любого старого настольного компьютера на чердаке (дешево по цене надежности), купить NAS (сетевое хранилище за счет производительности) или построить башню самостоятельно (дорого, но наиболее гибко).
  • Во-вторых, исследуйте конкретную операционную систему или дистрибутив, который вы хотели бы использовать. В четырех случаях из пяти вы, вероятно, будете использовать дистрибутив Linux. Существует так много серверных дистрибутивов, что я даже не могу их назвать! (Но если вы настаиваете, наиболее популярными являются Ubuntu Server и CentOS.)
  • Выберите конфигурацию вашего привода. Это очень важно в долгосрочной перспективе, так как диск может выйти из строя от года, до пяти лет, до пятнадцати лет, и вы не хотите тратить свою пропускную способность на резервные копии за пределами площадки. Аппаратный RAID является обязательным, что позволит вам создавать экономичные резервные установки, а не только обычный RAID 0 и RAID 1. У вас все еще должен быть резервный источник, но RAID позволит вам заменить неисправный диск из четырех или пяти дисков без каких-либо сбоев. Не полагайтесь на внешние USB-накопители 24/7. Они терпят неудачу очень быстро. Отключайте внешние диски, когда они не нужны.
  • Если вам это не нужно, не виртуализируйте. Решения по виртуализации имеют большой смысл в контексте предприятия / центра обработки данных, где вся информация о контроллере домена может храниться полностью в одном образе, а несколько контроллеров домена могут работать на одном и том же оборудовании одновременно. Виртуализация часто используется в доменах Windows Server и не обходится дешево, если вы не идете по пути VirtualBox. Если вы можете, запустите все свои программы непосредственно в одной и той же ОС; это позволит вам более легко управлять своими услугами (и памятью).
  • Ваш маршрутизатор может обрабатывать большинство вещей брандмауэра для вас; однако вам нужно будет усилить защиту каждой службы, которую вы запускаете, путем ограничения их прав на чтение / запись. Основное правило заключается в том, чтобы как можно меньше открытых портов было возможно, чтобы предотвратить возможные дыры в безопасности. Вы можете использовать SSH-туннели, если вам нужен временный доступ к службе, для которой вы не открыли порт.
  • Если вам нужно, используйте Бояться.орг для динамического DNS. Доступны скрипты для работы с динамическими IP.
  • Начните медленно и продолжайте свой путь. Сначала установите важные пакеты, такие как Samba и MiniDLNA, для доступа к мультимедиа, а затем начните устанавливать свои игровые серверы и административные службы (такие как SSH). Вы должны настроить веб-сервер последним, так как он обычно самый раздражающий (с точки зрения безопасности) для полной настройки. Не создавайте никаких программ или сценариев с нуля, если они не существуют.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .