Tuesday, October 1, 2013

IPTV 4-oji diena - transliacija į išorę naudojant Udpxy ir Asus RT-N66U

Kaip jau lyg ir esu minėjęs, namuose turiu Asus RT-N66U router'į, jame pagal nutylėjimą sukasi Updxy servisas kuris mano ISP transliuojamo IPTV multicast srautą konvertuoja į unicast ir leidžia žiūrėti tuos unicast stream'us visiems prie router'io pasijungusiems vartotojams, deje tik LAN'e, nors galima prie router'io ir per WAN prisijungti, Udpxy nėra prieinamas nors žinau kad tas įmanoma, iš pirmo karto nepavyko tam sukonfiguruoti taigi atėjau ateičiai.

Ir vakar ta ateitis atėjo kai kolega Wadalazas bandė įrodyti kad mano idėja nelogiška ir neįgyvendinama, ir paprastas buitinis router'is nepajėgs perduoti televizijos į išorę, ir kad bakalauro diplomą aš gavau nepelnytai :), taigi gavęs motyvacijos prisėdau ir pabandžiau viską sutvarkyti:

Šiek tiek pagooglinęs išsiaiškinau, kad tereikia atidaryti Udpxy naudojamą portą (pagal nutylėjimą mano router'yje tai 4000) priėjimui iš WAN ir pakeisti Udpxy konfigūraciją kad leistų prisijungti ne tik vidiniu adresu 192.168.1.1, bet ir išoriniu, tačiau standartinės Asus programinės įrangos galimybės labai ribotos taigi reik ieškoti alternatyvų. Bent kas kažkiek nusimanantis kompiuteriniuose tinkluose man iškart rekomenduotų DD-WRT, kiek daugiau patirties turintys gal ir Tomato, apie kuriuos esu minėjęs ankstesniuosne įrašuose, tačiau mintis kad reikės visus DHCP, port forwarding'us ir pan. konfigūruoti iš naujo nelabai viliojo, taigi pradžiai pabandžiau tą patį Asuswrt, tik patobulintą nepriklausomo developer'io Merlin, tiesa jo puslapis kažkokia tragedija, bet pavyko atrasti jo mediafire paskyrą iš kur ir parsisiunčiau paskutinę stable versiją. Instaliuoti jį paprasta, extract'inam archyvą, viduj randam *.trx failą, upload'inam jį router'io nustatymuose Administration - Formware Upgrade ir viskas, net nustatymai liko visi, bet vistiek prieš tai rekomenduočiau pasidaryti atsarginę kopiją (Administration - Restore/Save/Upload Setting), maža kas. Toliau konfigūracimas, grafinio interfeiso tam rasti nepavyko, taigi naudojau unix komandas, matyt galėjau tą padaryti per Tools - Run System Command, bet nusprendžiau geriau tą daryti per Putty prieš tai įjungęs SSH palaikymą (Administration - System - Enable SSH). Jeigu nemokate naudotis Putty tai paprasta, į Host Name įrašote routerio adresą (192.168.1.1), spaudžiate Open, nurodote routerio priijungimo vardą, slaptažodį, ir baigta. 4000 portas atidaromas tokia komanda:



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


Tada reikia perkrauti Udpxy kad be parametro -a, nes Udpxy atsiliepia tik į kreipinius 192.168.1.1:4000 adresu, ką galima pamatyti http://192.168.1.1:4000/status puslapyje:



killall udpxy
udpxy -m eth0 -p 4000


Va ir viskas, http://192.168.1.1:4000/status turėtų matytis Accepting clients on: 0.0.0.0:4000, VLC player'yje nurodote network stream'ą



http://išorinis adresas arba IP (mano atveju cigaras.tk):4000/udp/xxx.xxx.xxx.xxx:1234


Kur vietoj xxx aišku atitinkami UDP adresas, ir matote atitinkama IPTV kanalą net nebūdami vietiniame tinkle, your face Wadala, god dammit!

Vienas mano kolega gyvenantis valstijose patestavo, ir aš patestavau darbe, viskas veikia, deje Wadalazui negroja, bet dėl to jau kalta Wadalos infrastruktūra, faktas kad veikia, ir net sudėtinga nebuvo (na aišku Udpxy tikrai rimtas produktas, pats kaži ar tokį suprgramuočiau, ačiū už tai Pavel V. Cherenkov), bakalaurą gavau ne veltui :)

Tačiau yra viena problema, per Putty atlikti pakeitimai nėra išsaugoti router'io konfigūracijoje, dėl to perkorvus router'į pakeitimai nusimuša, tenka iš naujo atidaryti portą ir perkrauti Udpxy, reikia pasitelkti google ir kurį vakarą tą sutvarkyti, tačiau šiai dienai užteks, taip sakant laukite tęsinio.

P.S. Taipogi ačiū už pagalbą snbforums.com.

4 comments:

  1. Labas,

    pas mane maršrutizatorius:
    150M Wireless Lite N Router:
    Model No. TL-WR740N / TL-WR740ND

    Ar įmanoma į šitą velnio mašiną sukonfigūruoti UDPXY servisą?

    Help Me, please :D

    ReplyDelete
  2. Kad įmanoma tai faktas, tik deje man pačiam neteko diegti udpxy į routerį, maniškis jau turėjo preloaded, o minėtasis TP-Link lyg ir neturi, bet planas turėtų būti maždaug toks:
    • reikia ssh priėjimo prie routerio, jeigu standartinis firmware jo neturi, tada www.dd-wrt.com, labai tikėtina kad jame ir udpxy bus;
    • jeigu udpxy naujame firmware nėra, tada pasijungi routerį per ssh klientą (pvz. Putty), parsisiunti ir instaliuoji udpxy, google yra nemažai informacijos kaip tas vyksta, pvz http://www.myopenrouter.com/forum/thread/21797/Instruction-to-install-udpxy-on-Netgear-3500l/, aš kaip minėjau nesu to daręs tai bijau kad šiuo metu negaliu daug patarti, gali pabandyti užklausti dd-wrt forumuose.

    ReplyDelete
  3. Sveiki,

    Turiu Asus RT-N68U routerį, esu pasijungęs IPTV iš tiekėjo. Tam reikia nurodyti VLAN ID. Televizija veikia be problemų per priedelį, tačiau niekaip nepavyksta pasileisti į LAN'ą per UDPXY. Turiu playlist'ą, jis veikia pasijungus kompiuterį tiesiai į routerio portą kuriame nurodytas VID, bet per UDPXY, pakoregavus playlist'ą, nieko nevyksta. Spėju kad UDPXY tiesiog nesupranta kad reikia kreiptis ne tiesiogiai į wan portą, bet per VLAN'ą, gal turite minčių kaip tai išspręsti?

    ReplyDelete
  4. Įjungiant updxy IPTV šaltinis nurodomas prie parametro -m, mano atveju tai WAN taigi nurodau eth0, tai šiuo atveju matyt reikia nurodyti -m vlan1 ar panašiai.

    ReplyDelete