Kapag huminto ang isang Android app sa sandaling umangat ang tunnel, tatlong magkaibang bagay ang maaaring may pananagutan, at magkatulad ang hitsura ng mga nabubuo nilang kabiguan. Maaaring basahin ng app ang sariling kalagayan ng network ng telepono at tumanggi nang lokal. Maaaring uriin ng server ang address na pinanggalingan mo at tanggihan iyon. O kaya wala talagang kinalaman ang pagtanggi sa VPN. Ang pagkakasunod-sunod sa ibaba ay nangongolekta muna ng ebidensya bago magbago ng kahit ano, dahil ang pagpalit ng labasan ang pinakamahal na hakbang at pinakamaliit ang tsansang makatulong kung lokal ang pagsusuri.

Hakbang 1: alamin kung kailan tumatanggi ang app

Ang oras ang unang tagapaghiwalay. I-clear ang buffer ng log, ulitin ang kabiguan, at tingnan ang ginawa ng app bago ito nagreklamo:

adb logcat -c
# reproduce the failure in the app
adb logcat -d | grep -iE 'vpn|network|connect|http' | tail -60

Kung tumatanggi ang app bago subukan ang anumang papalabas na kahilingan, lokal na pasya ang tinitingnan mo. Kung kumokonekta ito, nagpapadala ng isang bagay at pagkatapos ay nagpapakita ng error, galing sa kabilang panig ang pagtanggi. Kung pareho ang kabiguan ng app kahit patay ang tunnel, hindi kailanman naging baryabol ang VPN.

Ituring ang oras na iyon na ebidensya, hindi patunay. Maaaring i-replay ng app ang naka-cache na sagot, at maaaring nagtagumpay o nabigo ang mga kahilingan sa background bago mo pa tingnan. Itala ang mga timestamp ng huling matagumpay na kahilingan at ng error, hindi lang ang sandaling lumitaw ang mensahe.

Hakbang 2: basahin ang sariling tingin ng telepono sa network

Inilalabas ng Android ang kalagayan ng VPN bilang kakayahan ng network, kaya hindi kailangan ng app ang listahan ng mga komersyal na provider para mapansin na aktibo ang tunnel. Tinatanong nito ang serbisyo ng konektividad kung ano ang kasalukuyang network, at kasama sa sagot ang bit ng transport na VPN:

val cm = context.getSystemService(ConnectivityManager::class.java)
val caps = cm.getNetworkCapabilities(cm.activeNetwork)
val onVpn = caps?.hasTransport(NetworkCapabilities.TRANSPORT_VPN) == true

Lokal at mura ang pagsusuring iyon, at ipinapaliwanag nito ang isang buong uri ng ulat na "hindi gumagana ang app na ito sa VPN" nang walang anumang klasipikasyon mula sa malayo. Ang nakikita ng app ay nakasalalay pa rin sa sariling konteksto ng network nito, kaya huwag ipagpalagay na sinusuri ng bawat app ang bawat profile sa device.

Mula sa isang workstation makikita mo ang parehong kalagayan sa isang test device gamit ang adb shell dumpsys connectivity at sa paghahanap ng entry ng network ng VPN. Ihambing ang isang pagtakbo na nakataas ang tunnel sa isang pagtakbo na nakababa ito, at itago ang dalawang output.

Hakbang 3: basahin kung ano talaga ang nakikita ng server

Ang isa pang tagamasid ay ang serbisyo. Nakikita nito ang source address na dumarating, at maaari itong kumilos batay sa address, sa hosting network sa likod nito, sa rehiyon, sa carrier, o sa mga senyales na nakaugnay sa account at device. Wala sa mga iyon ang natatanging pagkakakilanlan, at ginagawang normal ng shared addressing ang collateral blocks: kayang magpatumba ng isang pinaghihigpitang address ang mga walang kaugnayang user sa likod ng parehong pagsasalin.

Kunin ang address sa parehong landas na ginagamit ng app, hindi mula sa browser sa laptop. Sa telepono, ang simpleng kahilingan sa isang address-echo service ay nagpapakita kung ano ang natatanggap ng malayong panig, at ang paghahambing nito sa kahilingan sa cellular ay nagsasabi kung nagbago man ang address.

Kung gumagana ang app sa cellular at nabigo sa tunnel gamit ang parehong account, nasa malayong dulo o sa sariling patakaran ng app ang pagtanggi. Kung nabigo sa pareho, hindi ang VPN ang pinagkaiba at dapat mong itigil ang pagsubok sa mga endpoint.

Hakbang 4: itugma ang ebidensya sa isa sa tatlong hatol

Tatlong kombinasyon ang sumasaklaw sa halos lahat ng ulat. Ang pagtanggi na walang papalabas na pagtatangka habang aktibo ang tunnel ay tumutukoy sa lokal na pagsusuri ng transport. Ang kahilingang lumalabas at bumabalik na may error, ang pag-timeout sa isang partikular na host, o ang mensahe tungkol sa rehiyon ay tumutukoy sa malayong panig. Ang kabiguan na nauulit sa cellular na walang tunnel ay tumutukoy sa account, bersyon ng app, o sariling patakaran ng serbisyo, at walang pagbabago sa VPN ang makakagalaw nito.

Isulat ang hatol kasama ng ebidensyang nagbigay nito. Ang halaga ng hakbang na ito ay pinipigilan nito ang paikot-ikot kung saan apat na beses binabago ng isang tao ang mga exit node para ayusin ang pagsusuring tumatakbo sa telepono mismo.

Pinapanatili rin nitong tapat ang mga pahayag. Binabago ng sariling hosting ang endpoint at ang labasan nito sa internet; hindi nito napapalimutan ng Android na aktibo ang isang network ng VPN at hindi ito nagbibigay ng garantiya ng pagtanggap ng serbisyong nag-uuri ng mga address. Maaaring mag-trigger ang lokal na filter sa isang network ng VPN na pag-aari mo kasing dali ng sa isang komersyal.

Hakbang 5: tahakin ang sinusuportahang landas at i-verify ito

Magsimula sa dokumentadong patakaran ng produkto at sa may-ari ng suporta nito. Ipadala ang bersyon ng client, ang eksaktong mensahe at isang makitid na window ng kabiguan; huwag magpadala ng buong traffic capture o kredensyal para lang patunayang may error.

Kung pinapayagan ng serbisyo ang direktang access at pinapayagan ito ng patakaran ng device, ang pagbubukod ng isang app ay ang sinusuportahang mekanismo, at sadyang inaalis nito ang app na iyon sa tunnel sa halip na itago ang tunnel. Ang trapiko ng app ay lumalabas sa sarili nitong landas, na isang desisyong pampatakaran na kailangang panagutan ng isang tao. Sa isang configuration na nagba-block nang walang VPN, maaaring mawalan lang ng konektividad ang isang naibukod na app, kaya subukan ang kombinasyong iyon bago mangako na gumagana ito.

Pagkatapos ng anumang pagbabago, ulitin ang pagsubok sa oras ng unang hakbang, kumpirmahin na gumagana ang app, at kumpirmahin na ginagamit pa rin ng lahat ng iba pang app ang tunnel. Pagkatapos ay ibalik ang dating configuration at tingnan kung bumabalik ang kabiguan, dahil ang pag-aayos na hindi mo maulit ay isang pagkakataong muli mong makakaharap.

Kaugnay na mga artikulo