Обзор альтернативных прошивок для домашних роутеров

Обзор альтернативных прошивок для домашних роутеров

kartinka-obzor-alternativnyh-proshivok-dlya-domashnih-routerov

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

 

 

ВВЕДЕНИЕ

SOHO-роутеры у большинства обычных пользователей, как правило, ставятся по принципу «настроил и забыл». Основное их предназначение в раздаче интернета для домашней сети, однако в отдельных случаях возникает необходимость в чем-нибудь более экзотическом, к примеру — в файловом сервере. В стандартных прошивках таких возможностей может и не быть. Но, поскольку ПО абсолютного большинства современных марщрутизаторов для домашнего использования (кроме, быть может, Huawei, где используется ОС собственной разработки) основано на ядре Linux, а некоторые фирмы в свое время даже открыли часть исходников, не исключено, что для твоего роутера существуют и кастомные прошивки, в одной из которых может найтись столь желанная возможность — как знать? А если даже и не найдется, то при некоторых усилиях ты можешь эту возможность добавить самостоятельно.

На данный момент наиболее популярными прошивками считаются следующие:

•    OpenWrt (https://openwrt.org) — пожалуй, самая известная из альтернативных прошивок. Возможности ее включают, например, ФС с функцией записи (как правило, реализуется путем создания раздела jffs2 и использования overlayfs для объединения со squashfs), пакетный менеджер opkg с репозиторием, в котором более 3000 пакетов, и способностью использовать внешний накопитель для увеличения свободного пространства в /. При этом основная часть прошивки очень маленькая. Фактически это даже не прошивка, а полноценный дистрибутив для роутеров с соответствующими возможностями.

•    DD-WRT (www.dd-wrt.com) — тоже достаточно популярная прошивка. В отличие от предыдущей, заточена для тех, кто не хочет ковыряться в конфигурационных файлах, устанавливать программы… Разумеется, там есть возможность это сделать, но придется столкнуться с некоторыми затруднениями.

•    Прошивка от Олега (oleg.wl500g.info). В основном предназначена для роутеров Asus. Отличается, по мнению некоторых, довольно неплохой поддержкой принтеров и достаточно странной на первый взгляд системой сохранения файлов в прошивке — после каждого изменения файловой системы необходимо давать две-три команды.

•    Tomato (polarcloud.com/tomato) предназначена для роутеров на чипе Broadcom. Одно из преимуществ данной прошивки — при обновлении сохраняется старая конфигурация.

LibreWRT (librewrt.org) — совершенно свободная прошивка от FSF. Как водится, отпочковалась от OpenWrt и практически ничем, кроме отсутствия проприетарных драйверов, от последней не отличается. Примечательна тем, что из-за нее FSF немного изменил свои принципы: если до этого одним из условий «свободы» была необходимость иметь возможность компиляции приложения на том же устройстве, на котором оно запускается, то теперь это необязательно.

Разумеется, в списке упомянуты не все прошивки, но их настолько много, что всех и не упомнишь. Далее будет рассмотрена прошивка роутера TP-LINK TL-WDR4300 и прошивку OpenWrt, как наиболее гибкую.

УСТАНОВКА И НАЧАЛЬНАЯ КОНФИГУРАЦИЯ OPENWRT

Первым делом необходимо прошить роутер. В моем случае в этом не было ничего сложного, главное — выбрать правильный вариант прошивки. Для этого необходимо внимательно смотреть на название — для обновления со стоковой прошивки TP-LINK я использовал файл openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin. В названии закодированы семейство чипсетов (ar71xx), конфигурация ядра (generic), название и версия аппаратной части роутера, тип ФС и для какой именно цели предназначен образ — прошивка с нуля (factory) или обновление существующей OpenWrt (sysupgrade). Ни в коем случае не используй sysupgrade для установки со стоковой прошивки — так ты просто превратишь роутер в кирпич. И вообще, поскольку для каждого роутера все индивидуально, читай внимательно соответствующий сайт.

Прошивка TP-LINK TL-WDR4300 из «родного» firmware

Но вот ты прошил wi-fi роутер и при этом умудрился его не окирпичить. Заходи по Telnet (адрес по умолчанию 192.168.1.1) и настраивай WAN. У меня он довольно долго не подключался, и пришлось разбираться с этим вопросом. Оказалось, что некоторые провайдеры (в частности, ТТК, к которому я подключен), кроме проверки по MAC-адресу, требуют еще и совпадения с этим MAC-адресом ClientID.

В итоге я использовал следующие команды (здесь и далее в статье, чтобы не путаться, где именно исполнять команды — на компе или на роутере, роутер будет обозначаться как openwrt#):

WARNING

Будь внимателен!

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

openwrt# uci set network.wan.proto=dhcp openwrt# uci set network.wan.broadcast=1 openwrt# uci set network.wan.macaddr=-j 09:aa:bb:cc:dd:ee openwrt# uci set network.wan.clientid=^ 0109aabbccddee openwrt# uci commit network openwrt# /etc/init.d/network restart

UCI (United Configuration Interface) представляет собой попытку сделать унифицированные файлы (и средства) конфигурации. Все настройки UCI хранятся в каталоге /etc/config. Для тех служб, которые используют свои файлы конфигурации, скрипты OpenWrt при запуске генерируют их на основе шаблона и файла UCI — так, например, сделано с Samba. Да, возможно, это уменьшает гибкость, зато в большинстве случаев упрощается конфигурирование тех или иных параметров, путем ли редактирования файлов конфигурации (с использованием vi) или же используя утилиту uci.

Вернемся к командной строке. Что делают первые три команды, в общем-то, ясно: первая устанавливает протокол (возможно выбрать статический IP, PPP, PPPoE, L2TP и еще несколько менее используемых вариантов), вторая устанавливает флаг broadcast в пакете dhcp, третья устанавливает MAC-адрес для интерфейса. Четвертая команда устанавливает поле ClientID в пакете dhcp (option 61) равным MAC-адресу. Последние две команды используются для сохранения изменений и перезапуска сети.

После этого (и после обязательной проверки работоспособности) я бы посоветовал поставить веб-интерфейс, так как базовые настройки с ним реально проще рулить. Для OpenWrt таковых существует как минимум две. Поставим LuCI — де-факто стандартный веб-интерфейс:

openwrt# opkg update openwrt# opkg install luci

openwrt# /etc/init.d/uhttpd enable openwrt# /etc/init.d/uhttpd start

И ставим пароль root.

openwrt# passwd

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

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

СОЗДАНИЕ  EXTROOT

Extroot необходим для того, чтобы у wi-fi роутера было больше свободного места, — разумеется, за счет подключения внешнего накопителя, такого как флешка. Существует два типа создания extroot — перемещая на накопитель только оверлей и перемещая корень целиком. Сказать по правде, во втором варианте смысла мало — оверлей в роутере в любом случае используется, поэтому будем разбирать первый метод. Но и у него есть две версии. Поскольку я рассматриваю наиболее свежую стабильную версию OpenWrt, то и способ тоже будет соответствовать. На более старых ревизиях он, однако, может не работать. Ставим пакеты:

openwrt# opkg update

openwrt# opkg install block-mount kmod-usb-storage kmod-scsi-generic kmod-fs-ext4 e2fsprogs

Запиши текущий вывод команды mount — он тебе еще пригодится в дальнейшем.

После этого подготовь и подмонтируй флешку (ее ты можешь отформатировать в ext3 как на настольном Linux, так и в самом OpenWrt) и клонируй на нее текущий оверлей:

openwrt# mkdir /mnt/flash_overlay openwrt# mount /dev/sda1 /mnt/flash_overlay openwrt# tar -C /overlay -cvf — . | tar -C ^ _/mnt/flash_overlay -xf -_

Только после этого ты можешь редактировать файл /etc/ config/fstab, записывая в него параметры для использования extroot:

<…>

config mount

После этого перезагрузись.

Если тебе необходимо вернуть все обратно, ты находишь в ранее записанном выводе команды mount оригинальное устройство с оверлеем, монтируешь его и ставишь в файле etc/config/fstab на смонтированном старом оверлее option enabled в 0.

КАЧАЕМ ТОРРЕНТЫ И НАСТРАИВАЕМ SAMBA

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

openwrt# opkg update

openwrt# opkg install samba36-client w samba36-server luci-app-samba openwrt# rm /tmp/luci-indexcache

В задачи статьи не входит детальное описание настройки Samba, а с веб-интерфейсом ты способен разобраться и сам. Несколько замечаний, однако, стоит сделать.

Во-первых, на вкладке Edit template вместо «security = user» стоит написать (хотя бы для начала) «security = share», во-вторых — дай гостевой доступ к расшаренным папкам, в-третьих — смени владельца расшариваемого каталога на nobody и, наконец, не забудь запустить саму службу:

openwrt# /etc/init.d/samba enable openwrt# /etc/init.d/samba start

Теперь перейдем к настройке торрент-клиента. Мы выбрали transmission — не в последнюю очередь из-за того, что он поддерживает веб-интерфейс. Установка стандартна:

openwrt# opkg update

openwrt# opkg install transmission-daemon «-■ transmission-web

Рассмотрим наиболее важные опции файла конфигурации /etc/config/transmission:

config transmission <…>

# Включает демон_

option enabled ‘1‘_

#    Каталог генерируемого конфига_

option config_dir ‘/etc/transmission’

#    Пользователь, от которого запускается демон.

#    Поскольку гостевой пользователь Samba -_

#    nobody, то ставим его и здесь_

option user ‘nobody’_

#    Каталог хранения загруженных файлов_

option download_dir ‘/home/storage/torrents/-^ done’

#    Каталог недокачанных файлов_

option incomplete_dir ‘/home/storage/torrents/-j incompl’

<…>

После этого ставим его в автозапуск и стартуем.

openwrt# /etc/init.d/transmission enable openwrt# /etc/init.d/transmission start

Заходим в веб-интерфейс, по умолчанию находящийся на порту 9091, грузим торрент-файл и наслаждаемся.

Pages: 1 2

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *