6

Установка и настройка прошивки DD-WRT для роутера

 

Я уже писал как-то о том “как выбрать роутер для дома”, для себя я выбрал роутер TP-Link TL-WR1043ND. Отличная, модель, но имеет один минус, стандартная прошивка значительно уступает по функционалу, семейству прошивок DD-WRT.

Отличие DD-WRT прошивки от заводской

Во-первых стоит отметить, что DD-WRT прошивка представляет из себя операционную систему основанную на ядре Linux. Даже с настройками по умолчанию имеет очень широкий функционал, значительно шире чем в заводской прошивке. Встроены такие компоненты как, FTP сервер, Samba, WOL и многое другое. Через Веб интерфейс доступна подробная статистика и нагрузка на каналы локальной, беспроводной сети и интернета, так же можно увидеть нагрузку на процессор и память роутера.

Если настроить роутер на установку дополнительных пакетов, можно превратить ваш роутер в домашний медиа-сервер. Подключенный жесткий диск с установленным торрент клиентом, вещание ITPV по протоколу HTTP, для просмотра по wi-fi. Если у вас есть телевизор с поддержкой стандарта DLNA, есть возможность подключить телевизор к роутеру и просматривать IPTV, а так же смотреть фильмы с жесткого диска.

Как прошить роутер

С помощью данной инструкции можно прошить любой роутер на чипе Atheros, к примеру TP-Link TL-WR1043ND,  WRT160NL, D-Link DIR-825, Netgear WNDR3700 и другие.

Что-бы прошить роутер DD-WRT  прошивкой, нужно скачать две прошивки с FTP сервера dd-wrt. Заходим по ссылке, выбираем нужную модель роутера, скачиваем 2 файла прошивками, factory-to-ddwrt.bin и tl-wr1043nd-webflash.bin  (имя файла для каждой модели роутера разное).

Сначала мы будем прошивать роутер прошивкой factory-to-ddwrt, которая специально предназначена для перехода с заводской прошивки на прошивку dd-wrt. Для этого выполняем следующие действия:

  1. В адресной строке браузера набираем http://192.168.1.1, вводим данные для авторизации (стандартные данные для авторизации на tp-link  роутерах login: admin, password: admin
  2. В меню роутера выбираем “System Tools”,в подменю выбираем пункт “Firmware upgrade”. Нажимаем на кнопку “выбрать файл” и указываем прошивку factory-to-ddwrt.bin, которую скачали ранее. Нажимаем на кнопку “Upgrade”, начнется процесс обновления ПО.
  3. Роутер через некоторое время уйдет в перезагрузку, после вы увидите обновленный интерфейс. На главной странице при первом запуске нужно указать логин и пароль для администрирования.задать Логин и пароль
  4. Выбираем в меню dd-wrt  прошивки пункт “Administration”, далее “Firmware Upgrade”, “ в After flashing, reset to” ставим “Don’t Reset”, ниже выбираем файл прошивки в моем случае “tl-wr1043nd-webflash.bin” и нажимаем кнопку “Upgrade”
  5. Стабильная прошивка dd-wrt  установлена, можно приступать к настройке.

Настройка DD-WRT

На вкладке “Setup” настраиваем локальную сеть, в соответствии с данными выданными провайдером.

На вкладке “Wireless” указываем настройки wifi

На вкладке “Services” активируем “SSH” и “Telnet”

  • Вкладки “USB” и “NAS” настраиваем, как на картинках ниже.

Настройка USB

dd wrt  настройка ftp

dd-wrt настройка samba

  • На вкладке “Security ставим “SPI Firewall” в положение “Disable”.

Как подключить внешний жесткий жиск или флешку к роутеру

Приступаем к подготовке подключения внешнего устройства.

  • Скачиваем и устанавливаем бесплатную программу для работы с жесткими дисками  EaseUS® Partition Master Home Edition.
  • Подключаем к компьютеру внешний жесткий диск или флешку, которая в последствии  будет подключена к роутеру.
  • Запускаем программу, находим в списке нужный диск. Нажимаем правой кнопкой мыши, выбираем “delete partition” и нажимаем ок.удалить диск
  • По удаленному разделу нажимаем правой кнопкой мыши, выбираем пункт “Create Partition”, устанавливаем “Create As” в положение “Primary”, “File System” ставим “EXT3”.Создать раздел EXT3
  • В главном окне программы нажимаем “Apply”. Ждем завершения операции.Выполнить заданные операции
  • Подключаем внешний жесткий диск или флешку в USB порт роутера и перегружаемся.

 

