четвер, 24 травня 2012 р.

Установка и настройка OpenWRT 10.03.1. Часть 2 (IPTV).

Всем привет!

Подготовка

Рассмотрим как настроить IPTV, чтобы заработало на роутерах с OpenWRT. Для DD-WRT процесс описан здесь.
Нам необходимо на компьютере:
  • ssh-клиент для доступа к роутеру (подойдет PuTTY или любой другой);
На роутере, зайдя по ssh будет настраивать следующее:
  • udpxy - UDP Proxy;
  • PureFTPd - простой, но довольно продвинутый FTP server. Нужен для автоматического обновления плейлиста со списком каналов;
Заходим по ssh на роутер, и делаем следующее:
  1. opkg update - обновили список пакетов;
  2. opkg install udpxy - установили UDP Proxy;
  3. opkg install pure-ftpd - FTP server;
  4. opkg install shadow - набор утилит для работы с пользователями/группами;
  5. opkg install nano - для тех, кому с vi тяжело - простой DOS-подобный текстовый редактор. Устанавливать необязательно. Если хочется, то дальше везде вместо vi подставляем nano - все конфги буду делаться этим редактором.
Все необходимые пакеты мы установили, осталось их настроить для работы. Сначала настраиваем udpxy.

Настройка udpxy на OpenWRT

Делаем следующее:
  1. vi /etc/rc.local - Вбиваем в начало строку: udpxy  -p 81 -M 30 -B 256Kb -m IP_ADDRESS_1 -a IP_ADDRESS_2 , где IP_ADDRESS_1 - внешний адрес роутера, смотрящий на провайдера, IP_ADDRESS_2 - локальный адрес роутера в домашней сети.
  2. vi /etc/firewall.user - Вбиваем туда строку: iptables -I INPUT -d 224.0.0.0/4 -j ACCEPT . Необходимо, чтобы firewall пропускал мультикаст траффик из внешней сети в роутер.
  3. reboot - перезагружаем роутер, после рестарта UDP Proxy заработала. Перейдем к настройке автообновления телепрограммы и автозагрузке при запуске программы для просмотра IPTV.

Настройка автообновления телепрограммы для IPTV

- Настройка скрипта обновления телепрограммы и планировщика

  1. mkdir -p /home/iptv - создаем папку, где будет работать скрипт и храниться телепрограмма;
  2. vi /home/iptv/iptv_playlist.sh - и создаем скрипт, как описано здесь (пункт 9);
  3. chmod +x /home/iptv/iptv_playlist.sh - даем права на запуск.
  4. /home/iptv/iptv_playlist.sh - запускаем скрипт. Должен появиться файл с переделанной под udpxy телепрограммой. ls -la /home/iptv/ - чтобы проверить. Файл http_playlist.m3u не должен быть пустым. Если он не пустой - значит все ОК.
  5. vi /etc/rc.local - Вбиваем в начало строку: /home/iptv/iptv_playlist.sh . Теперь телепрограмма будет обновляться при каждом старте роутера.
  6. crontab -e - Вбиваем туда строку: @daily root /home/iptv/iptv_playlist.sh . Сохраняем и выходим. Теперь раз в сутки телепрограмма будет обновляться сама. Больше ничего делать не надо. Она всегда будет актуальной.
  7. Если раньше планировщик был не задействован, выполняем команду: /etc/init.d/cron enable - чтобы его задействовать.

- Настройка FTP сервера

