У стоковых прошивках для роутера TP-Link 841N V8 отсутствует полноценный режим повторителя, поэтому была в качестве эксперимента установлена кастомная прошивка DD-WRT в которой, как обещают на интернет форумах, есть этот самый режим и куча всякой другой вкуснятины.
В итоге, я установил прошивку, поюзал её немного, погонял, в итоге она мне не понравилась и то, что она предлагает, ничем особенным не отличается от обычного WDS, поэтому решил вернуть стоковую прошивку от производителя но всё оказалось не всё так просто, поэтому потратив кучу времени на решение этого вопроса, решил опубликовать решение на своём сайте.
Перелопатив очень много информации в интернете, где описывалось очень много вариантов, в т. ч., вариант с “tFTPd32”. Но, почему-то, маршрутизатор не прошивался. Либо выдавал ошибку через 10 секунд после начала процедуры прошивки, либо писал, что прошивка успешна, но после перезагрузки снова появлялся интерфейс DD-WRT. После долгих безуспешных попыток вернуть назад родную прошивку, всё-таки нашёл способ, который мне подошёл.
1. Нам потребуются утилиты WinSCP и Putty. Первую можно взять здесь, а вторую здесь.
2. Для начала, сбросьте настройки маршрутизатора на установки по-умолчанию. Зажмите “Reset” и удерживайте её секунд 30-40. После того, как настройки сбросятся, зайдите на web-страницу настроек маршрутизатора (192.168.1.1) и задайте новые имя и пароль (admin, admin). Затем, включите SSH и Telnet в настройках DD-WRT. Для этого зайдите на страницу настроек маршрутизатора во вкладку Services > Services.
Найдите строку Secure Shell и установите следующие значения:
Нажмите внизу “Save”, затем, “Apply Settings”
Далее, перейдите во вкладку Administration > Management
Найдите строку Remote Access и установите следующие значения:
Снова нажмите внизу “Save”, затем, “Apply Settings”.
3. Загрузите оригинальную прошивку для Вашей модели и аппаратной версии с сайта TP-Link, разархивируйте файл и измените имя на менее замысловатое, например, tplink.bin Я брал прошивку без слова “boot” в названии, т. к. читал, что это важно. Не знаю, насколько это критично, но описываю, как делал именно я. (Прошивка без boot которую я использовал для аппаратной версии маршрутизатора V8)
4. Запустите WinSCP. В поле «Протокол передачи» выберите «SCP». В поле «Имя хоста» введите адрес маршрутизатора (192.168.1.1), Порт – 22, Имя пользователя – «root», пароль – «admin». Нажмите «Войти», «продолжить».
5. Если всё сделали верно, то откроется окно с содержимым памяти роутера. Перейдите в папку /tmp и скопируйте в неё Ваш файл прошивки «tplink.bin».
6. Закройте WinSCP и запустите Putty. В поле “Host name” введите адрес маршрутизатора (192.168.1.1), Port – 23, в поле “Connection type” выберите Telnet. Нажмите “Open” (или просто “Enter”).
7. Далее, введите логин (root) и пароль (admin), после чего введите следующую команду (лучше всего, скопировать и вставить, дабы избежать ошибок):
mtd -r write /tmp/tplink.bin linux
После ввода команды, нажмите “Enter” и ждите, пока закроется Putty и маршрутизатор перезагрузится. После этого, зайдите в web-интерфейс настроек роутера (192.168.0.1), чтобы убедиться, что всё прошло успешно и обновить прошивку до последней доступной на сайте версии (тут уже не важно, будет ли в названии прошивки приставка “boot” или нет). Зайдите на вкладку System Tools > Firmware upgrade. Нажмите “Обзор” и выберите файл с последней версией официальной прошивки для Вашей модели и аппаратной версии маршрутизатора. Нажмите “Upgrade” и “OK”. Ваш маршрутизатор обновится и перезагрузится, после чего, Вы уже сможете его окончательно настроить с web-страницы настроек TP-Link (192.168.0.1)
Удачного восстановления!!!
Вдохновленный обзором Дмитрия Бачило, решил проделать аналогичное у себя дома. Дома, до недавнего времени у меня работал дешевенький D-Link DIR-300 N150 (аппаратная ревизия D1), и, надо сказать, это та ещё дрянь. Во-первых, нормально он заработал только после заливки обновленной (v2.0.17) прошивки с официального сайта (при покупке на нем обреталась v1.0.4). Функционал этого девайса вполне себе нормальный для домашнего использования, но все же не хватало некоторых необходимых мне фич, как-то, например, клиент DDNS. Обычно я использую No-IP, но D-Link по дефолту предоставляет обслуживание только dyndns.com (который стал платным!), собственный кривой dlinkddns.com, и ещё некий мутный, и видимо тоже платный TZO. Попытки прошить DIR-300 прошивкой от OpenWrt успехом не увенчались, из-за того что в моем устройстве в качестве процессора установлен Realtek RTL8196E, и хоть я и нашел способ скачать исходники для него (в официальных ветках их нет), но собрать не удалось. Может быть я вернусь к этому вопросу позже а пока… Пока душа жаждала экспериментов. Придушив жабу я пошел в магазин и купил TP-Link TL-WR1043ND. В наших краях стоит он не много не мало 2500 руб., но поверьте, сабж стоит этих денег. Но, обо всем по порядку.
1. Комплект поставки
Собственно сам девайс выглядит так
Вид сверху |
Вид спереди: на срезанной передней кромке — светодиодные индикаторы, которые к сожалению не получились на фото 🙁 |
Вид сзади: интервейсы и органы управления. |
Кроме самого устройства в комплекте идут три штыревые антенны для Wi-Fi адаптера,
Штыревые антены для Wi-Fi — подари соседям радость доступа в Интернет 🙂 |
блок питания
Блок питания |
Кабель LAN, идущий в комплекте |
2. Получение прошивки и подготовка образа
Идем на официальный сайт OpenWrt. Первое, что нас должно заинтересовать — поддерживается ли наше устройство. Это можно выяснить, посмотрев список поддерживаемых устройств, это первая ссылка на главной странице. В списке справа, смотрим интересующую информацию. Что касается моего девайса, то мне в руки попал 1043ND версии 2.1, прошивки для которого в стабильной ветке нет. Однако по данному устройству имеется весьма подробное описание (вплоть до распиновки печатной платы) где сказано, что прошивку именно для версии 2.x можно взять в ветке trunk, вот тут. Можно скачать готовую сборку, а лучше, и это я поясню ниже почему, взять генератор образа, так называемый ImageBuilder. Я скачал готовую сборку, ибо не был уверен, что смогу грамотно собрать сам. Девайс для меня не дешевый, поэтому хотелось получить его в работоспособном виде, а уж потом доставить то, чего будет не хватать. В итоге, прошив готовый образ, я получил работоспособное устройство, но без web-интерфейса. Доступен оказался только telnet-канал, через который я разруливал свои недоработки. Пришлось настраивать подключение к сети (у меня pppoe с вводом пароля) из командной строки. Для профи это не создаст проблем, я же в этом деле новичок, поэтому пришлось туговато. Выкрутился я подключив роутер к работающему в сети роутеру DIR-300 — просто подключил WAN-разъем поциента в свободный порт на D-Link’ке. По умолчанию в стандартной прошивке настроено подключение к сети с использованием DHCP, так что выход в сеть я получил, доставив все мне необходимое с помощью opkg — менеджера пакетов, доступного в OpenWrt. В данном обзоре приведу Ъ-способ, связанный с самостоятельной сборкой прошивки, включающей сразу всё необходимое. Итак, у нас эсть скачанный ImageBuilder. Распаковываем его и видим список всякой всячины.
Содержимое архива генератора прошивок (на момент после сборки — в начале некоторые каталоги будут отсутствовать) |
Находясь в этом каталоге, даем команду$ make info в выхлопе которой нас интересует вот эта часть Это — профиль по умолчанию, доступный для нашего устройства. Здесь указана модель роутера (TP-LINK TL-WR1043N/ND) а так же список пакетов, включенных в образ. Данные пакеты — модули ядра (приставка kmod — Kernel Module говорит сама за себя) драйверы USB, что хорошо, но для нашей цели недостаточно. Нам потребуется как минимум следующее
- uhttpd — миниатюрный web-сервер, на котором крутится web-интерфейс
- luci — сам web-интерфейс, стандартный для OpenWrt, построенный на Lua-скриптах.
- luci-i18n-russian — пакет русификации, ставим сразу.
- kmod-usb-storage — модуль ядра для поддержки флеш-накопителей.
- kmod-fs-ext4 — модуль ядра для поддержки файловой системы ext4.
- block-mount — утилиты для монтирования блочных устройств.
Последние три пакеты нужны, чтобы организовать работу с флешкой, используя её в качестве основного накопителя для роутера. Встроенная флеш-память девайса имеет объем в 8 Мб, которых маловато для реализации разнообразных хитрых штуковин :). Чтобы собрать прошивку именно в такой конфигурации, выполняем команду$ make image PROFILE=»TLWR1043″ PACKAGES=»uhttpd luci luci-i18n-russian kmod-usb-storage kmod-fs-ext4 block-mount» -j8 где указываем выбранный профиль и список необходимых нам пакетов. Ключик -j8 означает что собираю я в восемь потоков — у меня Intel Core i7, поэтому грех не воспользоваться его четырьмя ядрами с гипертрейдингом — это существенно ускорит процесс. В вашем случае нужно указать число потоков, поддерживаемых установленным у вас процессором. Ждем пока прошивка соберется… На выходе, в директории с ImageBuilder’ом, получаем каталог bin/ar71xx с набором файлов
Результат сборки прошивки. |
Нас интересует файл openwrt-ar71xx-generic-tl-wr1043nd-v2-squashfs-factory.bin, соответствующий прошивке под имеющийся девайс (обращаем внимание на слова factory и v2 — прошивка именно для версии 2.x!!!) Все готово, теперь можно приступить к самой прошивке
3. Прошивка через «родной» web-интерфейс
ВНИМАНИЕ: Всё нижеследующее Вы выполняете на свой страх и риск! Даже получение работоспособного устройства лишает Вас гарантии производителя! Автор не несет ответственности за порчу оборудования, вызванную действиями, описанными в данной статье! Итак, приступим. Подключаем девайс к питающей сети через блок питания, соединяем любой LAN-порт устройства с сетевой картой компьютера, используя идущий в комплекте кабель. Открываем браузер и заходим на http://192.168.0.1 — стандартный адрес веб-интерфейса TP-Link роутеров. Вводим логин — admin и пароль — admin, и видим такую картинку
Стандартный веб-интерфейс TP-Link |
Приведенный скрин — это эмулятор TP-Link, любезно предоставленный на сайте производителя. Мой стандартный интерфейс умер быстро, я даже не посмотрел его как следует, хотя там достаточно много «вкусного». Так что пояснять процесс установки кастомной прошивки я буду используя эмулятор. Идем в раздел System Tools, выбираем там Firmware Upgrade, и имеет следующую станичку
Диалог обновления ПО. |
Жмем «Обзор» выбираем наш файлик с прошивкой (будьте внимательны на этом этапе!). Прошу обратить внимание на несоответствие — в эмуляторе указана версия железа v1, мы же прошиваем v2.1, так что пусть этот небольшой ляп вас не смущает — у вас всё будет верно, версии должны соответствовать.
Выбор собранной нами прошивки. |
и жмем Upgrade, соглашаемся в ответе на вопрос «а действительно ли мы хотим…» и ждем пока закончится процесс, иллюстрируемый на экране подставными (как сказал Дмитрий Бачило) прогресс-барами. После окончания прошивки страница попытается обновится, но окажется недоступна — теперь веб интерфейс будет доступен нам по адресу http://192.168.1.1, который надо набрать в адресной строке. Набираем, заходим и видим
Веб-интерфес LuCI. |
По умолчанию не задан пароль суперпользователя root, поэтому первым делом зададим его. Идем в меню «Система->Управление»
Создание пароля администратора. |
и задаем пароль. После этого становится доступен ssh-интерфейс, а при заходе на веб-интерфес будет выскакивать экран авторизации
Экран авторизации LuCI. |
Теперь можно настроить подключение к Интернет, в соответствии с учетными данными и инструкцией провайдера (в моем случае это pppoe с авторизацией) и в принципе — можно работать! Настраивать Wi-Fi и всё остальное что требуется вам для счастья ). Из приятного стоит отметить, что имеющийся в OpenWrt name-сервер без проблем дает возможность установить статические ip для ваших компьютеров, и без бубнов с /etc/hosts получить возможность использовать разумные имена хостов, чего от оригинальных прошивок того же D-Link мне добиться не удалось. Вообще от богатства функционала тут с непривычки рябит в глазах. Однако, оставлю читателя изучать веб-интерфейс самостоятельно, и перейду к следующему вопросу, который хотел бы рассмотреть
4. Настройка флешки в качестве системного диска
Располагаемых 8 мегабайт встроенной памяти может не хватить, если вы захотите устанавливать на роутер дополнительное ПО. Поэтому, попробуем расширить доступное дисковое пространство. Для этого мной была приобретена вот такая небольшая «флешунечка»
Флешка для эксперимента — Sandisk 16 Gb |
Дико извиняюсь за качество фото — снимаю телефоном с порядком «ушатанной» камерой, но думаю понятно, что (по опыту Дмитрия) выбран миниатюрный форм-фактор — так сабж прекрасно интегрируется с роутером.
Накопитель на рабочем месте — выглядит как «родной». |
Если же отбросить эстетику — подойдет любая флешка. Заходим в shell на роутере$ ssh root@192.168.1.1 Поулчаем приглашение такого оригинального вида, с рецептурой ацкого коктейля, которая отличается в каждой из веток исходников прошивки). Для начала кое-что доустановим, чтобы сделать нашу жизнь более комфортной. Обновим список доступного ПО из репозитария OpenWrt# opkg update После чего дадим команду# opkg install nano mc установив редактор nano (ну не люблю я дефолтный vi, ну что поделать…) и наш любимый Midnight Commander (да-да, командер на роутере), после чего мы получаем довольно дружественный интерфейс
Согласитесь — так намного лучше! |
Почва на роутере готова, теперь готовим её на флешке. Для начала надо убить на ней стандартный раздел с FAT32 и создать необходимые Linux-разделы с помощью доступных интсрументов (gparted, cfdisk, fdisk). Подробно об этом рассказывал Дмитрий Бачило, я же ограничусь описанием своей схемы разметки sda1 — 4 Гб — корневой раздел / (ext4) sda2 — 128 Мб — раздел подкачки (swap) sda3 — все остальное место, чуть менее 12 Гб — /home (ext4) Подготовленную флешку вставляем в роутер, и прежде всего убеждаемся, что флешка видится системой как надо# ls /dev/sd* должно показать/dev/sda /dev/sda1 /dev/sda2 /dev/sda3 что говорит о том, что система нашла флешку и её разделы. Теперь приступим к настройке. Её можно выполнить через веб-интерфейс, но я предпочел настроить монтирование через /etc/config/fstab, руководствуясь мануалом Открываем указанный конфиг для редактирования# nano /etc/config/fstab удаляем всё что там есть (осторожно!!!) и набиваем следующее# Общие параметры монтирования # Монтирование корневой ФС Наверное вы обратили внимание, что fstab выглядит несколько непривычно — это используемый в OpenWrt стандарт uci. Сохраняем конфиг. Теперь необходимо (обязательно!!!) перенести содержимое текущего корня на флешку. Для этого монтируем корневой раздел накопителя# mkdir /mnt/sda1# mount /dev/sda1 /mnt/sda1 и переносим корень на неё# tar
-C
/overlay
-cvf - . |
tar
-C
/mnt/sda1
-xf -
это необходимо, чтобы все наши настройки оказались на месте, после перезагрузки, которую выполняем после окончания переноса# reboot Когда устройство перезагрузится, можно вглянуть что получилось у нас. В веб-интерфейсе идем в «Система -> Точки монтирования» и видим картину
Точки монтирования после настройки. |
Как видим, всё на месте. Теперь у нас есть достаточный объем дискового пространства для экспериментов. Окончательно собираем роутер, наводим порядок на рабочем месте
Перешитый и настроенный TP-Link TL-WR1043ND на месте постоянной прописки. |
5. Расшариваем удаленный доступ
Мне, по роду деятельности, приходится работать удаленно на домашней машине — выполнять трудоемкие вычисления на своей мощной «числодробилке». Поэтому вопрос удаленного доступа стоит как никогда остро. Таковой доступ у меня был, но захотелось немного более продвинутых вкусностей, например удаленного включения домашних машин. Поэтому встал вопрос о расшаривании роутера из внешней сети. Провайдер выдает мне динамический ip, который я связываю с доменом 3-го уровня на http://noip.com. Как я говорил выше, старый роутер не поддерживал возможности использовать указанный сервис. OpenWrt (да и стандартная прошивка TP-Link, к слову) такую возможность предоставляет. Итак, прежде всего доустановим некоторые пакеты# opkg install luci-app-ddns sudo shadow Поясню:
- luci-app-ddns — плагин для веб-интерфейса — позволяет настраивать DDNS-сервис
- sudo — утилита, для получения прав суперпользователя под обычным аккаунтом
- shadow — пакет системных утилит для администрирования (добавление/удаление пользователей и групп, назначение прав и т.п.)
Первое понятно — настройка DDNS-клиента на роутере. Имея аккаун на noip.com с зарегистрированным там хостом, идем в меню «Сервисы -> Динамический DNS»
Настройка DDNS-клиента |
Параметры своего аккаунта по понятным причинам не показываю. Обратите внимание на список доступных сревисов — он гораздо шире, чем в «родной» прошивке. Теперь наш роутер станет доступен по указанному адресу хоста. Теперь мы должны сделать следующее — запретить вход по ssh-протоколу для пользователя root. Делаем это для защиты от банального брутфорса — при открытом доступе к рут-шеллу злоумышленнеку известно имя пользователя, что несколько облегчает ему задачу. Поэтому ограничимся доступом для обычного юзера, которого надо создать# useradd -d /home/<имя пользователя> -s /bin/ash -m обращаем внимание, что шелл по умолчанию — ash, а не bash как в большинстве домашних линуксов. Задаем пароль нашему юзеру# passwd <имя пользователя> Теперь запрещаем root-у заходить по ssh. Идем в «Система -> Управление» и снимаем галку
Убираем возможность удаленного входа под root-ом |
взведенную по умолчанию. Можно так же сменить порт, на котором прослушивается ssh с 22 на другой. Администраторский доступ мы можем получисть через su уже после входа в систему (для этого ставили shadow) или можем настроить sudo. Теперь у нас есть возможность для удаленного администрирования всей нашей домашней сети 🙂
Заключение
Итак, мы превратили наш роутер в настоящую линукс-машину, обеспечив себе неисчерпаемые возможности для разного рода экспериментов и реализации интересных возможностей в домашней сети. Спасибо за внимание и успехов 🙂
В новых прошивках исправляются проблемы предыдущих версий. Редко бывает, что с первого раза она получается без багов и глюков. Если роутер работает без проблем и вас все устраивает, то лучше прошивку не обновлять. Как говорится, лучшее — враг хорошего.
А вот если у вас есть какие-либо проблемы с маршрутизатором (режет скорость, через несколько часов работы начинает виснуть и поэтому нуждается в регулярной перезагрузке, не получается зайти в настройки), то в ходе поиска решения проблемы можно попытаться установить самую свежую прошивку.
Честно говоря, роутеры компании TP-Link славятся стабильной работой, даже самые бюджетные модели. Однако, если глюки случаются, программисты быстро выпускают обновление с исправлением и публикуют на официальном сайте.
Правда здесь есть небольшое «но»: как правило, первым делом прошивка с исправлением проблемы выкладывается на англоязычном сайте. Она потом обязательно появится и на русском, но до ее выхода может пройти даже несколько месяцев. Поэтому, порой имеет смысл временно установить прошивку с английского сайта. Если помните, я уже советовал этот способ в своей статье, когда рассказывал о том, как исправить отключение Wi-Fi 5 GHz у роутера TP-Link Archer C7 v2. А позже он утратил свою актуальность в связи с выходом обновления и на русскоязычном сайте.
Последнее, что хочу отметить: прежде чем обновлять прошивку, стоит попробовать сделать сброс настроек роутера. А уже если не поможет, то искать свежую версию firmware и перепрошивать маршрутизатор. Ну а теперь к делу.
Первым делом зайдите на официальный сайт TP-Link для России: tp-linkru.com.
- На сайте вверху выберите раздел Поддержка.
- Начните водить название модели вашего маршрутизатора (модема, точки доступа или что там у вас). У ТП-Линк лучше всего ввести цифры, чтобы не запутаться в буквах и тире.
- Теперь в поиске выберите точную модель роутера, учитывая все цифры и буквы:
- Кликните по ссылке на страницу поддержки вашей модели маршрутизатора:
- Теперь нажмите на ссылку Поддержка, но уже не в главном меню, а чуть ниже. Нам нужна поддержка уже конкретной модели роутера:
- Выберите аппаратную версию. Здесь мы писали, как ее определить.
- Нажмите Встроенное ПО:
- Вверху будет самая свежая прошивка. Нажмите на ссылку с названием модели. В нашем случае TL-WR841ND_V8_140228_RU: Прошивка должна скачаться в виде zip-архива:
Почему я упомянул прошивку для США? Да потому что новые англоязычные прошивки часто выходят раньше. Вот, например, для TP-Link Archer C7, который из коробки работал отвратительно, стабильную прошивку для США выложили на сайте поддержки еще в июле 2017 года, а на сайте для России ее нет до сих пор. (Обновление: уже вышла).
Имейте в виду, что при установке версии для США все настройки в веб-интерфейса будут на английском языке.
Для начала зайдите на сайт TP-Link для США: http://www.tp-link.com/us/
- Выберите SUPPORT в верхнем меню сайта:
- В поле вбейте название вашей модели и выберите точную модель из списка:
- Теперь нажмите на ссылку в результатах поиска:
- Нажмите на ссылку Support:
- Выберите аппаратную версию.
- Выберите раздел Firmware:
- Скачайте самую последнюю англоязычную прошивку для США для вашего роутера:
Внимание! Будьте осторожны, устанавливая прошивку для чужого региона на ваш роутер. В некоторых случаях вы можете превратить ваш маршрутизатор в кирпич. Поэтому, делать это стоит в крайних случаях. Например, когда все прошивки TP-Link для России работают неудовлетворительно на вашем устройстве.
Надеюсь, данное руководство помогло вам скачать последнюю прошивку для вашей модели роутера TP-Link и в итоге вы решили проблему. Пишите в комментариях отзывы и задавайте вопросы.
Используемые источники:
- https://kss.pp.ua/vozvrashchayem-stokovuyu-proshivku-tl-wr841n-posle-dd-wrt/
- http://phantomexos.blogspot.com/2014/02/openwrt-tp-link-tl-wr1043nd-v21.html
- https://compfixer.info/%d1%81%d0%ba%d0%b0%d1%87%d0%b0%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d1%88%d0%b8%d0%b2%d0%ba%d1%83-%d1%80%d0%be%d1%83%d1%82%d0%b5%d1%80%d0%b0-tp-link-%d0%bd%d0%b0-%d1%80%d1%83%d1%81%d1%81%d0%ba%d0%be%d0%bc/