Для того чтобы проверить, смонтировался ли жесткий диск заходим по адресу http://192.168.1.1/USB.asp и смотрим Disk Info. Если есть строка “Status: Mounted on /mnt” значит все ок.

diskinfo

Установка дополнительных пакетов и программ

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

PuTTY -  Telnet\SSL клиент

WinSCP – Файловый менеджер с поддержкой любых протоколов.

OpenWRT-Lib – Библиотеки  от OpenWRT прошивок

 

Запускаем  PuTTY. В “Host Name” указываем ip-адрес роутера 192.168.1.1, “Connection type” ставим “SSH” и нажимаем “Open”. Логин всегда Root, пароль – который указывали после прошивки роутера.

Поочередно копируем следующие команды:

cd /mnt
mkdir etc opt root
touch optware.enable
chmod 755 etc opt root
mkdir opt/lib
chmod 755 opt/lib
cp -a /etc/* /mnt/etc/
mount -o bind /mnt/etc /etc
mount -o bind /mnt/opt /jffs

Вставка в PuTTY производиться правой кнопкой мыши.

Устанавливаем и запускаем WinSCP

Нажимаем New. Host name – 192.168.1.1, port 22, User – root, Password – такой же как и в PuTTY, File protocol – SCP и жмем Login.

Заходим в каталог /mnt/opt/lib и копируем туда все файлы и архива OpenWRT-Lib

WinSCP не закрываем, возвращаемся в PuTTY и выполняем следующие команды:

ls /jffs/lib
chmod a+x /jffs/lib/*

 

cd /tmp
wget <a href="http://downloads.openwrt.org/backfire/10.03.1-rc4/ar71xx/packages/opkg_576-1_ar71xx.ipkipkg">http://downloads.openwrt.org/backfire/10.03.1-rc4/ar71xx/packages/opkg_576-1_ar71xx.ipk ipkg</a> install /tmp/opkg_576-1_ar71xx.ipk

В WinSCP заходим в каталог /etc, создаем файл,для этого в меню выбираем Files – New – File (либо нажимаем Shift+F4). Вводим opkg.conf и копируем туда:

src/gz snapshots <a href="http://downloads.openwrt.org/backfire/10.03.1-rc4/ar71xx/packages/dest">http://downloads.openwrt.org/backfire/10.03.1-rc4/ar71xx/packages/ dest</a> root /opt
dest ram /tmp
lists_dir ext /tmp/var/opkg-lists

Сохраняемся.

Заходим в http://192.168.1.1/Diagnostics.asp

В поле Commands вставляем:

sleep 2
 
if [ -f /mnt/optware.enable ]; then
 
mount -o bind /mnt/etc /etc
 
mount -o bind /mnt/root /tmp/root
 
mount -o bind /mnt/opt /opt
 
else
 
exit
 
fi
 
if [ -d /opt/usr ]; then
 
export LD_LIBRARY_PATH='/opt/lib:/opt/usr/lib:/lib:/usr/lib'
 
export PATH='/opt/bin:/opt/usr/bin:/opt/sbin:/opt/usr/sbin:/bin:/sbin:/usr/sbin:/usr/bin'
 
else
 
exit
 
fi

Жмем “Save Startup”

Перезагружаемся, для этого в PuTTY выполняем команду Reboot.

Снова запускаем PuTTY и выполняем команды:

export LD_LIBRARY_PATH='/opt/lib:/opt/usr/lib:/lib:/usr/lib'
export PATH='/opt/bin:/opt/usr/bin:/opt/sbin:/opt/usr/sbin:/bin:/sbin:/usr/sbin:/usr/bin'
opkg update

Ставим следующие пакеты.(копируем команды в PuTTY):

opkg install libc
opkg install libgcc
opkg install uclibcxx
opkg install libncurses
opkg install busybox

Снова запускаем WinSCP. Заходим в каталог /mnt/root и редактируем файл .profile, если такого файла нет то создаем. Вставляем следующее содержимое:

export LD_LIBRARY_PATH='/opt/lib:/opt/usr/lib:/lib:/usr/lib:/opt/usr/local/lib'
export PATH='/sbin:/opt/bin:/opt/usr/bin:/opt/sbin:/opt/usr/sbin:/bin:/usr/bin:/usr/sbin:/opt/usr/local/bin'
export PS1='\[\033[01;31m\]\u@\h \[\033[01;34m\]\W $ \[\033[00m\]'
export TERMINFO='/opt/usr/share/terminfo'

Сохраняем файл и перезагружаемся командой Reboot.

После перезагрузки в PuTTY выполняем команду:

opkg update

Конфигурирование роутера для установки пакетов закончено. Можно устанавливать пакеты.

Выполняем команду:

opkg install mc

для установки файлового менеджера Midnight Commander на роутер.

IPTV через HTTP для просмотра по wifi

Если Ваш провайдер предоставляет услуги трансляции IPTV, так как Multicast вещание довольно сильно загружает канал, для просмотра iptv чезер Wifi нужно преобразовать udp трафик в http, для этого выполним следующие действия:

Заходим http://192.168.1.1/Diagnostics.asp

Редактируем Startup

Добавляем комманду:

cd /tmp
 
wget <a href="http://files.0day.triolan.net.ua/triolan.ua/dd-wrt/atheros/udpxy">http://files.0day.triolan.net.ua/triolan.ua/dd-wrt/atheros/udpxy</a>
 
chmod +x udpxy
 
/tmp/udpxy -a ip_адрес_роутера -p 4760 -m Ваш_внешний_Ip -B 1Mb -M 30

ip_адрес_роутера – если вы не меняли, то адрес 192.168.1.1

Ваш_внешний_Ip – Постоянный Ip-адрес предоставляемый провайдером.

В итоге полный Start скрипт должен быть примерно такой:

cd /tmp
 
wget <a href="http://files.0day.triolan.net.ua/triolan.ua/dd-wrt/atheros/udpxy">http://files.0day.triolan.net.ua/triolan.ua/dd-wrt/atheros/udpxy</a>
 
chmod +x udpxy
 
/tmp/udpxy -a 192.168.1.1 -p 4760 -m 178.151.85.67 -B 1Mb -M 30
 
sleep 2
 
if [ -f /mnt/optware.enable ]; then
 
mount -o bind /mnt/etc /etc
 
mount -o bind /mnt/root /tmp/root
 
mount -o bind /mnt/opt /opt
 
else
 
exit
 
fi
 
if [ -d /opt/usr ]; then
 
export LD_LIBRARY_PATH='/opt/lib:/opt/usr/lib:/lib:/usr/lib'
 
export PATH='/opt/bin:/opt/usr/bin:/opt/sbin:/opt/usr/sbin:/bin:/sbin:/usr/sbin:/usr/bin'
 
else
 
exit
 
fi

После конфигурирования нажимаем “Save Startup”

Теперь для просмотра потока в IPTV Player нужно  настроить сетевой интерфейс:

192.168.1.1:4760

 

iptv_player

Можно наслаждаться просмотром iptv по wifi , без торможений, в высоком качестве.

Настройка Transmission

Transmission — это торрент клиент с помощью которого можно закачивать, совершенно любые файлы, на флешку или жесткий диск, которые подключены к вашему роутеру, даже когда ваш компьютер выключен.

Для того чтобы установить transmission на роутер с прошивкой dd-wrt, нужно выполнить команду:

opkg install transmission-web

Для первоначальной настройки, требуется запустить transmission на несколько секунд, для этого выполняем команду:

 

transmission-daemon

Ждем около двадцати секунд и выполняем команду:

 

killall transmission-daemon

Теперь запускаем WinSCP и идем в каталог /mnt/root/.config/transmission-daemon и открываем для редактирования файл settings.json (если этот файл отсутствует, создаем).

Удаляем все содержимое и вставляем следующий текст, предварительно отредактировать параметры: «rpc-username» и «rpc-password».

{
    "alt-speed-down": 50,
    "alt-speed-enabled": false,
    "alt-speed-time-begin": 540,
    "alt-speed-time-day": 127,
    "alt-speed-time-enabled": false,
    "alt-speed-time-end": 1020,
    "alt-speed-up": 50,
    "bind-address-ipv4": "0.0.0.0",
    "bind-address-ipv6": "::",
    "blocklist-enabled": true,
    "blocklist-url": "http://www.example.com/blocklist",
    "cache-size-mb": 2,
    "dht-enabled": true,
    "download-dir": "/mnt/share/torrents",
    "download-limit": 100,
    "download-limit-enabled": 1,
    "encryption": 2,
    "idle-seeding-limit": 30,
    "idle-seeding-limit-enabled": false,
    "incomplete-dir": "/mnt/share/incomplite",
    "incomplete-dir-enabled": false,
    "lazy-bitfield-enabled": true,
    "lpd-enabled": false,
    "max-peers-global": 35,
    "message-level": 2,
    "open-file-limit": 32,
    "peer-limit-global": 240,
    "peer-limit-per-torrent": 60,
    "peer-port": 25000,
    "peer-port-random-high": 65535,
    "peer-port-random-low": 49152,
    "peer-port-random-on-start": false,
    "peer-socket-tos": 0,
    "pex-enabled": true,
    "port-forwarding-enabled": true,
    "preallocation": 1,
    "ratio-limit": 2,
    "ratio-limit-enabled": false,
    "rename-partial-files": true,
    "rpc-authentication-required": true,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-password": "придумать пароль",
    "rpc-port": 9091,
    "rpc-username": "придумать логин",
    "rpc-whitelist": "",
    "rpc-whitelist-enabled": false,
    "script-torrent-done-enabled": false,
    "script-torrent-done-filename": "",
    "speed-limit-down": 100,
    "speed-limit-down-enabled": false,
    "speed-limit-up": 100,
    "speed-limit-up-enabled": false,
    "start-added-torrents": true,
    "trash-original-torrent-files": false,
    "umask": 18,
    "upload-limit": 200,
    "upload-limit-enabled": 1,
    "upload-slots-per-torrent": 14
}

Сохраняем файл. Через WinSCP  создаем каталоги:

mnt/share

mnt/share/torrents

mnt/share/incomplite

Сюда будут скачиваться файлы.

Помещаем transmission в автозагрузку, для этого заходим на http://192.168.1.1/Diagnostics.asp , добавляем в старт скрип следующее:

source /mnt/root/.profile
 killall transmission-daemon
 sleep 2
 transmission-daemon -g /mnt/root/.config/transmission-daemon/

Запускаем WinSCP, идем в каталог /mnt/root/, открываем файл .profile, в самый конец добавляем строчку:

 

export TRANSMISSION_WEB_HOME='/opt/usr/share/transmission/web/'

Теперь разрешаем входящие соединения на transmission. Через веб-интерфейс заходим в http://192.168.1.1/Diagnostics.asp в Commansds вставляем строку:

 

iptables -I INPUT  -p tcp --dport 25000 -j ACCEPT

Нажимаем «Save Firewall»

Теперь перезагружаем роутер.

Проверяем в браузере работу веб-обвязки по ссылке http://192.168.1.1:9091, будет запрос на ввод логина и пароля, вводим те что указывали в файле settings.json

Для удобства можно воспользоваться бесплатной утилитой transmisson-remote-gui

Настройка transmisson-remote-gui

Настройки элементарные. На вкладке «подключение» указываем:

Узел: 192.168.1.1

Порт: 9091

настройка transmission gui

Пользователь и пароль те что указывали в конфиге transmission

Переходим на вкладку «Пути» и вставляем следующую строку:

/mnt/share/torrents=\\192.168.1.1\Public\share\torrents

настройка путей transmission gui

Все.

Made in JustPC.Ru

 

  • Павел

    спасибо.

    статья очень помогла.

    Вчера прошил роутер. Все работает, кроме ip tv, проваедйр тот же, triolan.

    Если не подюкючаю к роутеру жестий диск, достаточно ввести только команду указанную в разделе?

  • Mazzilla

    Не актуально — ссылки на сервере open-wrt поменялись, команды написаны слитно, не прописано что делать если вдруг opkg окажется не найден, да и как настроить скажем один IPTV, без принт-серверов, FTP и прочей лабудени которая потребуется чуть реже чем никогда…