Как настроить домашний сервер через роутер

Размещаем сайт на домашнем роутере

Мне давно хотелось «потрогать руками» интернет-сервисы, настроив веб-сервер с нуля и выпустив его в Интернет. В этой статье хочу поделиться полученным опытом превращения домашнего роутера из узкофункционального устройства в практически полноценный сервер.

Началось всё с того, что служивший верой и правдой роутер TP-Link TL-WR1043ND перестал удовлетворять потребности домашней сети, захотелось 5ГГц диапазона и быстрого доступа к файлам на накопителе, подключенном к роутеру. Просмотрев профильные форумы (4pda, ixbt), сайты с отзывами и посмотрев на ассортимент местных магазинов — решил приобрести Keenetic Ultra.

В пользу именно этого устройства сработали хорошие отзывы владельцев:

  • отсутствие проблем с перегревом (тут пришлось отказаться от продукции Asus);
  • надежность в работе (тут вычеркнул TP-Link);
  • простота в настройке (побоялся не справиться и вычеркнул MikroTik).

Пришлось примириться с минусами:

  • нет WiFi6, хотелось взять оборудование с запасом на будущее;
  • 4 LAN порта, хотелось больше, но это уже не домашняя категория.

В итоге получилась вот такая «серверная»:

  • слева оптический терминал Ростелекома;
  • справа наш подопытный роутер;
  • проводом к роутеру подсоединен завалявшийся m.2 SSD на 128 ГБ, помещенный в коробку USB3 с алиэкспресса, сейчас он аккуратно закреплен на стенке;
  • на переднем плане удлинитель с независимым отключением розеток, провод от него идет к недорогому UPS;
  • на заднем плане пучок витой пары — на этапе ремонта квартиры сразу запланировал RJ45 розетки в местах предполагаемого размещения техники, чтобы не зависеть от замусоренности WiFi.

Итак, у нас есть оборудование, необходимо его настроить:

  • первичная настройка роутера занимает около 2 минут, указываем параметры подключения к провайдеру (у меня оптический терминал переключен в режим бриджа, PPPoE соединение поднимает роутер), название WiFi сети и пароль — в принципе всё, роутер запускается и работает.

Ставим переадресацию внешних портов на порты самого роутера в разделе «Сетевые правила — Переадресация»:

Теперь можно перейти к «продвинутой» части, чего я хотел от роутера:

  1. функционал небольшого NAS для домашней сети;
  2. выполнение функций веб-сервера для нескольких частных страничек;
  3. функционал персонального облака для доступа к личным данным из любой точки мира.

