App Android tirrifjuta taħdem fuq VPN: liema saff jiddeċiedi
App tista’ tirrifjuta VPN minħabba verifika lokali tat-trasport, regola tal-indirizzi fuq is-server jew il-politika tagħha stess. Iddistingwi t-tlieta qabel ma tbiddel il-ħruġ.
Meta app Android tieqaf taħdem fil-mument li jogħla t-tunnel, tliet affarijiet differenti jistgħu jkunu responsabbli, u kollha jipproduċu fallimenti li jidhru simili. L-app tista’ taqra l-istat tan-netwerk tat-telefon stess u tirrifjuta lokalment. Is-server jista’ jikklassifika l-indirizz li minnu tasal u jirrifjutah. Jew ir-rifjut jista’ ma jkollu xejn x’jaqsam mal-VPN. L-ordni hawn taħt tiġbor provi qabel ma tbiddel xi ħaġa, għax il-bdil tal-ħruġ huwa l-iktar pass għali u dak li l-inqas x’aktarx jgħin jekk il-verifika hija lokali.
Pass 1: sib meta l-app tirrifjuta
Il-ħin huwa l-ewwel distinzjoni. Ibbla lil-buffer tal-log, erġa’ pproduċi l-falliment u ħares lejn dak li għamlet l-app qabel ma tkellmet:
adb logcat -c
# reproduce the failure in the app
adb logcat -d | grep -iE 'vpn|network|connect|http' | tail -60
Jekk l-app tirrifjuta qabel ma jiġi ppruvat xi talba ħierġa, qed tara deċiżjoni lokali. Jekk tikkonnettja, tibgħat xi ħaġa u mbagħad turi żball, ir-rifjut ġie min-naħa l-oħra. Jekk l-app tfalli bl-istess mod bit-tunnel mitfi, il-VPN qatt ma kien il-varjabbli.
Ittratta dan il-ħin bħala prova, mhux bħala konferma. App tista’ terġa’ ddoqq tweġiba maħżuna, u t-talbiet fl-isfond setgħu rnexxew jew fallu qabel ma ħarist. Innota l-marki tal-ħin tal-aħħar talba li rnexxiet u tal-iżball, mhux biss il-mument li fih deher il-messaġġ.
Pass 2: aqra l-ħarsa tat-telefon stess lejn in-netwerk
Android jesponi l-istat tal-VPN bħala kapaċità tan-netwerk, għalhekk app m’għandhiex bżonn lista ta’ fornituri kummerċjali biex tinnota li tunnel huwa attiv. Tistaqsi lis-servizz tal-konnettività x’inhu n-netwerk attwali, u t-tweġiba tinkludi bit tat-trasport tal-VPN:
val cm = context.getSystemService(ConnectivityManager::class.java)
val caps = cm.getNetworkCapabilities(cm.activeNetwork)
val onVpn = caps?.hasTransport(NetworkCapabilities.TRANSPORT_VPN) == true
Dik il-verifika hija lokali u rħisa, u tispjega klassi sħiħa ta’ rapporti tat-tip “dan l-app ma jaħdimx fuq VPN” mingħajr ebda klassifikazzjoni mill-bogħod. Dak li l-app tista’ tara għadu jiddependi mill-kuntest tan-netwerk tagħha stess, għalhekk tassumix li kull app tiċċekkja kull profil fuq il-mezz.
Minn workstation tista’ tara l-istess stat fuq mezz tat-test bl-użu ta’ adb shell dumpsys connectivity u billi tfittex id-dħul tan-netwerk VPN. Qabbel ġirja bit-tunnel ’il fuq ma’ ġirja bit-tunnel ’l isfel, u żomm iż-żewġ ħruġ.
Pass 3: aqra x’jara s-server fil-verità
L-ieħor li josserva huwa s-servizz. Jara l-indirizz tas-sors li jasal, u jista’ jaġixxi fuq l-indirizz, in-netwerk tal-hosting warajh, ir-reġjun, il-carrier jew sinjali marbuta mal-kont u mal-mezz. Xejn minn dawn mhuwa identità unika, u l-indirizzar maqsum jagħmel il-blokki kolaterali normali: indirizz ristrett wieħed jista’ joħroġ utenti mhux relatati wara l-istess traduzzjoni.
Iġbor l-indirizz mill-istess triq li tuża l-app, mhux minn browser fuq laptop. Fuq it-telefon, talba sempliċi lil servizz tal-eku tal-indirizzi turi x’jirċievi n-naħa l-bogħida, u t-tqabbil ma’ talba fuq in-netwerk ċellulari jgħidlek jekk l-indirizz inbidilx xejn.
Jekk l-app taħdem fuq in-netwerk ċellulari u tfalli fuq it-tunnel bl-istess kont, ir-rifjut jinsab fit-tarf il-bogħid jew fil-politika tal-app stess. Jekk tfalli f’kull każ, il-VPN mhuwiex il-fattur distintiv u għandek tieqaf tittestja l-punti tat-tarf.
Pass 4: qabbel il-provi ma’ waħda mit-tliet sentenzi
Tliet kombinazzjonijiet ikopru kważi kull rapport. Rifjut mingħajr ebda tentattiv ħiereġ waqt li tunnel huwa attiv jindika verifika lokali tat-trasport. Talba li toħroġ u terġa’ lura bi żball, skadenza f’host partikolari jew messaġġ ta’ reġjun jindikaw in-naħa l-bogħida. Falliment li jerġa’ jiġri fuq in-netwerk ċellulari mingħajr tunnel jindika l-kont, il-verżjoni tal-app jew il-politika tas-servizz stess, u ebda bidla fil-VPN ma ċċaqlaqha.
Ikteb is-sentenza flimkien mal-prova li pproduċiet. Il-valur ta’ dan il-pass huwa li jwaqqaf iċ-ċiklu fejn xi ħadd ibiddel in-nodi tal-ħruġ erba’ darbiet biex isewwi verifika li taħdem fuq it-telefon stess.
Iżomm ukoll it-talbiet onesti. Il-hosting personali jbiddel il-punt tat-tarf u l-ħruġ tiegħu lejn l-internet; ma jagħmilx lil Android jinsa li netwerk VPN huwa attiv, u ma jiggarantixxix l-aċċettazzjoni minn servizz li jikklassifika indirizzi. Filtru lokali jista’ jiġi attivat fuq in-netwerk VPN tiegħek stess daqskemm fuq wieħed kummerċjali.
Pass 5: imxi t-triq appoġġjata u ivverifikaha
Ibda mill-politika dokumentata tal-prodott u mill-proprjetarju tal-appoġġ tiegħu. Ibgħat il-verżjoni tal-klijent, il-messaġġ eżatt u tieqa qasira tal-falliment; tibgħatx qbid sħiħ tat-traffiku jew kredenzjali biss biex tipprova li żball jeżisti.
Jekk is-servizz jippermetti aċċess dirett u l-politika tal-mezz tippermettih, allura l-esklużjoni għal kull app hija l-mekkaniżmu appoġġjat, u hija deliberatament toħroġ dik l-app mit-tunnel minflok ma taħbi t-tunnel. Imbagħad it-traffiku tal-app joħroġ fit-triq tiegħu stess, li hija deċiżjoni ta’ politika li xi ħadd irid jerfa’ l-piż tagħha. F’konfigurazzjoni li timblokka mingħajr VPN, app eskluża tista’ sempliċement titlef il-konnettività, għalhekk ipprova dik il-kombinazzjoni qabel ma twiegħed li taħdem.
Wara kull bidla, erġa’ agħmel it-test tal-ħin tal-pass wieħed, ikkonferma li l-app taħdem u kkonferma li kull app oħra għadha tuża t-tunnel. Imbagħad erġa’ stabbilixxi l-konfigurazzjoni preċedenti u ċċekkja jekk il-falliment jerġax jiġri, għax tiswija li ma tistax tirriproduċi hija koinċidenza li terġa’ tiltaqa’ magħha.