FTP сервер нам нужен для того, чтобы с него в программе для просмотра IPTV автоматически подгружалась адаптированная под udpxy телепрограмма. Можно конечно это реализовать и по-другому. Я сделал так. И VLC и IPTV Player отлично умеют читать телепрограмму по FTP протоколу. Проверено, работает 100%. Настройку Pure-FTPd сервера я делал по этой инструкции. Делаем следующее:
  1. vi /etc/config/pure-ftpd . Здесь в строке option authentication меняем значение на: 'puredb:/etc/pureftpd.pdb' и option enabled 0 меняем на option enabled 1.  Сохраняем файл конфигурации.
  2. groupadd pure_ftpd_grp
  3. useradd -g pure_ftpd_grp pure_ftpd_user
  4. pure-pw useradd iptv -u pure_ftpd_user -d /home/iptv/ - пароль iptv
  5. pure-pw mkdb

  6. /etc/init.d/pure-ftpd enable
  7. /etc/init.d/pure-ftpd reload
  8. /etc/init.d/pure-ftpd start
Все. Настройка FTP Server - завершена. Измененная телепрограмма доступна по ссылке: ftp://iptv:iptv@ROUTER_IP_ADDRESS/http_playlist.m3u , где ROUTER_IP_ADDRESS -  адрес роутера в локальной сети, например 192.168.1.1. 
Если pure-FTPd не поднялся - делаем reboot.

- Настройка программы просмотра

Теперь, чтобы автоматически загружалась телепрограмма в нашу программу просмотра делаем следующее:
  • для VLC Media Player - делаем ярлык, например на Рабочий Стол. Открываем свойства и вбиваем после названия программы после кавычек вышеуказанную ссылку.
  • для IPTV Player - вбить адрес на первой закладке в настройках и поставить галочке обновлять при запуске.
Теперь у Вас всегда все самое свежее :-).

С телевизором вроде все.  Дальше будем настроивать жесткий диск SAMBA демон для доступа к файлам из под Windows.  

