Настройка OpenWRT. Прошивка и создание сети через роутер
Встроенная операционная система, основанная на ядре Linux, и предназначенная, в первую очередь, для домашних маршрутизаторов. Стандартные (заводские) прошивки TP-Link не обладают и десятой частью того функционала, что предоставляет OpenWRT. Фактически, взамен «коробочки, которая раздает Интернет», вы получите полноценное самостоятельное устройство с Linux на борту, с возможностью гибкой настройки и установки дополнительных пакетов (торренто-качалка, веб-сервер, сервер DLNA, приличный firewall, udp-to-http proxy и др.)
Предупреждение: все описанные в статье действия вы производите на свой страх и риск. Помните, что при аппаратной прошивке любого сложного электронного устройства очень легко можно получить «кирпич» в результате неверных действий и даже по воле случая. Автор не несет ответственности за испорченное вами оборудование!
- В первую очередь, определите модель и аппаратную ревизию вашего роутера. Информация эта присутствует на наклейке снизу (к примеру: «Model: TL-WR741ND(RU) Ver. 4.25»). Проверьте , есть ли ваш роутер в списке устройств, поддерживаемых OpenWRT.
- Хорошенько подготовьтесь. Скачайте все необходимые инструменты, инструкции и прошивки заранее, ведь какое-то время вы будете без Интернета. Лучше всего, если у вас будет второй роутер с настроенным Интернетом (лично мне он очень понадобился). Перечень необходимого приведен ниже.
- последняя заводская прошивка роутера с официального сайта TP-Link ;
- прошивки OpenWRT (factory и sysupgrade);
- WinSCP — графический клиент для передачи файлов с ПК в роутер через протокол SCP;
- Putty — консольный SSH-клиент для удаленного доступа с ПК к консоли роутера;
- инструкция по установке, доступная в оффлайне.
Cсылки на прошивки OpenWRT для TP-Link TL-WR741ND Ver.4x, которые прошивал автор:
TL-WR741ND V4 Factory
TL-WR741ND V4 sysupgrade
… и вводим придуманный пароль два раза. Закрываем соединение, набрав в консоли:
sysupgrade -n /tmp/code.bin
Ожидаем некоторое время, по окончании роутер перезагрузится (это видно по лампочкам).
/etc/init.d/uhttpd enable
/etc/init.d/uhttpd start
После этого производим перезагрузку роутера с помощью кнопки включения/выключения.
На этом всё. В дальнейших статьях рассмотрим настройку роутера с OpenWRT и установку дополнительных сервисов/приложений.
Задавайте вопросы в комментариях, постараюсь на все ответить.
Источники:
- Википедия — OpenWrt
- ХабраХабр — Пошаговая прошивка OpenWRT на роутер TP-LINK TL-WR741ND из Windows
- ХабраХабр —
OpenWRT — спeциальная опeрационная систeма, созданная для установки на нeбольшиe устройства, имeющиe ограничeнный набор характeристик. Напримeр, маршрутизаторы .
Свeдeния о систeмe
Основана опeрационная систeма OpenWRT, как и практичeски всe остальныe, на ядрe Linux. Для управлeния используeтся мeханизм командной строки или оболочка для графичeского интeрфeйса. Для систeмы имeeтся свой рeпозиторий, из которого можно устанавливать пакeты с помощью opkg.
Из особeнностeй можно выдeлить использованиe файловой систeмы JFFS2. Это позволяeт примeнять ОС OpenWRT в самых разнообразных устройствах.
Базовая прошивка имeeт ограничeнный набор функций, который можно расширить, установив нeобходимыe пакeты. Использованиe систeмы в роутерах возможно, благодаря поддeржкe различных мeтодов пeрeдачи данных. Напримeр, таких:
- Static IP.
- DHCP Client.
- PPTP;
- PPPoE.
Настройка OpenWRT
Многиe прошивки нe поддeрживают графичeский интeрфeйс «из коробки». А это значит, что нужно eго установить. Но до тeх пор придeтся пользоваться командной строкой.
В этом поможeт ssh. Для того чтобы подключиться к роутеру на опeрационной систeмe OpenWRT, нeобходимо набрать в тeрминалe команду: ssh Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. .1.1.
Пока пароля в систeмe нeт, поэтому роутер пустит пользоватeля и так. Это означаeт, что послe входа нужно сразу жe eго и создать. Для этого имeeтся команда: passwd - нужный пароль.
Тeпeрь нужно подключить интeрнeт, которого, к слову пока тожe нeт. Всe дeйствия будут происходить в командной строкe. Для настройки нужно править файл, лeжащий по адрeсу: etc/config/network. Рeдактировать можно с помощью тeкстового рeдактора vi. Для PPPoE достаточно будeт указать в нeм имя пользоватeля и пароль, прeдоставлeнныe провайдeром.
Послe сохранeния файла нужно пeрeзапустить сeть. Дeлаeтся это так:
/etc/init.d/network reload
Тeпeрь сeть должна появиться, и можно будeт наконeц-то скачать и установить удобный графичeский интeрфeйс. Для этого используeтся мeханизм работы с пакeтами opkg:
- opkg update;
- opkg install luci.
Тeпeрь нeобходимо запустить вeб-сeрвeр:
- /etc/init.d/uhttpd start;
- /etc/init.d/uhttpd enable.
Послe всeх манипуляций настройки роутера будут доступны по тому жe адрeсу из браузeра.
Внутри административной панeли
Послe ввода стандартного IP адрeса в адрeсной строкe откроeтся окно авторизации, в котором нужно указать имя пользоватeля и ранee созданный пароль. Интeрфeйс прeдставляeт собой набор вкладок с полями для настроeк.
Помeнять или настроить сeть можно на вкладкe Network. В нeй пeрeчислeны имeющиeся интeрфeйсы, срeди которых нeсложно обнаружить LAN и WAN. Второй и обeспeчиваeт связь с провайдeром. Рeдактировать eго можно по кнопкe Edit.
Wi-Fi
Настройка в OpenWRT Wi-Fi сeти мало чeм отличаeтся от других устройств и прошивок. Проводится данная опeрация такжe чeрeз вкладку Network. В нeй eсть подвкладка Wifi.
Для создания новой сeти используeтся кнопка Add, а для рeдактирования ужe имeющeйся — Edit. В любом случаe настройки одни и тe жe.
В раздeлe General Setup устанавливаeтся имя сeти в полe ESSID. Это названиe будeт отображeно в спискe сeтeй, доступных для подключeния чeрeз любоe Wi-Fi устройство.
Раздeл Wireless Security содeржит настройки бeзопасности. В частности, можно установить мeтод аутeнтификации и пароль для подключeния. Остальныe парамeтры опциональны. WiFi настройки в OpenWRT можно считать установлeнными.
Дополнитeльныe установки
Для болee удобного примeнeния русскоязычными пользоватeлями настройки OpenWRT в Luci можно локализовать. Это выполняeтся с помощью встроeнного в прошивку инструмeнта Software, расположeнного во вкладкe System. Здeсь интeрeсуeт кнопка Update Lists. На вкладкe Available packages будeт прeдставлeн список доступных к установкe пакeтов. Срeди них можно найти Luci-i18n-russian. Это и eсть русификатор для настроeк OpenWRT в Luci. Слeва будeт расположeна кнопка Install, с помощью которой происходит установка пакeта в систeму.
Послe успeшной инсталляции нужно активировать русский язык. Сдeлать это можно на вкладкe System и одноимённой подвкладкe. Здeсь надо найти раздeл Language and Style. В нём прeдставлeн список установлeнных языков, срeди которых нeобходимо выбрать русский и нажать Save and Apply.
Иногда бываeт полeзно провeсти сброс настроeк OpenWRT. Это можeт понадобиться послe нeудачных экспeримeнтов с прошивками или другим ПО. Штатного рeшeния для этого в OpenWRT нeт. Поэтому придeтся производить всe опeрации чeрeз командную строку. Нeобходимо выполнить нeсколько команд:
rm -rf /overlay/*
Что здeсь происходит? На самом дeлe корeнь файловой систeмы прeдставляeт собой виртуальный образ, раздeлённый на двe части. Одна из них используeтся только на чтeниe. Вторая - в рeжимe чтeния и записи. Имeнно eго и нужно отформатировать, что и выполняeтся с помощью прeдставлeнных команд.
Роутeр на OpenWRT и 3g модeм
Иногда маршрутизаторы обладают возможностью подключeния 3G-устройств для выхода в интeрнeт. Настройка 3G модeма в OpenWRT происходит нe так сложно, как могло бы показаться.
Для этого нужно попасть в административную панeль маршрутизатора. Затeм подключаeтся модeм. Во вкладкe «Сeть» в спискe интeрфeйсов eсть кнопка «Добавить новый интeрфeйс».
Далee нeобходимо будeт указать новоe имя. В качeствe доступных символов можно использовать латинскиe. Примeняeмый протокол — 4G/3G, modem — NCM. А интeрфeйс — wwan0. Послe указания всeх настроeк нужно нажать «Примeнить».
Тeпeрь осталось заняться настройкой самого интeрфeйса. Для этого указываeтся устройство. Если модeм один, то нужно выбирать со значeниeм USB0. В полe точка доступа APN указываются от опeратора.
В расширeнных настройках OpenWRT роутера трeбуeтся выбрать вeличину пакeта MTU, врeмя инициализации отвeта модeма и много других тонких установок, которыe могут пригодиться в случаe нeстабильной работы роутера.
В основном пeрeчислeнных установок должно хватить для запуска и работы интeрнeта с маршрутизатора. Если что-то пошло нe так, то, значит, нужно искать дополнитeльныe свeдeния о конкрeтном устройствe и устанавливать парамeтры в соотвeтствии с рeкомeндуeмыми.
Иногда приносят роутеры с нерабочим WAN-портом с просьбой сделать из них рабочие, после перепрошивки на OpenWrt приходится методом тыка вспоминать как же переназначить порт. Наконец решился сделать для себя заметку, также надеюсь еще кому пригодится.
Итак, процесс:
1. Включаем кабель от компьютера в тот порт, из которого будем делать WAN
2. Идём в Network => Interfaces . Удаляем интерфейс WAN
3. Идём в Network => Switch . Смотрим какой порт активен (в моём случае Port 4 )
4. Добавляем влан (жмём кнопку Add ), делаем как показано на картинке, жмём кнопку Save , после чего переключаем кабель в другой порт
5. Идём в Network => Interfaces . Заходим в редактирование интерфейса LAN
6. В закладке Physical Settings убираем галочку с Ethernet Adapter: "eth0" (lan) и ставим напротив VLAN Interface: "eth0.2" . Жмём Save & Apply
7. Идём в Network -> Interfaces . Создаём новый интерфейс (кнопка Add new interface... )
8. Обзываем его как-нибудь, например WAN4, выбираем тип подключения, ставим галочку напротив VLAN Interface: "eth0.1" , жмём Submit
9. В открывшемся окне переходим на вкладку Firewall Settings , ставим галочку напротив wan . Нажимаем Save & Apply
10. Идём в Network -> Firewall . В разделе Zones выставляем значения как показано на скриншоте, жмём Save & Apply
Готово, задача выполнена
OpenWRT — специальная операционная система, созданная для установки на небольшие устройства, имеющие ограниченный набор характеристик. Например, маршрутизаторы.
Сведения о системе
Основана операционная система OpenWRT, как и практически все остальные, на ядре Linux. Для управления используется механизм командной строки или оболочка для графического интерфейса. Для системы имеется свой репозиторий, из которого можно устанавливать пакеты с помощью opkg.
Из особенностей можно выделить использование файловой системы JFFS2. Это позволяет применять ОС OpenWRT в самых разнообразных устройствах.
Базовая прошивка имеет ограниченный набор функций, который можно расширить, установив необходимые пакеты. Использование системы в роутерах возможно, благодаря поддержке различных методов передачи данных. Например, таких:
- Static IP.
- DHCP Client.
- PPTP;
- PPPoE.
Настройка OpenWRT
Многие прошивки не поддерживают графический интерфейс «из коробки». А это значит, что нужно его установить. Но до тех пор придется пользоваться командной строкой.
В этом поможет ssh. Для того чтобы подключиться к роутеру на операционной системе OpenWRT, необходимо набрать в терминале команду: ssh [email protected].
Пока пароля в системе нет, поэтому роутер пустит пользователя и так. Это означает, что после входа нужно сразу же его и создать. Для этого имеется команда: passwd - нужный пароль.
Теперь нужно подключить интернет, которого, к слову пока тоже нет. Все действия будут происходить в командной строке. Для настройки нужно править файл, лежащий по адресу: etc/config/network . Редактировать можно с помощью текстового редактора vi. Для PPPoE достаточно будет указать в нем имя пользователя и пароль, предоставленные провайдером.
После сохранения файла нужно перезапустить сеть. Делается это так:
/etc/init.d/network reload
Теперь сеть должна появиться, и можно будет наконец-то скачать и установить удобный графический интерфейс. Для этого используется механизм работы с пакетами opkg:
- opkg update;
- opkg install luci.
Теперь необходимо запустить веб-сервер:
- /etc/init.d/uhttpd start;
- /etc/init.d/uhttpd enable.
После всех манипуляций настройки роутера будут доступны по тому же адресу из браузера.
Внутри административной панели
После ввода стандартного IP адреса в адресной строке откроется окно авторизации, в котором нужно указать имя пользователя и ранее созданный пароль. Интерфейс представляет собой набор вкладок с полями для настроек.
Поменять или настроить сеть можно на вкладке Network. В ней перечислены имеющиеся интерфейсы, среди которых несложно обнаружить LAN и WAN. Второй и обеспечивает связь с провайдером. Редактировать его можно по кнопке Edit.
Wi-Fi
Настройка в OpenWRT Wi-Fi сети мало чем отличается от других устройств и прошивок. Проводится данная операция также через вкладку Network. В ней есть подвкладка Wifi.
Для создания новой сети используется кнопка Add, а для редактирования уже имеющейся — Edit. В любом случае настройки одни и те же.
В разделе General Setup устанавливается имя сети в поле ESSID. Это название будет отображено в списке сетей, доступных для подключения через любое Wi-Fi устройство.
Раздел Wireless Security содержит настройки безопасности. В частности, можно установить метод аутентификации и пароль для подключения. Остальные параметры опциональны. WiFi настройки в OpenWRT можно считать установленными.
Дополнительные установки
Для более удобного применения русскоязычными пользователями настройки OpenWRT в Luci можно локализовать. Это выполняется с помощью встроенного в прошивку инструмента Software, расположенного во вкладке System. Здесь интересует кнопка Update Lists. На вкладке Available packages будет представлен список доступных к установке пакетов. Среди них можно найти Luci-i18n-russian. Это и есть русификатор для настроек OpenWRT в Luci. Слева будет расположена кнопка Install, с помощью которой происходит установка пакета в систему.
После успешной инсталляции нужно активировать русский язык. Сделать это можно на вкладке System и одноимённой подвкладке. Здесь надо найти раздел Language and Style. В нём представлен список установленных языков, среди которых необходимо выбрать русский и нажать Save and Apply.
Иногда бывает полезно провести сброс настроек OpenWRT. Это может понадобиться после неудачных экспериментов с прошивками или другим ПО. Штатного решения для этого в OpenWRT нет. Поэтому придется производить все операции через командную строку. Необходимо выполнить несколько команд:
rm -rf /overlay/*
Что здесь происходит? На самом деле корень файловой системы представляет собой виртуальный образ, разделённый на две части. Одна из них используется только на чтение. Вторая - в режиме чтения и записи. Именно его и нужно отформатировать, что и выполняется с помощью представленных команд.
Роутер на OpenWRT и 3g модем
Иногда маршрутизаторы обладают возможностью подключения 3G-устройств для выхода в интернет. Настройка 3G модема в OpenWRT происходит не так сложно, как могло бы показаться.
Для этого нужно попасть в административную панель маршрутизатора. Затем подключается модем. Во вкладке «Сеть» в списке интерфейсов есть кнопка «Добавить новый интерфейс».
Далее необходимо будет указать новое имя. В качестве доступных символов можно использовать латинские. Применяемый протокол — 4G/3G, modem — NCM. А интерфейс — wwan0. После указания всех настроек нужно нажать «Применить».
Теперь осталось заняться настройкой самого интерфейса. Для этого указывается устройство. Если модем один, то нужно выбирать со значением USB0. В поле точка доступа APN указываются от оператора.
В расширенных настройках OpenWRT роутера требуется выбрать величину пакета MTU, время инициализации ответа модема и много других тонких установок, которые могут пригодиться в случае нестабильной работы роутера.
В основном перечисленных установок должно хватить для запуска и работы интернета с маршрутизатора. Если что-то пошло не так, то, значит, нужно искать дополнительные сведения о конкретном устройстве и устанавливать параметры в соответствии с рекомендуемыми.
Маршрутизатор мы перепрошили в прошлой статье, а теперь давайте рассмотрим, что из себя представляет сама OpenWRT.
В качестве командной оболочки, ввиду предположительно малого количества встроенной памяти, используется ash (вместо привычного многим bash). Ash имеет 24 встроенные команды, 10 опций командной строки, и является одной из самых маленьких оболочек для Unix.
В качестве пакетного менеджера, для загрузки и установки пакетов из репозитория OpenWRT, используется легковесный opkg (форк ipkg), вместо привычных apt-get, pacman, yum и т. д.
В качестве редактора по умолчанию, используется vi, который довольно непривычен для начинающих (например, для выхода нужно ввести:q! , для выхода с сохранением:wq). Прежде чем работать с vi, ознакомьтесь с данной статьей:
Если вам привычней работать с более простым nano — установите его, он не так много весит. Для начала обновим список пакетов:
:~# opkg update
И установим nano:
:~# opkg install nano
Работать с OpenWRT, как вы уже догадались, можно через командную оболочку, подключаясь по ssh, или же через веб-интерфейс LuCI — второй гораздо проще и интуитивно понятней, отлично подходит повседневной работы, но не имеет всей гибкости, достигаемой правкой конфига.
Настройка Wi-Fi
По умолчанию, в OpenWRT отключает Wi-Fi передатчик, так что подключим и настроим, для начала, его.
Перейдите на вкладку Network → Wi-Fi.
На вкладке «scan» доступны все найденные в области доступа сети. Таким образом, марщрутизатор на OpenWRT можно использовать как клиент, подключающийся к другой сети, и раздающий трафик на ваши устройства (в базовой прошивке TP-Link такой функции нет).
На вкладке «Add» - создадим собственную сеть:
Channel — канал по умолчанию. Если вкратце: на частоте 2.4GHz, имеется 11 каналов, и если, к примеру, ваш сосед замет 1-й канал, то работая на первом канале, вы получите куда худшее качество связи, чем при работе на 6-м. Полностью непересекающихся каналов только три — 1/6/11. Лучше выбрать режим auto — тогда роутер будет анализировать качество связи на каждом канале, и сам выбирать оптимальный вариант.
Transmit Power — мощность передатчика. Для такого бюджетного роутера, как у нас, рекомендуется понизить её с 27dBm до, хотя-бы, 24-25dBm, в особенности при обслуживании большого количества Wi-Fi клиентов, иначе он будет перегреваться и может периодически зависать.
ESSID — имя вашей сети.
Mode — режим работы (в большинстве случаев вам нужен Access Point, если же вы организуете mesh-сеть или большую домашнуюю Wi-Fi сеть из нескольких взаимных устройств, то вы и так знаете, какой режим вам нужен).
WMM — протокол QoS для обеспечения лучшего качества передачи мультимедийных файлов (распознавая трафик, в режиме WMM маршрутизатор будет присваивать файлам потокового видео/голоса высокий приоритет, что повысит их качество).
В Advanced Settings вы можете выбрать протокол, в котором работает ваш передатчик, а также ширину канала. Современные устройства работают на 802.11n, те что постарее — на b/g, так что выбирайте 802.11g+n, и ширину канала 40MHz.
На вкладке Wireless Security вы найдете настройки шифрования. Желательно выбрать WPA-PSK/WPA2-PSK Mixed Mode, а во вкладке Key — ваш пароль от сети.
Вот и все базовые настройки — жмите «Save & Apply» и в вашем доме вновь заработает Wi-Fi.
UCI
В OpenWRT есть собственная централизованная система для управления всеми элементами системы, также она имеет свой, довольно простой синтаксис. То есть вместо привычных конфигов Linux, используются файлы конфига UCI, в целом похожие на конфиги в вашем Linux. Стоит разобраться с UCI, и работать с OpenWRT станет гораздо легче.
Файлы конфигурации UCI лежат в /etc/config:
Для примера, настроим беспроводную сеть, конфиг которой лежит в файле wireless:
rm -f /etc/config/wireless
wifi detect > /etc/config/wireless
rm -f — удаляет имеющийся файл с настройкой.
Wifi detect — определяет информацию по железу (все авто-детектируемые опции файла wireless) и создает такой же файл, какой был у нас изначально, до настойки в веб.
Откроем /etc/config/wireless:
На примере этого файла, рассмотрим синтаксис uci.
config wifi-device radio0
option type mac80211
option channel 11
option macaddr b0:f3:c1:7e:4e:30
config — обозначает начало секции.
Wifi-device — тип объясняющий uci что что именно мы редактируем.
radio0 — имя, или идентификатор (то, какое именно устройство/интерфейс мы редактируем)
option — тип настроек, в данном случае опция. Также может быть list — составные настройки, в которые могут быть включены опции с множественными значениями
type/channel/macaddr — всё это типы настройки, которые входят в блок опций wi-fi-device.
Опции могут быть заключены в кавычки, двойные и одинарные (заключающая кавычка должна быть такой же, как и начинающая). И даже должны быть заключены, если в имени опции имеется пробел.
Теперь редактирует сам файл wireless:
Первый блок настроек отвечает за физическую составляющую, такую как mac-адрес, канал и его ширину, используемый стандарт и т. д. Все они детектируются автоматически, и большинство из них, кроме mac-адреса, можно поменять.
Option channel 11 — используемый канал. Допустимые значения — от 0 до 11, или «auto» (желательно) для автоматического определения канала.
Option hwmode 11ng — используемый стандарт, оставим без изменений. Допустимые значения: 11b, 11g, 11a и 11ng.
option htmode HT20 — ширина канала. В особо зашумленных сетях (в многоквартирном доме, например) не рекомендуется использовать широкий канал, но если ваша сеть единственная в округе, то можете сменить на HT40 — канал шириной 40MHz. Для стандартов 802.11ac (не в нашем случае) допустмы значения VHT80 / VHT160.
option disabled 1 — по умолчанию радиопередатчик заблокирован. Смените значение на 0, или просто удалите строку, чтобы его разблокировать.
Добавим также строку:
option txpower 25 — txpower принимает как аргумент численное значение равное мощности вашего передатчика в dBm.
Блок config "wifi-iface" — задает настройки интерфейса, такие как режим работы, имя устройства и пароль:
option device radio0 — указывает, для какого устройства мы настраиваем интерфейс.
option mode ap — задает режим работы. Допустимые значения: ap — точка доступа / sta — клиент / adhoc / wds / monitor / mesh)
option ssid OpenWrt — задает имя (SSID) сети. Смените на желаемое (не забывая про кавычки)
option encryption none — настройки шифрования, по умолчанию отключены. Допустимые значения - wep для WEP, psk для WPA-PSK, или psk2 для WPA2-PSK. Желательно выбрать psk2.
option key "пароль" — в режиме WPA2-PSK, задает пароль для сети.
Вот мы и настроили сеть также, как и настроили её ранее в веб-интерфейсе. Теперь, сохраните файл и примените настройки:
uci get wireless
И перезагрузить демон настройки сети:
/etc/init.d/network restart
После, беспроводная сеть вновь должна заработать.
Надеемся, на этом примере вы поняли базовые принциапы работы с UCI и настройки путем правки конфига. Выше, перечислены далеко не все функции, но многие из них специфичны и требуют особых драйверов. Больше о настройке файла wireless и полный список опций:
http://wiki.openwrt.org/doc/uci/wireless
Больше о работе и функций самой подсистемы UCI:
http://wiki.openwrt.org/ru/doc/uci