Кастовање преко VPN-а: откривање, контрола или стрим?
Пријемник који недостаје, одбијена сесија и стрим који застаје не успевају на различитим местима. Именујте фазу пре него што промените VPN политику телефона или мрежу.
Кастовање се квари на три места која са кауча изгледају исто. Телефон можда никада не види пријемник, пријемник се може појавити и затим одбити сесију, или сесија може почети и застати минут касније. Тунел на телефону мења сваки од тих путева другачије, а за један од њих не мења ништа. Прво именујте фазу која не успева, па тек онда одлучите да ли је промена политике уопште права полуга.
Именујте фазу која не успева пре него што промените политику
Гледајте шта телефон ради одмах након што додирнете икону за кастовање. Празна листа је резултат откривања, додир који пријави грешку је резултат контроле, а сесија која почне па се заглави је резултат репродукције. Та три имају различите власнике, и обично само прва два укључују подешавања тунела на телефону.
| Stage | What the phone shows | Evidence that separates it |
|---|---|---|
| Discovery | No receiver in the list | Another device on the same segment sees the receiver |
| Control | Receiver listed, session refused | Port answer versus permission prompt |
| Playback | Session starts, then stalls | The receiver's own link, not the phone's |
Запишите фазу пре него што било шта промените. Исправка примењена на погрешној фази чини следећи тест нечитљивим, а већина прича о кастовању долази управо из те збрке.
Откривање је локални саобраћај, а тунел га скрива
Пријемници се оглашавају локалним најавама, а телефон их проналази упитима на истој вези, па све што уклони телефон са те везе уклања пријемник са листе. Тунел који скреће сав саобраћај ван LAN-а може сакрити те размене, а дозвола за локалну мрежу на нивоу апликације може их блокирати чак и када рута постоји. Гостујући Wi-Fi са изолацијом клијената даје исту празну листу без икаквог VPN-а. Докажите да два уређаја деле сегмент пре него што окривите тунел.
avahi-browse -at | grep -i -E 'chromecast|googlecast'
dig +short @224.0.0.251 -p 5353 _googlecast._tcp.local PTR
Прва команда наводи шта се оглашава на сегменту помоћне машине, а друга директно пита multicast DNS групу. Пријемник који недостаје у обе неће се појавити ни у апликацији на телефону, какво год било стање тунела. Ако је пријемник видљив са уређаја са искљученим тунелом, а невидљив са уређаја са укљученим, нашли сте и фазу и узрок заједно.
Изузеће за LAN држи тунел укљученим
Многи клијенти нуде изузеће за локалну мрежу које оставља тунел активним уз дозволу локалних адреса. Користите то документовано подешавање уместо да искључите kill switch или цео firewall, јер они мењају много више него што кастовању треба. Ако мрежа намерно раздваја паметне уређаје, тражите од власника конкретан саобраћај откривања, контроле и повратка уместо равног приступа.
nc -vz 192.168.1.50 8009
Контролни тест према пријемнику раздваја дозволу од доступности: порт који одговара значи да пут постоји, а одбијање значи да је телефону било дозвољено да открије уређај и даље не може да разговара с њим. Портови 8008 и 8009 су уобичајени портови за кастовање, а апликација може користити друге, па један одбијен порт третирајте као наговештај, а не пресуду. Изузеће и дозвола апликације остају независни, јер локални приступ не ствара руту, а додавање руте не даје дозволу. Kill switch такође може да одбаци локални саобраћај после поновног повезивања, због чега откривање мора поново да се тестира када се тунел врати.
Репродукција можда не користи везу телефона
У сесији коју води апликација телефон предаје пријемнику адресу медија, а пријемник је преузима преко своје везе, па промена јавне адресе телефона ништа не чини за стрим. Наслов ограничен налогом ипак може да не успе из својих разлога, а Google захтеви за кастовање покривају компатибилност апликације и уређаја, а не мрежни пут. Усмеравање самог телевизора кроз тунел је засебна конфигурација са сопственим питањима политике.
Два знака разликују режиме. Кастовање које преживи закључавање екрана телефона води апликација, јер пријемник сам преузима; пресликавање које стане када се закључа екран пошиљаоца је непрекидан стрим са телефона. Када откривање и контрола успеју али репродукција застане, гледајте уместо тога у Wi-Fi везу пријемника и његов интернет пут, јер тест брзине на телефону описује телефон, а не телевизор.
Поништите изузеће и тестирајте поново
Свака привремена промена тражи пут назад, а редослед је важан. Уклоните изузеће за LAN, поново повежите тунел да клијент поново примени своју политику, затим поновите корак откривања и забележите да ли пријемник поново нестаје. Тај редослед вам каже да ли је изузеће радило посао или се између тога променило нешто друго.
# after removing the LAN exception, reconnect and confirm the tunnel is up
resolvectl status | grep -E 'DNS Servers|Default Route|Protocols'
avahi-browse -at | grep -i -E 'chromecast|googlecast'
После тога проверите три фазе одвојено, јер успех на једној не говори ништа о осталима. Затим проверите да ли неповезане апликације на телефону и даље прате предвиђену руту, јер локално изузеће које је тихо постало потпуно заобилажење је гори исход од кастовања коме треба један додатни додир.