23 коментарі:

  1. У меня роутер после перезагрузки получает от провайдера разные IP-шники. Есть ли вариант автоматически при получении IP вносить поправки IP_ADDRESS_1 в /etc/rc.local и рестартовать UDPXY?

    ВідповістиВидалити
    Відповіді
    1. Попробуйте вставить вместо внешнего интерфейса, строг соблюдая все кавычки, уменя работает.:

      `cat /var/state/network |grep wan.ipaddr|sed -e 's/network.wan.ipaddr=//'`

      Видалити
    2. я кста так и оставил в /etc/rc.local :)

      Видалити
    3. Спасибо! Получилось.
      Но есть одно НО :) Не хочет работать... Роутер 160NL. Вставил напрямую сетевой кабель от прова в ноут - плейлист работает, почти все каналы, если через роутер-udpxy - не хочет.
      УРЛ канала выглядит вот так: "udp://@239.1.1.4:1234", в результате УРЛ потока получается "http://192.168.1.1:81/udp/239.1.1.4:1234" - не работает :(

      PS: вот бы еще аналогичный мануал по настройке самбы. Пробовал по ФАКу на OpenWRT - не получается... Там слишком заумно, а мне нужно "для чайников".

      Видалити
    4. в /etc/firewall.user - добавили как описано выше?

      По самбе напишу чуть позже мануал, хотя на офиц. сайте OpenWRT все более чем понятно.

      Видалити
  2. Не работает FTP.. нельзя ли как-то определить, на каком этапе его настройки я что-то делаю неправильно?

    ВідповістиВидалити
    Відповіді
    1. В пункте 4 пропустили слово пароль, там после пути сразу должен быть пароль: iptv

      Видалити
    2. Там, если быть точным, пропущен параметр -d перед путём, а пароль он предлагает ввести сразу после того как нажмешь на enter
      в общем пользовтаель создался успешно, а вот насчет последних трех пунктов у меня сомнения
      Нелья ли как-то из интерфейса того же putty проследить за правильностью запуска pure-ftp ?
      Просто я делаю все в точности по инструкции но сервак не работает

      Видалити
    3. -d - подправил. Спасибо.
      Командой ps | grep ftp - есть pure-ftpd - демон. Пробовали проверить подключение с помощью команды ftp или используя, например, Far Manager.

      Видалити
  3. Получилось подружить его с внешним диском и сделать качалку торрентов?

    ВідповістиВидалити
    Відповіді
    1. У меня стоит диск 750ГБ Transcend, файловая система ext4, даже под своп немного выделил. Доступ к нему по samba & ssh. Но от торрентов отказался. Или торренты или все остальное + роутер потсоянно в перезагрузку уходит и загрузки CPU зашкаливает.

      Видалити
    2. На днях искаль, нашел новий Download Manager aria2c. Есть web-interface. Отзывы вроде хорошие, но чтобы полноценно заработал надо ставить новую прошивку 12.09. Так как она пока RC, ставить желания нет. Кто поставит - расскажите как работает "качалка".

      Видалити
  4. Добрый Виталий, помогите пожалуйста с четвертым шагом, у меня система пишет следующее:
    root@SKY2:~# pure-pw useradd iptv -u pure_ftpd_user -d /home/iptv/
    Password:
    Enter it again:
    Error.
    Check that [iptv] doesn't already exist,
    and that [/etc/pureftpd.passwd.tmp] can be written.
    пользователь pure_ftpd_user зарегистрировался.
    Заранее благодарю за ответ

    ВідповістиВидалити
    Відповіді
    1. 1. Не было ли ошибок в предыдущих шагах?
      2. "Check that [iptv] doesn't already exist," - я так понимаю, что пользователь уже создан.

      Видалити
  5. Вроде не ругался не на что,
    Виталий, подскажите, после этих команд должен быть ответ от wrt?
    root@SKY2:~# pure-pw mkdb
    root@SKY2:~# /etc/init.d/pure-ftpd enable
    root@SKY2:~# /etc/init.d/pure-ftpd start
    root@SKY2:~#
    У меня ничего не отвечает, соединение по ftp не проходит, возможно не правильно использую ftp:

    ~ alex$ ftp root@192.168.1.1
    ftp: Can't connect to `192.168.1.1': Connection refused
    ftp: Can't connect to `192.168.1.1'
    ftp>

    В pure-ftpd :
    config pure-ftpd
    option port '21'
    option noanonymous '1'
    option chrooteveryone '1'
    option maxclientsperip '10'
    option maxclientsnumber '4'
    option peruserlimits '3:4'
    option umask '133:022'
    option authentication 'puredb:/etc/pureftpd.pdb'
    option enabled '0'

    Плейлист создается... проблемы только с FTP..

    ВідповістиВидалити
    Відповіді
    1. 1. Вообще *nix любой при корректном выполнении команды - ничего не выдает. Снова появляется приглашение ввода команд.
      2. В pure-ftpd :
      option enabled '0' замените на option enabled '1'.

      Это мой недочет, уже исправил в статье :)

      Видалити
  6. Ага, спасибо, заработало. Теперь бы на телевизор по dlna отдать.....

    ВідповістиВидалити
  7. Спасибо большое. Наконец ушел от DD-WRT , мало того что пропали залипания Wifi на openwrt, так еще и наконец IPTV заработал во вайваю. Респектище. Подробно, доходчиво и грамотно! Еще раз спасибо. Дальше буду мучать самбу и торрент!

    ВідповістиВидалити
  8. Відповіді
    1. Если иньтересно, опишите как сделали - опубликуем в блоге с Вашим копирайтом

      Видалити
  9. Да, конечно как закончу постараюсь состряпать отчетик.
    А пока маленькое замечание
    При такой настройке udpxy в первом пункте он у меня отказался запускаться, исправил на вот это и все стало Ок
    /usr/bin/udpxy -p 81 -M 30 -B 256Kb -m IP_ADDRESS_1 -a IP_ADDRESS_2

    ВідповістиВидалити
  10. KATONGO GAMING - Casino and Gaming, Gambling
    KATONGO GAMING · 24/7 worrione · Live dealer · Online casino 제왕카지노 · Casino games · Video poker · Casino games · Live dealers · Casino 온카지노 poker · Live casino.

    ВідповістиВидалити