Як зробити сервер із домашнього ПК

Цифровізація і, відповідно, інтелектуалізація нашого побуту вимагає абсолютно нових підходів до організації «домашнього простору». Це стосується не тільки інтеграції всіх наявних у домі пристроїв у єдиний розважальний та/або діловий комплекс, а й також отримання таких «благ» цифровізації, як, наприклад, сімейний доступ до цифрової домашньої бібліотеки, віддалений моніторинг безпеки, реалізація відомої концепції «розумного будинку» і безліч інших рішень. Їхня реалізація вимагає наявності в будинку сервера або, просто кажучи, єдиного центру управління, розгорнутого і налаштованого належним чином. Розглянемо можливі підходи до вибору такого сервера й організації його роботи та обслуговування.

Купуй Хостинг для сайту!

Віртуальний хостинг с безкоштовним конструктором сайтів, тестовим періодом та доменом у подарунок!

Планування ролей / функцій домашнього сервера

Відмінною особливістю будь-якого серверного комп'ютера є надання функціональностей іншим пристроям у мережі, які називаються клієнтами. Що більше таких функціональностей, то більш завантаженим і ресурсовитратним буде сервер. І тому, щоб уникнути таких перевантажень, набір серверних функцій має бути обмежений лише найнеобхіднішими з них. Це, своєю чергою, дасть змогу встановити обмежену кількість серверного програмного забезпечення (ПЗ), що також сприятиме оптимізації серверних ресурсів.

Таким чином, ми прийшли до поняття ролі та її планування для сервера. Перш ніж розгортати сервер, потрібно чітко визначитися з тим, що саме нам від нього потрібно і які завдання він має вирішувати. Варіантів може бути безліч, починаючи від сімейного медіацентру і закінчуючи поштовим сервером.

Щоб мати уявлення про потенційні можливості «домашнього центру управління» наведемо найбільш затребувані з виконуваних ним функцій:

Розглянемо коротко кожен із наведених варіантів використання сервера.

Веб-хостинг. Розміщення веб-сайту на домашній машині дасть змогу економити чималі кошти на оплаті за хостинг і мати повний доступ до управління безпекою домашнього хостингу. Як спеціальне ПЗ можна вибрати веб-сервери Apache, Nginx (для Unix-подібних ОС) або IIS для Windows.

Домашній медіацентр зазвичай використовується для забезпечення потокового передавання мультимедійного контенту - музики, фотографій, відео, який може завантажуватися на будь-який підключений до мережі пристрій і відображатися (програватися) на ньому в реальному режимі часу. Для цього часто використовуються протоколи, що відповідають стандартам DLNA (Digital Living Network Alliance), які реалізовані для багатьох відомих ОС, зокрема Windows і Linux. Для ефективного управління медіаконтентом також можна встановити один зі спеціалізованих застосунків, наприклад, таких як Plex Media Server або Kodi (XBMC) - кросплатформений медіаплеєр і засіб для організації HTPC (Home Theatre Personal Computer).

Ігровий центр може бути організовано, наприклад, шляхом встановлення на домашню машину серверного ПЗ багатокористувацьких застосунків, які розповсюджуються в мережі, - Tremulous, Doom, Minecraft, Global Offensive, Team Fortress і багатьох інших. У цьому разі домашній комп'ютер виконуватиме функції приватного ігрового сервера, до якого ви зможете, наприклад, встановлювати паролі доступу, налаштовувати всі аспекти гри, вчасно встановлювати оновлення, формувати чорні та білі списки гравців тощо. Одним словом, повністю визначати «ігрову політику» і правила користування сервісом.

Моніторинг безпеки може бути реалізовано в будинку за допомогою під'єднаних до USB-портів веб-камер, що утворюють домашню CCTV-мережу. Система CCTV DVR забезпечить запис відео на підключені до сервера дискові або інші накопичувачі з можливістю його подальшого перегляду з пристроїв домашньої мережі або через Інтернет.

Поштовий або домашній сервер електронної пошти може обслуговувати поштову скриньку, створену на базі доменного імені його власника. Це дає змогу отримати низку переваг перед комерційними поштовими службами: висока швидкість доступу, більші розмір скриньки та максимальний розмір повідомлення, вищий рівень безпеки порівняно із «зовнішнім» зберіганням кореспонденції та деякі інші переваги

