Odprete ena vrata kamere, usmerite predvajalnik vanje in domnevate, da je internetna težava rešena. Nato je telefon ne more predvajati, brskalnik je ne more predvajati, in skrbniška stran kamere je od javnega roba oddaljena le eno napačno vpisano pot. Izbrani model dostave, RTSP ali HLS, odloča o večini tega, preden je napisano eno samo pravilo požarnega zidu. VPN zagotavlja le zasebni odsek.

VPN popravi pot vira, ne poti gledalca

VPS, povezan z omrežjem LAN kamere prek tunela, lahko doseže kamero na njenem zasebnem naslovu, in to je res koristno. To pomeni, da kamera ne potrebuje lastnih vhodnih vrat in da domači usmerjevalnik ostane zaprt. To vam ne pove, v katerem jeziku bo govoril gledalec. Namizni predvajalnik, brskalnik, telefon in pametni televizor podpirajo različne protokole in vsak ima svoja pričakovanja glede TLS, preverjanja pristnosti in kodekov.

Tu je predpostavka, ki se je vredno znebiti: objavljanje naj bi pomenilo, da vir postane dosegljiv. Objavljanje v resnici pomeni, da določenemu občinstvu damo podprt način za uživanje medija. Objavljen tok ima obliko, občinstvo in poverilnico; dosegljiva kamera nima nobenega od tega. Dosegljivost je tisti del, ki ga reši tunel, vstopna točka gledalca pa je tisti del, ki ga morate še oblikovati.

RTSP je pogajanje, ne ena sama vrata

RTSP prenaša nadzor seje: odjemalec zahteva opis, nastavi eno ali več medijskih sledi in nato predvaja. Prevoz samega medija se pogaja med to nastavitvijo, zato protokola ne opisujejo dobro ena sama posredovana vrata TCP. To pogajanje je del, ki ga ljudje spregledajo, ko primerjajo pravila požarnega zidu.

Odvisno od končnih točk lahko RTP prispe na ločenih vratih UDP ali je prepleten v krmilni povezavi. Posrednik, ki posreduje samo 554 in domneva, da bo ostalo delovalo, običajno ustvari sejo, ki se poveže, sporoči sled in nato ne pokaže ničesar. Preden zanjo napišete pravila, preverite prevoz, o katerem se vaša kamera dejansko pogaja. Zajem na zasebni strani to odgovori v minuti, ugibanje pa stane večer.

Za majhno, znano občinstvo s združljivimi predvajalniki je lahko namerno nastavljen posrednik RTSP pravi odgovor. Omejite, iz katerega vira sme črpati, in zahtevajte preverjanje pristnosti na posredniku. Zapišite predvajalnike, ki ste jih preizkusili, saj lahko tok RTSP, ki deluje v VLC, v brskalniku še vedno odpove.

HLS je seznam predvajanja in viri

Gledalec HLS pridobi seznam predvajanja in nato pridobi medijske segmente, ki jih ta seznam navaja. Specifikacija HLS opredeljuje ta model virov, pomembna obratovalna podrobnost pa je, da seznami predvajanja napotujejo na druge URL. Relativna sklicevanja se razrešujejo glede na lokacijo seznama, zato mora posrednik, ki prepisuje poti, te prepisovati dosledno.

Če kamera že streže uporaben HLS, lahko javni frontend te zahteve za seznam in segmente posreduje skozi tunel. Bodite pozorni na ključe, preusmeritve in URL, ki jih ustvari aplikacija. Vsak absolutni URL, ki kaže na zasebnega gostitelja, se zlomi v trenutku, ko mu gledalec zunaj omrežja LAN sledi. Relativne poti so tiste, ki preživijo prepisovanje posrednika, zato jim dajte prednost povsod, kjer nadzorujete ustvarjeni izhod.

Če kamera govori samo RTSP, mora nekaj pretvoriti vir v obliko gledalca. Prepakiranje in prekodiranje sta različni nalogi: prepakiranje ohrani kodek, medtem ko ga prekodiranje znova kodira zaradi združljivosti, in samo drugo stane resnega procesorskega časa. Nobeno od tega ne postane potrebno samo zato, ker je na poti VPN.

Načrtujte odhodno povezavo glede na to, kje poteka distribucija. En zasebni vnos, ki napaja javno medijsko storitev, se obnaša povsem drugače kot vsak gledalec, ki vleče svoj tok skozi tunel. Drugi vzorec se običajno konča v nasičeni domači povezavi in kameri, ki se zdi, da naključno odpove.

Preverjanje pristnosti postavite na rob, ki ga objavljate

TLS, preverjanje pristnosti gledalcev in beleženje dostopa spadajo na javno vstopno točko, ne na kamero. To ohranja poverilnice kamere ločene od poverilnic toka. Daje vam tudi eno mesto za preklic dostopa, ko član občinstva odide. Če te kontrole namestite na kamero, vsaka sprememba občinstva postane upravna sprememba na napravi, ki nikoli ne bi smela biti javno dosegljiva.

Držite VPN in upravna dovoljenja kamere ločeno od poti objave. VPS, ki lahko doseže spletni vmesnik kamere, da črpa tok, ne bi smel biti tudi stroj, ki ta vmesnik izpostavlja. Občinstvo ne bi smelo nikoli izvedeti naslova kamere.

Nato preverite oba konca, ki ste ju dejansko zgradili, namesto da domnevate, da veriga deluje:

$ ffprobe -v error -rtsp_transport tcp rtsp://10.50.0.9:554/stream1
$ curl -sI https://stream.example.net/live/index.m3u8
HTTP/2 200
content-type: application/vnd.apple.mpegurl

Uspešna preiskava zasebnega vira in uspešno pridobivanje seznama na javnem robu dokazujeta različni polovici zasnove. Preizkusite ju ločeno. Predvajanje iz iste vrste odjemalca, ki ga uporablja vaše občinstvo, je edini preizkus, ki pokrije celotno verigo.

Kar na koncu dobite, je veriga z namenom v vsakem členu: zasebni vir, omejen vnos, izbrano pakiranje, pooblaščen vstop gledalca. Noben od teh členov ni izbiren in noben ne nastane z odpiranjem vrat.

Sorodni članki