Umqondo ongafanele wukuthi uhlelo lwe-VpnService luphendula iswishi yesistimu bese ucingo lukuvikelwe kusukela lapho. Okwenzeka ngempela kuncane kakhulu: uhlelo lucela imvume, lwakha isixhumanisi, lufunda futhi lubhale amaphakethe ngokusebenzisa isichazi sefayela, bese lubuyisela isixhumanisi lapho luma. Umhubhe oyedwa kuphela onjalo ungaphila ngesikhathi, futhi isistimu ingawuthatha ngaphandle kokubuza. Iningi lokuziphatha okudidayo abantu abakuthwesa iphrothokholi livela kuleyo modeli yobunikazi.

Thatha konke ukushintsha komjikelezo wokuphila njengengxenye yomklamo, hhayi njengecala eliseceleni.

Inganekwane: uhlelo luvula i-VPN yocingo

Ukugeleza kuqala nge-VpnService.prepare(), okubuyisela i-Intent okufanele umsebenzisi ayamukele, bese kuqhubeka nge-establish(), okusengahluleka ngemuva kwalokho ngenxa yezizathu uhlelo olungazilawuliyo. Ukusungula umhubhe wesibili kwenza isixhumanisi sokuqala singasebenzi futhi kushintshe isaziso sesistimu. Akukho lapho kuleso silandelana lapho uhlelo lunaswo iswishi yesigaba sayo yonke into; lunaso isichazi esilunikiwe kanye namaphakethe ehlayo kuwo. Ngisho nesaziso esihlala njalo singesesistimu, hhayi sesakhiwo sohlelo.

Njengoba isixhumanisi sinikezwa hhayi sithathwa ngamandla, elinye iklayenti lingathatha indawo nganoma yisiphi isikhathi. Uhlelo luthola lokho ngokubheka ngemuva, hhayi ngokubuyiselwa kwenani.

Ukuvimba ngamandla uhlelo kubonakala kuphaneli lezaziso ngesizathu esifanayo: isistimu ibika lokho ekunikezile, hhayi lokho uhlelo olukhethe ukukukhombisa.

Inganekwane: imvume inikezwa kanye kuphela

Lapho isistimu inikela umhubhe kwelinye iklayenti, ithumela umsebenzi wokuhoxisa ku-binder lelo ukilasi lesisekelo elikubuyisela ku-onBind(). Uhlelo olushintsha leyo binder ngolwakho kufanele ludlulisele ngokwalo umsebenzi wokuhoxisa, kungenjalo i-VpnService.onRevoke() ayisoze yavuleka futhi insizakalo iqhubeke ibhala esichazini esingasekho. Umsebenzisi futhi angahoxisa imvume, futhi isistimu ingamisa insizakalo ngesikhathi sokuqalisa kabusha noma ukuxhuma kabusha okuhlala kuvuliwe.

Ukubhekana nalokhu kuwumsebenzi ocacile hhayi umugqa welogi: yeka ukufunda isichazi, vala, susa ifulegi lokuxhumeka futhi utshele umsebenzisi ukuthi usesimweni sini. Bese unquma ukuthi uhlelo kufanele lusungule kabusha, lubuze futhi noma lulinde, ngoba ekuhlelweni okuhlala kuvuliwe isistimu ingabuya nensizakalo ngokwayo.

Uhlelo oluthatha ukuhoxiswa njengokuhlukile hhayi njengesimo luzobika ukuthi luxhunyiwe kuyilapho wonke amaphakethe eluwabhala elahliwe, futhi leso yisimo sokwehluleka esibi kakhulu kunakho konke sethuluzi lobumfihlo.

Inganekwane: isixhumanisi sihlunga ithrafikhi esikhundleni sakho

Okufikayo yi-IP eluhlaza. Ukubamba noma ukuhlunga kusho ukuhlaziya izihloko ze-IP, TCP, UDP ne-IPv6, ukulandelela ukugeleza nokubhala izimpendulo zibuyela esichazini, okwenza uhlelo lokubamba lube isiteki esincane senethiwekhi hhayi insiza yesistimu. I-protect() ikhona ukuze isokhethi yokuthutha yohlelo ngokwalo yeqe umhubhe wayo esikhundleni sokuzibamba ngokwayo, futhi ibuyisela i-boolean efanele ukuhlolwa kuyo yonke isokhethi edalwe ngemuva kokuthi umhubhe uphakamile.

Uhlu lwezinhlelo ezivunyelwe nezingavunyelwe kumakhi lunquma ukuthi ithrafikhi kabani engena esixhumanisini. Azikunikezi ukufinyelela kumthwalo ongaphandle kwamaphakethe e-IP athwelwa yisixhumanisi, futhi ayikho i-API evezayo umhubhe welinye iklayenti noma ibala amaphrofayili e-VPN esistimu. Amakhono enethiwekhi angasho ukuthi inethiwekhi yokuthutha i-VPN, kodwa hhayi ukuthi umhubhe kawubani.

Yingakho imibuzo yesimo mayelana nezinye izinhlelo ithola izimpendulo eziphikisanayo: ulwazi aluvezwanga kunqubo yakho nje.

Okudingwa ngumjikelezo wokuphila ngempela

Landelela izimo ozilawulayo: kulungisiwe, kusunguliwe, kuhoxisiwe, kumisiwe. Ukuxhuma kabusha kufanele kube ukuhlakaza bese kusungulwa, nomnikazi oyedwa wesichazi nesokhethi yokuthutha, ngoba izingxenye ezimbili ezigijima zisungula zizolwela indawo eyodwa etholakalayo. Ukuqalisa kwangemuva kunomkhawulo ku-Android yesimanje, ngakho ukusakaza kokuvula akusona isiqinisekiso; sebenzisa insizakalo yangaphambili nesaziso sayo lapho izinga le-API likuvumela.

Bhala ukushintsha hhayi isimo sokugcina kuphela, futhi gcina umshini wezimo mncane ngokwanele ukuhlola yonke indlela. Isimo ongakwazi ukusifinyelela ekuhloleni yisimo ozohlangana naso endaweni ngaphandle kwelogi.

Hlola umjikelezo wokuphila kudivayisi

Ama-emulator angakhohlisa ukuxhumeka kodwa hhayi indlela yemvume nokuhoxisa ngendlela ekholisayo, ngakho gijimisa lezi kudivayisi yangempela efakwe iklayenti lesibili le-VPN ukuze lintshontshe indawo.

adb shell dumpsys connectivity | grep -i -A3 vpn
adb shell dumpsys activity services | grep -i -A2 vpnservice
adb logcat -s VpnService:V AndroidRuntime:E
adb shell am force-stop com.example.vpnapp

Qala umhubhe, qinisekisa isaziso nesixhumanisi, bese uxhuma elinye iklayenti futhi ubheke ukuthi ukubheka ngemuva kokuhoxisa kuyasebenza yini nokuthi isimo siyasulwa yini. Vimba uhlelo ngamandla futhi uhlole ukuthi kukhona okusabika isichazi esiphilayo yini.

Phinda ukulandelana ngemuva kokuqalisa kabusha okuhlala kuvuliwe, ngoba leyo ndlela ihlukile ekuxhumekeni okuqalwe umsebenzisi. Okufunayo akusona isithonjana esiluhlaza kodwa ubufakazi bokuthi uhlelo lwayeka ukusebenzisa isichazi olwalungasiphethe.

Izihloko ezihlobene