Централізоване сховище або файловий сервер є популярною функцією для домашнього сервера, яка забезпечує загальний доступ до файлового сховища з будь-якого пристрою домашньої мережі. При цьому для передачі файлів тут можуть використовуватися протоколи SMB (Server Message Block), CIFS (Common Internet File System), NFS, AFP і деякі інші залежно від типу серверної ОС. Зокрема, таке сховище може бути реалізовано у формі мережевого сховища NAS (Network-attached storage), що забезпечує одночасний доступ до даних для різних видів клієнтів. Його особливістю є використання для зберігання даних спеціальних наборів hdd-дисків, скомпонованих у вигляді логічних надлишкових контейнерів або RAID-масивів. Спільний доступ до файлів також може бути організовано із зовнішньої мережі, зокрема глобальної. Для цього слід зробити відповідне налаштування мережі, яке буде розглянуто нижче.

Центр автоматизації. Тут ваш комп'ютер виконує роль центрального концентратора і забезпечує «безшовну» інтеграцію всіх цифрових пристроїв будинку в єдину інтелектуальну мережу. Сюди, наприклад, можуть входити датчики для збору інформації про температурні та інші фізичні показники стану простору будинку, пристрої відеоспостереження, засоби керування освітленням, дистанційно керовані антени та багато іншого обладнання. Пристрої можуть автоматично підключатися до мережі, наприклад, шляхом завантаження з образів hdd-дисків, що зберігаються на сервері, або якимось іншим способом залежно від використовуваної технології. Як спеціальне серверне ПЗ тут можуть бути застосовані такі програмні компоненти, як Gladys або Home Assistant, що реалізують відому стратегію управління електронними приладами на основі одноплатних комп'ютерів SBC.

Центр запуску застосунків дає змогу спростити й автоматизувати процес запуску застосунків, що мають як завгодно складні програмні залежності. Це реалізується за допомогою технологій контейнеризації, наприклад, таких як Docker Compose і Kubernetes, які дають змогу повністю автоматизувати процес запуску та управління контейнером із застосунком. Список «упакованих» у контейнер додатків можна знайти, наприклад, на Awesome Selfhosted і завантажити на свою машину.

BitTorrent.  Домашні «центри управління» якнайкраще підходять для організації завантаження і роздачі файлів за допомогою протоколу BitTorrent. Через постійне включення в мережу вони в змозі обробити будь-який торрент, незалежно від розміру файлу і відповідно, тривалості процесу і пропускної здатності каналу передачі. Серед найбільш часто використовуваного ПЗ виділяються веб-клієнт TorrentFlux і текстовий клієнт rTorrent.

IRC-сервіс. Цілодобова робота IRC-клієнта на сервері дасть змогу здійснювати безперервний запис усіх дій, що відбуваються в чаті, за фізичної відсутності користувача. У цьому разі як IRC-клієнт може бути застосована спеціальна кросплатформна версія Quassel IRC. Крім того, домашня машина може бути використана для запуску IRC і XMPP-серверів, здатних працювати за малої пропускної здатності каналу передачі.          

Підбір апаратної конфігурації ПК

Апаратна конфігурація домашнього «центру управління» безпосередньо залежатиме від завдань, які перед ним ставлять, тобто від обраних ролей сервера для вашої домашньої мережі, про що вже йшлося вище. Однак можна виділити найбільш загальні вимоги, яким повинні задовольняти більшість серверних комп'ютерів:

Ємність сховища визначає можливості комп'ютера зі зберігання даних. Цей параметр потрібно розраховувати заздалегідь, виходячи з обраної ролі, а також з розрахунком на майбутнє масштабування. Наприклад, для центрів автоматизації та IRC-сервісів його значення буде мінімальним і може становити до 512 ГБ на SSD-дисках. У разі централізованих сховищ параметр матиме найбільше значення, що становить близько десятків і навіть сотень ТБ. Для реалізації NAS знадобиться підключення RAID-масивів на hdd-дисках.

Пропускна здатність сервера безпосередньо залежить від наявних на корпусі роз'ємів для підключення до каналів передавання даних і можливостей маршрутизатора. Наприклад, для медіацентру або веб-хостингу значення цього параметра найкритичніше, і тому необхідна наявність Gigabit Ethernet із пропускною спроможністю до 10 Гбіт/с. Для медіацентру також можливе використання дводіапазонного каналу WiFi 5.

Рівень продуктивності визначає обчислювальні можливості комп'ютера і безпосередньо впливає на швидкість обробки даних. Що він вищий, то швидше виконуються всі дії - читання, запис, передача, відображення, відтворення тощо. Параметр найбільш критичний для ігрового ПК і медіацентру, але важливий і для інших застосувань.        Визначальними факторами тут є тактова частота ЦП, кількість ядер, а також ємність ОЗП або RAM-пам'яті.

Вони можуть мати такі приблизні значення:

