Настройка IPTV в OpenWRT Asus RT-N13U

Столкнулся с проблемой прошивки на своем роутере. Никак не хотел работать стабильно. В итоге, перепробовав кучу разных прошивок, остановился на OpenWRT. Для желающих установить следуем сюда.

Итак, я отвлёкся. Мой провайдер предоставляет доступ к IPTV, поэтому изредка за работой я включаю себе что-нибудь из телепередач. Перейдя на данную прошивку заметил, что стандартной настройки UDP-HTTP в ней нет. Поэтому начал рыть рунет на предмет чего-нибудь, что поможет мне в данной ситуации. В результате набрел на статью Silver_Clash «Настройка IPTV в OpenWRT», однако по описанному методу у меня сделать ничего не получилось. Провозившись до 5 утра и найдя в комментариях заветные строки, я его запустил. Теперь хочу поделиться инструкцией с читателями.

Первым делом заходим на ваш роутер по ssh под root пользователем. Все настройки будем производить из консоли.

Устанавливаем udpxy:

opkg update
opkg install udpxy

После успешной установки проверим что udpxy запускается:

/usr/bin/udpxy

Если всё в порядке, команда выведет версию udpxy и ее основные опции.

Перейдем, собственно, к настройке (мне было удобнее работать с файлами на роутере через графический интерфейс приложения WinSCP). Открываем файл настроек udpxy (как вам будет удобнее, но напишу для тех, кто работает в putty):

vi /etc/config/udpxy 

*в случае, если будет установлена новая версия, возможен вариант изменения названия файла настроек, тогда команда будет выглядеть так:

 vi /etc/config/udpxy-opkg
*
Скорее всего, вы увидите что-то такое:

config udpxy
	option verbose '0'
	option status '1'
	# option bind '0.0.0.0'
	option port '4022'
	# option source '0.0.0.0'
	# option max_clients '5'
	# option log_file '/var/log/udpxy'
	# option buffer_size '4096'
	# option buffer_messages '-1'
	# option buffer_time '-1'
	# option nice_increment '0'
	# option mcsub_renew '0'


Тут вам необходимо изменить (или оставить как есть) порт, на котором будет крутиться udpxy.

Изменили? Тогда идем далее.

Запускаем кодировщик командой:

/etc/init.d/udpxy start

Проверить запустилась ли udpxy можно при помощи команды:

ps |grep udpxy

Если вы видите в результате только одну строку, возвращайтесь к настройкам и проверяйте, что вы сделали не так. Если все верно, вы увидите что-то вроде:

 2035 root       844 S    /usr/bin/udpxy -T -p 4022 -S
 2158 root      1476 S    grep udpxy


Можно открыть в браузере страничку 192.168.1.1:4022/status для проверки что всё работает.
Теперь нужно прописать наш стартовый скрипт в автозагрузку.

/etc/init.d/udpxy enable


Теперь необходимо настроить фаервол для udp трафика:

config rule
	option src 'wan'
	option proto 'igmp'
	option target 'ACCEPT'

config rule
	option src 'wan'
	option proto 'udp'
	option dest_ip '224.0.0.0/4'
	option target 'ACCEPT'

Эти правила добавляем в /etc/config/firewall, после этого перезапускаем службу:

/etc/init.d/firewall restart

Есть еще одна проблема, когда нет прописанного маршрута для мультикаста (у меня этот момент был критичным).
Тогда добавляем этот статический маршрут в cron:

@daily route add -net 224.0.0.0/4 dev eth0.2 metric 1

И для надежности прописываем в ssh:

route add -net 224.0.0.0/4 dev eth0.2 metric 1

eth0.2 — это интерфейс, на который wan порт прицеплен.

Теперь можно перезагрузить и сам роутер, чтобы убедиться, что все необходимые службы запускаются, и все работает именно так, как мы задумали.

Берем список каналов у провайдера и все ссылки преобразуем так, как описано в мануале к udpxy:

http://{address}:{port}/{protocol}/{channel_addr}:{channel_port}

То есть если у вас в списке каналов указано:
udp://@239.77.0.93:1234

То на выходе должно получиться:

http://192.168.1.1:4022/udp/239.77.0.93:1234

Спасибо за внимание.
Share post

Similar posts

Comments 11

  • UFO just landed and posted this here
      0
      Каммент лучше чем весь топик, спасибо. Попробую msdlite.
        0
        Замечательно, конечно. Мейнтейнером пакета для OpenWrt будете? :)
        • UFO just landed and posted this here
          –3
          ну я не знал о таком
          0
          Недавно тоже мучился, больше не с настройкой, а с поддержкой, которая упорно доказывала мне, что TP-Link 3420 не поддерживается, и я должен роутер у них приобрести. Ну да ладно.
          Я некомпетентен в этой области, потому настраивал через веб-интерфейс (luci), по первому совету из гугла разделил свич на 2 VLAN'а, на одном поднял WAN и воткнул приставку, на другом ppp-соединение. Как ни странно, через 15 минут всё заработало :)
            0
            Очередной пересказ wiki.openwrt.org/? :)

            И почему не просто igmpproxy?

            defblog.tk/2013/08/29/nastroyka-igmpproxy-v-openwrt-dlya-interzet-iptv/
            (и заодно) defblog.tk/2013/08/31/nastroyka-udpxy-v-openwrt/
            У меня настроены оба. igmpproxy для себя на ПК, udpxy для девайсов (берём, например, play.google.com/store/apps/details?id=ru.iptvremote.android.iptv, указываем адрес udpxy, скармливаем ему обычный плейлист (модифицировать не надо, он сам генерит нужные ссылки) и смотрим в обычном видеоплеере) и родственников с другим провайдером (то же самое, IPTV для андроида и IP-TV Player для ПК (точно так же умеет генерировать ссылки из адреса прокси и плейлиста с udp-потоками)) — udpxy смотрит в интернет.
              –2
              igmpproxy у меня не заработал + это udp трафик, а он у меня почему то просто ложит роутер и весь интернет
                –2
                altnet кстати не нашел какие адреса прописывать
                0
                Статья из цикла — «Как найти в гугле и запостить на хабр»
                  –2
                  статья из цикла попробуй *ля найди в гугле то, что у тебя заработает. перепробовал кучу разных вариантов-поднялся и нормально работает только этот

                Only users with full accounts can post comments. Log in, please.