Первое реализуется встроенными средствами, не требуя особых усилий:

  • берем предназначенный для этой роли накопитель (флешку, карту памяти в картридере, жесткий диск или SSD во внешнем боксе и форматируем в Ext4 с помощью MiniTool Partition Wizard Free Edition (у меня нет компьютера с linux под рукой, там можно встроенными средствами). Как я понимаю, при работе система пишет на флешку только логи, поэтому, если их ограничить после настройки системы — можно использовать и карты памяти, если планируете много и часто писать на накопитель — лучше SSD или HDD.

После этого подключаем накопитель к роутеру и наблюдаем его на экране системного монитора

Переходим щелчком по «USB-диски и принтеры» в раздел «Приложения» и настраиваем общий ресурс в разделе «Сеть Windows»:

И у нас имеется сетевой ресурс, который можно использовать с компьютеров под Windows, подключив при необходимости как диск: net use y: \\192.168.1.1\SSD /persistent:yes

Скорость такого импровизированного NAS вполне достаточна для домашнего применения, по проводу он использует весь гигабит, по WiFi скорость составляет около 400-500 мегабит.

Настройка хранилища — один из необходимых шагов для настройки сервера, далее нам нужно:
— приобрести домен и статический IP адрес (можно обойтись и без этого, используя Dynamic DNS, но статический IP у меня уже был, поэтому проще оказалось воспользоваться бесплатными сервисами Яндекса — делегировав туда домен, мы получаем DNS-хостинг и почту на своем домене);

— настроить DNS сервера и добавить A-записи, указывающие на ваш IP:

Вступление в силу настроек делегирования домена и DNS занимает несколько часов, поэтому параллельно занимаемся настройкой роутера.

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

Читайте также:  Как правильно настроить автоворонку

Получив доступ по SSH, меняем пароль командой passwd и ставим командой opkg install [имена пакетов] все нужные пакеты:

В ходе настройки на роутере оказались установлены следующие пакеты (результат вывода команды opkg list-installed):

Возможно, тут что-то лишнее затесалось, но места на накопителе много, поэтому разбираться не стал.

После установки пакетов настраиваем nginx, я пробовал с двумя доменами — на втором настроен https, и пока висит заглушка. 81 и 433 внутренние порты вместо 80 и 443 используются, поскольку на нормальных портах висят админки роутера.

Для того, чтобы сайт работал по https, воспользовался известным скриптом dehydrated, установив его по этой инструкции. Затруднений этот процесс не вызвал, запнулся только на том, что в тексте скрипта для работы на моем роутере надо закомментировать строчку в файле /opt/etc/ssl/openssl.cnf:

И отмечу, что генерация dhparams.pem командой «openssl dhparam -out dhparams.pem 2048» на моем роутере занимает больше 2 часов, если бы не индикатор прогресса — потерял бы терпение и перезагрузил.

После получения сертификатов перезапускаем nginx командой «/opt/etc/init.d/S80nginx restart». В принципе на этом настройка закончена, но сайта еще нет — если положим в каталог /share/nginx/html файл index.html, увидим заглушку.

Чтобы разместить информацию красиво, непрофессионалу типа меня проще воспользоваться готовыми шаблонами, после долгого перебора различных каталогов нашел templatemo.com — там неплохой выбор бесплатных шаблонов, не требующих обязательного указания авторства (что редкость в интернете, большая часть шаблонов в лицензии требуют сохранить ссылку на ресурс, откуда они получены).

Выбираем подходящий шаблон — там есть на самые разные случаи, скачиваем архив, и раcпаковываем его в каталог /share/nginx/html, делать это можно уже со своего компьютера, затем редактируем шаблон (тут потребуются минимальные знания HTML, чтобы не нарушить структуру) и заменяем графику, как показано на рисунке ниже.

Резюме: роутер вполне пригоден для размещения на нем легкого сайта, в принципе — если не предполагается большой нагрузки, можно поставить и php, и экспериментировать с более сложными проектами (смотрю на nextcloud/owncloud, вроде есть успешные установки на такое железо). Возможность установки пакетов поднимает его полезность — например, когда надо было защитить RDP порт ПК в локальной сети, поставил knockd на роутер — и проброс порта к ПК открывался только после port knocking.

Почему именно роутер, а не обычный PC? Роутер — одна из немногих компьютерных железяк, круглосуточно работающих во многих квартирах, домашний роутер обычно абсолютно бесшумен и легкий сайт с числом посещений в сутки меньше сотни его совершенно не напряжет.

Источник

Домашний веб-сервер, или сам себе хостинг-провайдер

Для того, чтобы сделать свой веб-сервер дома, нам понадобится компьютер и постоянный доступ в интернет с внешним IP-адресом, как это проверить описано дальше.

Делать сервер буду из старого нетбука Samsung N102SP со сломанной клавиатурой, для небольших нагрузок его вполне достаточно, к тому же он маленький и совсем не шумит. Интернет дома у меня раздаётся wifi роутером tp-link TL-WR840N, через него и буду подключать свой сервер.

Ставить буду Centos 7, качаем отсюда минимальный образ (Minimal ISO), образ записываю на флешку с помощью программы Rufus. Теперь надо загрузить нетбук с флешки, и тут возникает первая проблема, так как клавиатура не работает, не могу войти в биос, внешнюю usb клавиатуру он не видит, сброс биоса решает проблему (в нетбуке Samsung N102SP биос сбрасывается замыканием контактов rtc reset под крышкой memory, замыкать надо на 30 секунд), выбираем в биосе приотритетную загрузку с флешки и начинаем установку, даже при минимальной версии Centos 7 устанавливается в графическом режиме. Никаких сложностей с установкой возникнуть не должно, удаляем все старые разделы на диске и отдаём все под Centos, устанавливаем пароль root и прописываем настройки сети, в моем случае подключаемся к домашней сети wifi (это можно сделать и потом с помощью команды nmtui), несколько минут и Centos 7 установлен.

Читайте также:  Почему не работает датчик давления газа

Заходим под root. Останавливем firewall командой «systemctl stop firewalld», отключаем firewall из автозагрузки командой «systemctl disable firewalld». Пока он нам не нужен, настроим firewall позже. Еще надо обязательно отключить спящий режим при закрытии крышки нетбука, для этого надо в файле /etc/systemd/logind.conf заменить строку «#HandleLidSwitch=suspend» на строку «HandleLidSwitch=ignore», затем перезапустить командой «systemctl restart systemd-logind».

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

Теперь нужно настроить wifi роутер, в случае с tplink открываем tplinkwifi.net логин и пароль по умолчанию admin, в разделе «Состояние» смотрим состояние WAN, IP адрес должен быть статическим и не должен начинаться с 192.168.х.х, 172.х.х.х, 10.х.х.х, в противном случае свяжитесь с провайдером и попросите предоставить внешний IP, скорее всего это можно сделать и через личный кабинет, мой провайдер предоставил мне IP за 90 рублей в месяц. Все новые настройки нужно прописать в разделе «Сеть/WAN». Теперь нужно зарезервировать внутренний IP адрес на роутере для нашего сервера, заходим в раздел «DHCP/Список клиентов DHCP» и находим там наш сервер (чтобы узнать IP на сервере наберите команду ifconfig), после копируем MAC-адрес и переходим в раздел «DHCP/Резервирование адресов» и добавляем там MAC-адрес нашего сервера и его IP. Всё, теперь роутер всегда будет выделять для нашего сервера этот IP. Теперь надо пробросить порты, чтобы при обращении из интернета роутер отправлял запросы на домашний веб-сервер, заходим в раздел «Переадресация/Виртуальный сервер» и добавляем 80 порт. Также добавляем 22 порт, чтобы можно было подключаться к серверу через ssh. У меня при добавлении 80 порта возникала ошибка «Порт удалённого управления веб-интерфейсом конфликтует с портом виртуального сервера». Чтобы этого избежать предварительно изменим порт удалённого управления на 8080, для этого откроем вкладку «Защита/Удалённое управление». Теперь управление роутером доступно по адресу tplinkwifi.net:8080/

Для удалённого управления веб-сервером качает утили Putty с www.chiark.greenend.org.uk/

Теперь для полнофункционнальной работы веб-сервера установим необходимые компоненты, первым делом подключим репозиторий Epel, там есть практически всё необходимое для автоматической установки, вводим команду «yum install epel-release». Затем для отслеживания состояния сервера устанавливаем htop командой «yum install htop», для удобной работы с файлами усталавливаем midnight commander, командой «yum install mc», теперь ставим Apache, для этого вводим «yum install httpd», запускаем и ставим в автозагрузку командами «systemctl start httpd» и «systemctl enable httpd», теперь установим MariaDB командой «yum install mariadb-server», аналогично запускаем и ставим в автозагрузку «systemctl start mariadb» и «systemctl enable mariadb», производим первичные настройки при помощи команды «mysql_secure_installation», устанавливаем root пароль, удаляем анонимного пользователя и тестовую базу, затем нужно устанавить PHP с необходимыми модулями «yum install php php-mysql php-common php-mbstring php-mcrypt php-devel php-xml php-gd», перезагружаем httpd командой «systemctl restart httpd». Теперь при вводе в браузере IP адреса видим приветственную страницу Apache. Корневой каталог находится в «/var/www/html/». Вот теперь наш домашний веб-сервер доступен с любой точки планеты.

Источник

Простой способ создания и использования DLNA сервера для домашнего хранилища

В последние несколько лет, когда интернет начал свое движение в сторону всё большей и большей доступности, количество разнообразного контента растёт в геометрической прогрессии, а способы его хранения явно стали нуждаться в апгрейде. Всевозможные CD- и DVD-диски оказались не только весьма подвластны времени, но и весьма ограничены в объёме; пришедшие им на смену USB flash носители были объёмнее, быстрее и универсальнее, но полностью «закрыли» вопрос выбора самого удобного способа для хранения контента внешние жёсткие диски.

Следующим этапом стала проблема универсализации, которая бы позволила не только удобно хранить фото или фильмы, но и в простом и понятном, а по возможности ещё и универсальном способе потреблять этот контент в рамках как минимум отдельно взятой квартиры. По сути, список протоколов, которые могли быть использованы для решения этой задачи, состоит из трёх пунктов: FTP, SMB и DLNA. Более всего для стриминга медиа предназначен последний.

Строго говоря, DLNA — это не протокол, а набор стандартов, которые используются для принятия и передачи различных типов мультимедийного контента. По данным Wiki, Digital Living Network Alliance ещё в далёком 2013 году насчитывал более 200 производителей оборудования, и встретить поддержку технологии в современных планшетах, телефонах, приложениях и Smart TV сейчас легко, а список поддерживаемых форматов для фото, аудио и видео просто огромен.

Читайте также:  Как настроить домашний роутер от ростелекома

С чего начать?

Самым простым способом развернуть DLNA-сервер для совместного использования дома становится связка из роутера ZyXEL (даже среднего ценового диапазона, прошлого поколения с USB портом — в конкретном случае это Keenetic Ultra) и внешнего жёсткого диска, который так или иначе есть почти у каждого. Стоит иметь ввиду, что роутер вряд ли будет стабильно работать с дисками более 2.5 ТБ, а также использование внешнего питания для диска крайне желательно.

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

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

Если же вам не нужен сервер, который будет работать в режиме 24х7 независимо от других устройств, то стоит обратить внимание на программы Home media server (только Windows), PLEX (WIndows, Mac, Unix и даже FreeBSD), KODI (ex XBMC, WIndows, Mac, Unix, FreeBSD, Android, iOS при наличии Jailbreak и даже Raspberry Pi). Помимо этого есть ещё сетевое оборудование ASUS и OpenWRT based прошивки для ряда роутеров (тут уже на свой страх и риск).

Как смотреть?

Итак, с настройкой и копированием контента всё понятно, теперь же поговорим о том, как можно смотреть всё это.

Для ноутбуков на Windows и Mac самым простым способом будет использования всеядного и широко известного плеера VLC, из пункта «протокол UPnP» виден созданный нами DLNA-сервер и доступна возможность не только просмотреть контент по категориям, но и просто по папкам.

Для iOS-устройств Apple есть множество альтернативных плееров (VLC тоже есть) с поддержкой различных протоколов, из них самым удобным является nPlayer (платная версия или бесплатная с рекламой), который позволяет не только смотреть контент, но и скачивать его на устройство, а также запоминает позицию воспроизведения. Словом, приложение классное.

Для Android-устройств задача ещё более упрощается ввиду того, что большая их часть поддерживает DLNA из коробки, для остальных можно посоветовать приложение BubbleUPnP for DLNA/Chromecast (платная версия или бесплатная с рекламой), которое позволяет работать с DLNA и открывать видео посредством любого удобного для вас плеера, включая даже системный.

Smart TV большинства производителей (в случае Samsung с самого первого поколения) достаточно только иметь подключение к сети любым способом, буквально через несколько минут после включения в списке источников появится сервер с возможностью навигации по папкам и по типу контента.

Запас прочности и использование в реальной жизни

Несмотря на простоту решения, его работа весьма стабильна, а запас прочности велик, так что можно смотреть файлы объёмом до 4-6 Гбайт. Число одновременных подключений выдерживает 3-4 устройства без каких-либо проблем с производительностью.

Даже Android-устройства среднего уровня и самые старые поколения iPhone и iPad воспроизводят видео с диска посредством DLNA без проблем с производительностью.

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

Итоги

Использование DLNA фактически не имеет альтернатив ввиду специфичности решений класса STB, весьма ощутимой цены и малого распространения HDMI-стиков под управлением Windows 10, а универсальность использования и создания DLNA-сервера с минимальными затратами на дополнительное «железо» просто бьёт в пух и прах возможные альтернативы в лице NAS.

О каких технологиях вам было бы интересно почитать в следующий раз?
Спасибо за внимание

Источник

Оцените статью