Рівень шуму є типовою характеристикою будь-якого електронно-механічного пристрою. У нашому випадку цей параметр найбільш важливий, оскільки передбачається робота сервера в режимі 24/7, а значить, він повинен мати мінімальне значення. Рівень шуму стандартного ПК становить від 30 до 40 дБ, дуже тихого - від 24 до 30 дБ. Отже, для домашнього сервера він має бути не більше 30 дБ. Тільки в цьому разі ви не будете відчувати дискомфорту у власному будинку. Щоб цього домогтися, потрібна оптимізація ПК, наприклад, заміна кулерів або придбання безкулерного ПК, побудованого, наприклад, на масляній системі охолодження.

Енергоефективність може стати «наріжним каменем» при виборі ПК, оскільки багато в чому визначає ресурсовитратність сервера. Це пов'язано з постійним зростанням цін на енергоресурси і відсутністю реальної альтернативи домашній електромережі. ДБЖ і акумулятори здатні лише на короткий час забезпечити енергоспоживання ПК, а весь інший час - від мережі. Виходом із ситуації може бути використання порівняно малопотужного комп'ютера, що має необхідний рівень продуктивності та технологічності. Також може допомогти вимкнення монітора, що зазвичай і робиться для багатьох видів серверів.

Таким чином, можна зробити висновок про доцільність використання цифрового пристрою, що має компромісні значення розглянутих параметрів. Наприклад, це може бути міні-ПК, нетбук або одноплатний SBC-комп'ютер залежно від обраної для сервера ролі.

Останнім часом для домашніх серверів дедалі частіше використовуються саме SBC-комп'ютери, зібрані на базі процесорів ARM з 32-х розрядною RISC архітектурою. Це дає змогу отримати гнучку платформу з високою продуктивністю і низьким енергоспоживанням. Реалізацією такого підходу може бути, наприклад, одноплатний SBC-комп'ютер типу Raspberry Pi зі встановленими на ньому ПЗ для забезпечення роботи сервера в режимі автоматизації - Gladys або Home Assistant.

Також можна вказати деякі готові рішення, оптимізовані для використання в якості домашнього «центру управління». Наприклад, це комп'ютери GEEKOM Mini IT12 і GEEKOM A5 Mini PC (див. скрін). Перший з них орієнтований на організацію файлових сховищ з можливістю розширення їхньої ємності до 2 ТБ SSD-накопичувача. Другий комп'ютер більше підходить для виконання повсякденних завдань і має такі характеристики:

AMD Ryzen 7 5825U(8C/16T, up to 4.5GHz)
16 GB DDR4 RAM
512 GB SSD
Windows 11 Pro Desktop

Вибір ОС

Операційна система виконує функції сполучної ланки між апаратною частиною і прикладними програмами, а також надає інтерфейс для керування комп'ютером. Її робота багато в чому визначає такі характеристики ПК, як допустимий рівень затримки, надмірність, час відмови тощо. Використання серверних ОС дає змогу поліпшити ці характеристики і, відповідно, оптимізувати роботу ПК. Усі види відомих ОС мають серверні версії, тому саме вони мають стати основою для домашнього сервера. Єдиною умовою тут є повна сумісність апаратної платформи ПК з обраною ОС.

Для тих, хто шукає зручний спосіб розгорнути домашній або віддалений сервер, чудовим рішенням стане VPS/VDS - ви отримуєте повний контроль над системою, високу продуктивність і гнучкість налаштування без зайвих витрат.

Розглянемо найвідоміші, а також спеціальні види ОС, які потенційно можуть бути використані як серверна операційна система:

Ubuntu Server - найбільш простий і економічний варіант серед Linux-подібних ОС. Забезпечує широку доступність пакетів і належний рівень безпеки. Головна перевага - гнучкість, простота і ресурсоємність. Найбільш підходить для організації обміну файлів, веб-хостингу та запуску програм.

Debian - класичний варіант для серверної ОС, що вирізняється стабільністю роботи, великим репозиторієм програм і драйверів, повнотою документації, безпекою. Підходить для широкого спектра серверних додатків, включно з серверними розгортаннями.

CentOS - базується на Red Hat Enterprise Linux і вирізняється надійністю, безпекою, великим рівнем сумісності з прикладним ПЗ, тривалою підтримкою. Найбільш підходить для серверів баз даних і веб-обслуговування.

Windows Server - дорога платформа з добре відомим інтерфейсом. Має великі можливості, але потребує великих ресурсів для своєї роботи. Може підійти для організації ігрового сервісу. Дає можливість використовувати настроювані сценарії входу і переміщувані профілі для всіх користувачів домену, а також керувати доменом.

