Showing posts with label Putty. Show all posts
Showing posts with label Putty. Show all posts

Tuesday, December 17, 2013

IPTV 7-oji diena - xupnpd - DLNA serveris routeryje

Mano sukurtas Plex papildymas puikiai veikia ir naudoju jį jau kurį laiką kasdieniam televizijos žiūrėjimui, tačiau Plex nenoriai dirba su Android ir Apple įrenginiais, ir papraščiausias sprendimas vietoj Plex naudoti Serviio, kuris tiesą sakant man nelabai patinka, painus produktas, taigi daug dėmesio jam neskyriau. Tačiau naršydamas po interneto platybes aptikau xupnpd - eXtensible UPnP agent - kuris pasirodė ganėtinai adwanced produktas, tačiau žadėjo IPTV be kompiuterio, tereikia turėti routerį! Sudomino, pabandžiau, mano Asus RT-N66U veikia puikiai, taigi dalinuosi trumpa instrukcija kaip vyko diegimas ir išvadomis ar verta:

Visų pirma reikia routerio, kuriame būtų galima diegti papildomus paketus, t.y. tinka bent koks custom firmware kaip DD-WRT ar TomatoUSB ar kas nors panašaus, mano atveju tai minimaliai modifikuotas standartinis Asuswrt: Asuswrt-Merlin. Dar reikia USB atmintinės routeryje, arba kokio išmanaus routerio turinčio vietos, bet kaip jau kalbėjau praeitą kartą geriau naudoti atskirą USB atmintinę o ne routerio particijas. Taigi, viskas iš eilės:



  1. Jungiamės prie routerio Putty pagalba ir instaliuojame Entware arba Optware (galima apseiti ir be Entware, bet taip papraščiau)

  2. Entware duos toolsą opkg kuris padės instaliuoti xupnpd:
    opkg install xupnpd

  3. Tada kažkam reikia į iptables įdėti tokią taisyklę:
    iptables -I INPUT -i lo -j ACCEPT

    Tiesą sakant nelabai įsivaizduoju ką ji daro ir kam ji reikalinga, netestavau xupnpd be jos, taigi nesu įsitikinęs ar ji tikrai reikalinga, bet kad problemų nebūtų ji įrašyta į ankščiau aptarinėtą services-start skriptą kad perkrovus routerį viskas veiktų.

Na va kaipo ir viskas, atsidarome puslapį http://192.168.1.1:4044 (portą galima pakeisti nustatymuose arba xupnpd.lua failiuke), pakrauname beveik tokį patį playlistą kaip mano Plex plugine (vienintelis skirtumas kad vietoj tvg-logo naudojamas atributas logo, galite replace'inti su Notepad++) ir bandome žiūrėti per DLNA ar UPnP klientą, aš kolkas testavau tik su savo LG SmartTV, veikia puikiai, deja kaip ir Serviio atveju vaizdas šiek tiek neproporcingas, pakeisti nėra kaip, ir garso takelio irgi televizorius perjungti nesugeba, taigi per Plex žiūrėti maloniau. Bent kokiu atveju jeigu neturite kompiuterio serveriui, labai geras sprendimas, ačiū Anton Burdinuk už tokį appsą, ir dar ačiū Pavel V. Cherenkov už udpxy servisą, be kurio neveiktų aukščiau minėtas playlistas.

Friday, October 4, 2013

IPTV 5-oji diena - Asus RT-N66U papildomi nustatymai skriptų pagalba

Kaip ir žadėjau, pratęsimas kaip išsdaugoti router'io konfigūraciją, kuri nepasiekiama per GUI, tiesa šis sprendimas atrodo tinka tik Merlino modifikuotai Asus programinei įrangai, kadangi pas Merliną yra JFFS particija pritaikyta vartotojų skriptams kurie paleidžiami tam įvykstant tam tikriems įvykiams, tiesa yra nerekomenduojama šia particiją naudoti dažnai kadangi jos įrašymų kiekis yra ribotas, geriau naudoti kokį nors ir orastos kokybės USB flash'iuką, tokį pakeisti tikrai pigiau negu visą router'į.

Taigi viskas iš eilės, Merlin'o firmware įrašėm praeitą kartą, patikrinam ar įjungtas JFFS: Administration - System - Enable JFFS partition, pasijungiam per Putty (ką irgi išmokom praeitą kartą) ir kuriam naują failą vi pagalba:



vi /jffs/scripts/firewall_start


Vi tikrai lengvai užsimiršta kai ilgai nesinaudoji, teko naudotis google pagalba kad galėčiausuvaldyti, failo turinys atrodo taip:



#!/bin/sh
sleep 10
killall udpxy
udpxy -m eth0 -p 4000
iptables -I INPUT -p tcp –dport 4000 -j ACCEPT


Vi uždaromas suvedus komandą :x (prieš tai paspaudus Esc kad pereiti į komandinės eilutės režimą), toliau reikia suteikti teises skriptui:



chmod a+rx /jffs/scripts/*


Ir viskas, jeigu nepadaryta klaidų perkrovus routerį bus perkrautas Udpxy servisas ir atidarytas 4000 portas, būtinai patikrinkite skriptą ar nėra klaidų prieš palikdami jį, nes jungiantis routeriui jokių klaidų praneišmų niekur nerodys (na nebent kur nors yra logai, nesu įsitikinęs). Tai tiek, ačiū už dėmesį, kitą dieną tikiuosi grįžti prie televizoriaus konfigūravimo.

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.