Kungani umhubhe wakho we-Android VpnService uyeka ukuhambisa ithrafikhi
Izinkolelo ezine nge-VpnService ezihluleka ekukhiqizeni: umhubhe owodwa ngesikhathi, ubukhulu bemigwaqo, izinhlu nge-app ngayinye kanye nokulandelana kokuvala, nokuhlola kwakho ngakunye.
Izicabango ezine nge-Android VpnService zangibiza ingxenye enkulu yesonto kanye, futhi akukho nesisodwa esimayelana nephrothokholi yenethiwekhi. Uhlelo lwathi luxhunyiwe, isithonjana sokhiye sasihlezi kubha yesimo, futhi ithrafikhi yayisaphuma ngomgwaqo ojwayelekile. Ngangilokhu ngicabanga ukuthi umhubhe ngewami ngize ngiwumise, ukuthi imigwaqo engiyifakile yiyo engiyitholayo, nokuthi ukushaya i-stopSelf kuzowisa inguxa kanye nayo. Insizakalo yayiziphatha ngqo njengoba kubhaliwe. Ingxenye ephukile kwakuyimodeli yami yengqondo.
Inkolelo 1: umhubhe uhlala umile ngize ngiwumise
I-Android ibamba inguxa eyodwa ye-VPN ngesikhathi. Setha eyesibili futhi ipulatifomu ayiyifaki emgqeni: icisha eyakho futhi ishaye i-onRevoke() ensizakalweni yakho. Uma ikhodi yakho idiliza konke kuphela lapho kucindezwa inkinobho, ukuthathwa kushiya ngemuva isichazi nomucu wokufunda, futhi ukuqala okulandelayo kuzuza kokubili.
Isithenjwa se-VpnService sisho ngokucacile ukuthi i-prepare() ibuyisela i-null lapho uhlelo selunemvume, futhi i-Intent lapho umsebenzisi kusamele avume. Leyo mvume ifika kuphela uma udlulisa inhloso nge-startActivityForResult(). Yeqa ukudluliswa futhi i-establish() izobuyisela i-null, okufundwa njengokwehluleka okuthule hhayi njengenkinga yemvume.
I-Always-on VPN yengeza umnikazi ongamlawuli. Uhlelo lungabuyisela umhubhe ngemuva kokuqala noma ngemuva kokuwa, futhi ludlula uhlelo lwe-VPN umsebenzisi aluqale ngesandla. Yakha i-onRevoke() ukuze ivale izinsiza ezifanayo nokuvala kwakho okujwayelekile, futhi uyithathe njengendlela eyinhloko yokumisa hhayi njengesimo esisemaphethelweni. Abasebenzisi bashintsha izinhlelo ze-VPN; ikhodi yakho kufanele imelane nakho.
Inkolelo 2: i-addRoute ibamba ngqo lokho okukubalile
Imigwaqo inquma ukuthi yimaphi amaphakethe afinyelela isichazi sakho, futhi iphutha lobukhulu lidala isimo esicasulayo lapho ingxenye yethrafikhi idlula emhubheni ingxenye ingadluli. I-addRoute("0.0.0.0", 0) ithatha yonke i-IPv4, okusho ukuthi manje wonke iphakethe liza kuwe futhi kufanele lidluliswe noma lilahliwe. I-/32 yomsingathi oyedwa ayithathi lutho, futhi konke okunye kuziphatha sengathi i-VPN yakho ayikaze ifakwe.
Imindeni ibalwa ngokwehlukana. Umgwaqo we-IPv4 kuphela ushiya i-IPv6 kunethiwekhi engaphansi, ngakho umsingathi onamastakhi amabili usengakwazi ukuxazulula futhi axhumeke ngaphandle komhubhe ngenkathi ngaphakathi ebonakala exhumeke ngokuphelele.
I-DNS ilandela umqondo ofanayo. Amaseva afakwe nge-addDnsServer() aya ezinhlelweni ezisebenzisa isixazululi somhubhe, kanti uhlelo olunesiphetho sayo se-DNS esibethelwe noma i-Private DNS ebekwe egameni lomsingathi luzishaya indiva ngokuphelele. Lapho amagama ehluleka kuhlelo olulodwa futhi asebenza kwelinye, hlola indlela yesixazululi ngaphambi kokuthinta ngisho umgwaqo owodwa.
Inkolelo 3: imithetho nge-app ngayinye iyiswishi ongayiphendula nhlangothi zombili
I-addDisallowedApplication() ne-addAllowedApplication() ziyizimo ezimbili, hhayi izihlungi ezimbili. Umakhi wamukela imodeli eyodwa ngomhubhe ngamunye, ngakho uhlelo olufuna konke ngaphandle kwamaphakethe amathathu lusebenzisa uhlu olunqatshiwe futhi lushiya uhlu oluvunyelwe lungenalutho. Zombili ziyaphikisana, futhi abantu bakuthola ngesikhathi sokusebenza ngemuva kokuba isikrini sezilungiselelo sesivele sanikeza zombili izwishi.
Ukubonakala kwamaphakethe nakho kuyaluma. Kusukela ku-Android 11 ungasho kuphela amaphakethe owabonayo, ngakho uhlu lokukhishwa olwakhiwe kusukela embuzweni uhlelo lwakho olungavunyelwe ukuwusebenzisa luzodlula izilinganiso ngokuthula. Qhathanisa uhlu nalokho umphathi wamaphakethe akubuyisela ngempela ngaphambi kokuluthemba.
Amaphrofayili omsebenzi ahlukanisa izethameli futhi. Umhubhe oqalwe ngaphakathi kwephrofayili uhlanganisa leyophrofayili nezinhlelo zayo, kanti uhlangothi lomuntu siqu lugcina ukuxhumana kwalo. Leso yisinqumo sobukhulu esithathwa kanye, futhi indawo yaso isenguxeni hhayi kwithikithi lokusekela.
Inkolelo 4: i-stopSelf iqeda umhubhe
Cha. Inguxa ihlala kusichazi esibuyiswa yi-establish(), futhi into yensizakalo ingafa ngenkathi lesosichazi sisavuliwe. Vala i-ParcelFileDescriptor kuqala, shiya isithenjwa, hlanganisa noma phazamisa imicu yokufunda nokubhala, bese ushaya i-stopForeground(true) ne-stopSelf() ngaleyondlela.
Isichazi esikhohliwe siyisizathu esivamile sokuthi insizakalo ibonakale isinda esicelweni sayo sokumisa, futhi sichaza umgwaqo omdala ophila isikhathi eside kunohlelo olwawengezile.
Iphutha eliphambene livame ngokufanayo: ukuvala isichazi ngenkathi umucu wokufunda usephakathi nokufunda, bese ushiya lowomucu ubhekene nokuhlukumeza okungekho oke wabhala ikhodi yakho. Gcina ukulandelana kokuvala endaweni eyodwa futhi uvumele isenzo somsebenzisi ne-onRevoke() ukuthi kushaye kukho.
Yini okufanele ihlolwe lapho umhubhe ubonakala ufile
Vikela amasokhethi aphila isikhathi eside nge-protect() ngaphambi kokuba umhubhe ukhuphuke. Ngaphandle kwalo, ezokuthutha zomhubhe uqobo ziphinde ziqondiswe zibuyele emhubheni futhi ukuxhumana kuyama ngendlela ebukeka ngqo njengephutha leseva. Hlola ngokumelene nekheli elikhona kuphela ngemuva kwenethiwekhi ekude, hhayi isayithi lomphakathi eliphendula kusuka kunqolobane noma endleleni engaphansi.
Bhala umphumela we-establish(), imigwaqo, amaphakethe akhishiwe kanye nesizathu sokuvala. Leyo mikhakha emine ihlukanisa inkinga yemvume nenkinga yobukhulu kanye nenkinga yomjikelezo wokuphila ngaphandle kokubamba amaphakethe.