TrueNAS CORE (FreeNAS) - спеціалізована безоплатна ОС з відкритим кодом, заснована на ОС FreeBSD. Призначена для організації роботи мережевих сховищ NAS.

Linux-подібна ОС + Samba. Пакет Samba дає можливість працювати з файлами різнорідним клієнтам за протоколом SMB. Рішення дає можливість керувати доменом так само, як це реалізовано у всіх продуктах Windows Server, забезпечуючи при цьому сумісність різних клієнтських ОС у межах однієї мережі. При цьому ресурсоємність буде значно вищою порівняно з Windows.

Windows Home Server (Quattro) - створена на базі Windows Server 2003 R2. Призначена для домашніх серверів, що працюють за DLNA-протоколами. Через наявність компонента Media Center Edition підходить для створення медіацентру, що забезпечує потокову інтерактивну взаємодію з багатьма видами медіа-пристроїв. Підтримку припинено з 08.01.2013р

LinuxMCE - спеціалізована ОС на базі ОС Kubuntu. Призначена для організації домашнього медіацентру за аналогією з Media Center Edition у Windows. Працює з DLNA, VideoLAN, SlimServer, MythTV, Asterisk та іншими технологіями. Підходить для телефонії, автоматизації, створення домашнього кінотеатру. Усі підключені до мережі пристрої можуть завантажуватися з образів hdd-дисків.

macOS Server - опціонально включає PS3 Media Server, Elgato і iTunes, що дають змогу побудувати повноцінний медіасервіс для роботи з потоковим медіаконтентом. Підходить виключно для апаратної платформи Mac.

Само собою, після встановлення та розгортання операційної системи починається етап розгортання додатків, згідно з обраними для сервера ролями. Для прикладу, характеристики одного з них наведено нижче.Plex (див. скрін) - клієнт-серверний додаток для медіаплеєрів. Має серверну і клієнтську частини, а також центральний сервер для зберігання облікових даних користувача сервісу. Сумісний з усіма популярними ОС, NVIDIA SHIELD, NAS-пристроями Drobo, Synology та ін.

Налаштування мережі

Налаштування домашньої мережі можна проводити в такому порядку:

  1.  Підключити ПК до домашньої мережі за допомогою кабелю Ethernet або підключення Wi-Fi;
  2.  Дізнатися статичну IP адресу ПК, ввівши в командному рядку ifconfig (Linux) або ipconfig (Windows). Адреса має бути приблизно такою: 192.168.5.1;
  3.  Прописати отриману адресу ПК в інтерфейсі управління маршрутизатором у розділі Static IP Addresses;
  4. Перезапустити сервер;
  5.  Перевірити підключення, ввівши в командному рядку ПК команду ping.

У разі, якщо планується мати доступ до сервера із зовнішньої мережі, в інтерфейсі управління маршрутизатором додатково слід налаштувати переадресацію портів, за якої весь зовнішній трафік, що надсилається на ваш публічний IP, буде переводитися на порт сервера домашньої мережі, забезпечуючи тим самим належний рівень захисту.

Організація віддаленого доступу

Віддалений доступ до домашнього сервера насамперед необхідний для здійснення його віддаленого адміністрування та налаштування. Для цих цілей існує безліч рішень, що мають різну технологічну основу. Наведемо найвідоміші з них

Безпека

Для забезпечення належного рівня безпеки домашньої мережі слід вжити низку заходів, до яких, зокрема, належать:

Серед додаткових заходів безпеки можна виділити такі:

Моніторинг

Моніторинг стану сервера і домашньої мережі є невід'ємною частиною процесу її обслуговування і супроводу. Для цих цілей можна використовувати один з безлічі програмних моніторів, що працюють під підтримуваною ними ОС.

Для ОС Windows, наприклад, найбільше підходять такі засоби, як Microsoft Network Monitor (Netmon) і умовно-безкоштовний монітор PRTG Network Monitor. Останній із них забезпечує такі функції контролю та управління (див. скрін):

 Для Unix-подібних систем розроблено велику кількість засобів моніторингу мереж, одні з яких розраховані на роботу з командним рядком (IPTraf, cbm, bmon, iftop, nload), інші підтримують GUI-інтерфейс і дають більш наочні результати моніторингу розподіленої системи. Серед останніх можна виділити Zabbix і Nagios Core (див. скріни нижче). ниже).

Інтерфейси програм і наведені результати моніторингу дають певне уявлення про їхні можливості з аналізу мережевого трафіку і параметрів розподіленої системи.