Отдавна исках да „докосна ръцете си“ в интернет услугите, като настроя уеб сървър от нулата и го пусна в интернет. В тази статия искам да споделя моя опит в превръщането на домашен рутер от високофункционално устройство в почти пълноценен сървър.
Всичко започна с факта, че рутерът TP-Link TL-WR1043ND, който служеше вярно, вече не отговаряше на нуждите на домашната мрежа; исках честотна лента от 5 GHz и бърз достъп до файлове на устройство за съхранение, свързано към рутера . След като разгледах специализирани форуми (4pda, ixbt), сайтове с рецензии и разгледах асортимента на местните магазини, реших да закупя Keenetic Ultra.
Добрите отзиви от собствениците работят в полза на това конкретно устройство:
няма проблеми с прегряването (тук трябваше да изоставим продуктите на Asus);
оперативна надеждност (тук зачеркнах TP-Link);
лесен за настройка (уплаших се, че не мога да се справя и зачеркнах Microtik).
Трябваше да се примиря с недостатъците:
няма WiFi6, исках да взема оборудване с резерв за бъдещето;
4 LAN порта, исках повече, но това вече не е домашна категория.
В резултат на това получихме този „сървър“:
отляво е оптичният терминал на Ростелеком;
вдясно е нашият експериментален рутер;
2 GB m.128 SSD, разположен наоколо, поставен в USB3 кутия от Aliexpress, е свързан към рутера с кабел, сега е спретнато монтиран на стената;
на преден план е удължителен кабел с независимо изключени гнезда, проводникът от него отива към евтин UPS;
на заден план има куп кабели с усукана двойка - на етапа на обновяване на апартамента веднага планирах гнезда RJ45 на местата, където трябваше да се намира оборудването, за да не зависи от разхвърлянето на WiFi.
И така, имаме оборудването, трябва да го конфигурираме:
Първоначалната настройка на рутера отнема около 2 минути, посочваме параметрите на връзката към доставчика (моят оптичен терминал е превключен в режим на мост, PPPoE връзката повдига рутера), името на WiFi мрежата и паролата - общо взето това е , рутерът стартира и работи.
Задаваме пренасочване на външни портове към портовете на самия рутер в раздела „Мрежови правила - Пренасочване“:
Сега можем да преминем към „разширената“ част, това, което исках от рутера:
функционалност на малък NAS за домашна мрежа;
изпълнява функции на уеб сървър за няколко частни страници;
персонална облачна функционалност за достъп до лични данни от всяка точка на света.
Първият се изпълнява с помощта на вградени инструменти, без да изисква много усилия:
Взимаме устройство, предназначено за тази роля (флашка, карта с памет в четец на карти, твърд диск или SSD във външна кутия и го форматираме в Ext4 с помощта на MiniTool Partition Wizard Безплатно издание (Нямам компютър с Linux под ръка, възможно е с вградени инструменти). Доколкото разбирам, по време на работа системата пише само логове на флашката, така че ако ги ограничите след настройка на системата, можете да използвате и карти с памет, ако смятате да пишете много и често на устройството - SSD или HDD е по-добър.
След това свързваме устройството към рутера и го наблюдаваме на екрана на системния монитор
Кликнете върху „USB устройства и принтери“ в секцията „Приложения“ и конфигурирайте споделянето в секцията „Мрежа на Windows“:
И имаме мрежов ресурс, който може да се използва от компютри с Windows, свързвайки се като диск, ако е необходимо: net use y: \192.168.1.1SSD /persistent:yes
Скоростта на такъв импровизиран NAS е напълно достатъчна за домашна употреба, по кабел използва целия гигабит, през WiFi скоростта е около 400-500 мегабита.
Настройването на хранилище е една от необходимите стъпки за конфигуриране на сървъра, след което се нуждаем от:
- купете домейн и статичен IP адрес (можете да направите и без това, като използвате Dynamic DNS, но аз вече имах статичен IP, така че се оказа по-лесно за използване безплатни услуги на Yandex - като делегирате домейна там, получаваме DNS хостинг и поща на нашия домейн);
Отнема няколко часа, докато настройките за делегиране на домейн и DNS влязат в сила, така че едновременно настройваме рутера.
Първо, трябва да инсталираме хранилището на Entware, от което да инсталираме необходимите пакети на рутера. Аз се възползвах тази инструкция, просто не е качил инсталационния пакет чрез FTP, а е създал папка директно на свързаното преди това мрежово устройство и копира файла там по обичайния начин.
След като получите достъп чрез SSH, променете паролата с командата passwd и инсталирайте всички необходими пакети с командата opkg install [имена на пакети]:
По време на настройката следните пакети бяха инсталирани на рутера (изход от командата opkg list-installed):
Може би тук имаше нещо излишно, но на устройството имаше много място, така че не си направих труда да го разглеждам.
След като инсталираме пакетите, конфигурираме nginx, пробвах го с два домейна - втория е конфигуриран с https, и за сега има пънче. Използват се вътрешни портове 81 и 433 вместо 80 и 443, тъй като административният панел на рутера виси на нормалните портове.
За да може сайтът да работи през https, използвах добре познатия дехидратиран скрипт, като го инсталирах с тази инструкция. Този процес не създаде никакви затруднения, само се натъкнах на факта, че в текста на скрипта за работа на моя рутер трябва да коментирате реда във файла /opt/etc/ssl/openssl.cnf:
[openssl_conf]
#engines=engines
И отбелязвам, че генерирането на dhparams.pem с командата „openssl dhparam -out dhparams.pem 2048“ на моя рутер отнема повече от 2 часа, ако не беше индикаторът за напредък, щях да изгубя търпение и да рестартирам.
След като получите сертификатите, рестартирайте nginx с командата „/opt/etc/init.d/S80nginx restart“. По принцип настройката е завършена, но все още няма уебсайт - ако поставим файла index.html в директорията /share/nginx/html, ще видим мъниче.
За да постави информация красиво, за непрофесионалист като мен е по-лесно да използва готови шаблони; след дълго търсене в различни каталози открих templatemo.com - има добра селекция от безплатни шаблони, които не изискват приписване (което е рядкост в интернет; повечето от шаблоните в лиценза изискват да запазите връзка към ресурса, от който са получени).
Избираме подходящ шаблон - има такива за различни случаи, изтеглете архива и го разопаковайте в директорията /share/nginx/html, можете да направите това от вашия компютър, след което редактирайте шаблона (тук ще ви трябват минимални познания на HTML, за да не нарушите структурата) и заменете графиките, както е показано на фигурата по-долу.
Резюме: рутерът е доста подходящ за хостване на лек уебсайт на него, по принцип - ако не се очаква голямо натоварване, можете инсталирайте и php, и експериментирайте с по-сложни проекти (гледам nextcloud/owncloud, май има успешни инсталации на такъв хардуер). Възможността за инсталиране на пакети увеличава неговата полезност - например, когато беше необходимо да защитя RDP порта на компютър в локална мрежа, инсталирах knockd на рутера - и препращането на порт към компютъра беше отворено само след почукване на порта.
Защо рутер, а не обикновен компютър? Рутерът е един от малкото компютърни хардуерни части, които работят денонощно в много апартаменти; домашният рутер обикновено е абсолютно безшумен и лек сайт с по-малко от сто посещения на ден изобщо няма да го притеснява.