Áàpù iṣẹ́ kan kùnà lórí fọ́nù tí a ń ṣàkóso, ẹnìkan yẹ̀wò yípadà VPN, ó rí i pé ó wà ní títàn, ó sì polongo pé ọ̀nà náà wà ní àlàáfíà. Ibí yìí ni ọ̀pọ̀ jùlọ àwọn àyẹ̀wò wọ̀nyí ti dúró, ó sì tètè púpọ̀: gbígbé VPN tí ń ṣiṣẹ́ kò sọ pé àwọn ìbéèrè áàpù yìí lò ó, proxy tí ó sì ń ṣiṣẹ́ gan-an lè jẹ́ ti áàpù kọ̀ọ̀kan tàbí kí fáìlì PAC yàn án dípò kí ó hàn nínú Ètò. Bẹ̀rẹ̀ pẹ̀lú áàpù àti profáìlì pàtó tí o ń ṣàtúnṣe, lẹ́yìn náà ka ojú-ìwòye tí ẹ̀rọ náà fúnra rẹ̀ ní lórí ọ̀nà náà.

Bẹ̀rẹ̀ pẹ̀lú áàpù àti profáìlì rẹ̀

Áàpù tí ó ní àmì iṣẹ́ máa ń ṣiṣẹ́ nínú profáìlì ọ̀tọ̀ pẹ̀lú ìlànà nẹ́tíwọ́kì tirẹ̀. Burausa ti ara ẹni lórí fọ́nù kan náà kì í ṣe ẹ̀rí fún un, bẹ́ẹ̀ ni àbájáde láti ẹ̀rọ alábàáṣiṣẹ́pọ̀ tí ó ní ìṣàkóso mìíràn kì í ṣe ẹ̀rí. Ṣàkíyèsí profáìlì tí áàpù náà jókòó kí o tó ka ohunkóhun.

Nínú Ètò, tọ́ka àwọn ẹ̀yà VPN tí a ti ṣètò kí o sì ṣàkíyèsí ẹni tí ó ni ọ̀kọ̀ọ̀kan. Nínú àwọn ìtumọ̀ Samsung, àwọn àmì àkójọ máa ń yí padà láàrín àwọn ìtújáde, nítorí náà ṣàpèjúwe ẹ̀yà náà, kì í ṣe ọ̀nà sí i. Ẹ̀yà ewú tàbí tí a ń ṣàkóso jẹ́ ti ẹni tí ó ń ṣàkóso ẹ̀rọ náà; pípa á kúrò gẹ́gẹ́ bí ìdánwò máa ń yí ohun tí o ń gbìyànjú láti díwọ̀n padà, ó sì lè tako ìlànà.

Ka ipò tí ẹ̀rọ náà ń ròyìn

Nínú ìgbòkègbodò tí ó wà nínú àwọn irinṣẹ́ ìtìlẹ́yìn rẹ, lórí API 23 tàbí jù bẹ́ẹ̀ lọ, a lè ka ipò nẹ́tíwọ́kì láìfi baiti kan ránṣẹ́. Ìpè náà nílò àṣẹ manifest déédé ACCESS_NETWORK_STATE fún kíkà àwọn agbára.

val cm = getSystemService(android.net.ConnectivityManager::class.java) ?: return
val network = cm.activeNetwork
val caps = network?.let { cm.getNetworkCapabilities(it) }
val hasVpn = caps?.hasTransport(android.net.NetworkCapabilities.TRANSPORT_VPN)
val proxy = cm.defaultProxy

Iye kọ̀ọ̀kan ń dáhùn ìbéèrè tó há. Nẹ́tíwọ́kì tí ń ṣiṣẹ́ ni nẹ́tíwọ́kì àìpé fún ìlànà tí ń pè ní àkókò yẹn. Ṣíṣàyẹ̀wò agbára sọ fún ọ bóyá nẹ́tíwọ́kì àìpé yẹn ní àtìlẹ́yìn VPN. Ìpè proxy ń ròyìn proxy HTTP àìpé tí ó wúlò, ohun tí a dá padà sì lè ṣàpèjúwe proxy dúró tàbí àkọsílẹ̀ PAC.

Bí o bá nílò ìwòye fún nẹ́tíwọ́kì kọ̀ọ̀kan dípò àìpé, ka àwọn ẹ̀yà ìsopọ̀ ti nẹ́tíwọ́kì kan náà kí o sì fi wé cm.getLinkProperties(network)?.httpProxy. Proxy tí ìṣàkóso ẹ̀rọ fi sínú ń hàn nínú ìpè proxy àìpé, kì í hàn nínú àwọn ẹ̀yà ìsopọ̀, èyí sì jẹ́ ọ̀nà kíákíá láti yà proxy tí ìlànà pèsè sọ́tọ̀ kúrò nínú èyí tí nẹ́tíwọ́kì fún.

Pa ìjáde mọ́ nínú ikanni ìtìlẹ́yìn rẹ dípò ìròyìn gbogbo ènìyàn. Àwọn orúkọ agbàlejò proxy, àwọn URL PAC àti àwọn ìfikún inú ń fi hàn bí àjọ rẹ ṣe ń darí ìrìnàjò, kò sì sí ọ̀kan nínú wọn tí ó pọn dandan láti ṣàpèjúwe àìlera náà.

Túmọ̀ gbogbo pápá ní tóró

Nẹ́tíwọ́kì null tàbí ohun agbára null túmọ̀ sí pé ipò nẹ́tíwọ́kì ẹni tí ń pè kò sí tàbí ó yí padà nígbà kíkà. Ìyẹn kò túmọ̀ sí pé kò sí VPN. Kà á sí àìmọ̀ kí o sì tún kà lẹ́yìn tí áàpù náà ti wá sí iwájú, kì í ṣe gẹ́gẹ́ bí àbájáde òdì.

Gbígbé VPN ni ó jẹ́ aláìlera jùlọ nínú àwọn ohun rere. Áàpù èyíkéyìí tí ó ní VpnService máa ń dá ọ̀kan, pẹ̀lú áàpù àlẹ̀mọ́ àdúgbò tí kì í fi ìrìnàjò rẹ ránṣẹ́ sí ibikíbi. Nítorí náà iye true sọ pé nẹ́tíwọ́kì àìpé tí VPN ń ṣàtìlẹ́yìn wà, kì í sọ pé a lo ìjáde àjọ rẹ, àti pé dájúdájú kì í sọ pé àyẹ̀wò ṣẹlẹ̀.

Proxy àìpé null túmọ̀ sí pé API yìí kò ròyìn proxy HTTP àìpé kankan fún ìṣètò tí ó wúlò. Ó yọ díẹ̀ púpọ̀ kúrò: áàpù lè gbé ìṣètò SOCKS tirẹ̀, ó lè ṣe àwárí HTTP tirẹ̀, tàbí kí proxy kan ní ẹnubodè tí ẹ̀rọ kò mọ̀ rí darí rẹ̀.

PAC ni ipò tí ó borí ìdáhùn iye kan. Àkọsílẹ̀ lè darí ibi kan nípasẹ̀ proxy kí ó sì rán èkejì tààrà, nítorí náà àwọn ìbéèrè méjì ti áàpù kan náà nínú ìṣẹ́jú kan lè gba àwọn ọ̀nà ọ̀tọ̀ọ̀tọ̀. Àti pé áàpù tí ó so àwọn socket rẹ̀ mọ́ nẹ́tíwọ́kì tí a yàn, tàbí tí ó pè bindProcessToNetwork, kò dandan láti tẹ̀lé àìpé rárá.

Ohun tí àwòrán yìí kò lè sọ fún ọ

Èyí kì í ṣe ìtàn. Kò sí ohun tí ó ń kọ ọ̀nà tí ìbéèrè tí ó kùnà gbà sílẹ̀ níbí, àti kíkà àṣeyọrí lẹ́yìn àìlera kì í ṣe ẹ̀rí nípa àìlera náà. Kì í sì í ṣe àkójọ: o gba nẹ́tíwọ́kì àìpé ti ìlànà tí ń pè, kì í ṣe àkójọ àwọn ìsopọ̀ àṣírí ti áàpù kọ̀ọ̀kan.

Kò sì sọ ohunkóhun nípa ohun tí ó ń ṣẹlẹ̀ lókè socket. Ìfọwọ́sowọ́pọ̀ TLS tí ó kùnà lórí ẹ̀rọ tí a ń ṣàkóso lè jẹ́ ìṣòro ìpamọ́ ìgbẹ́kẹ̀lé, àìbáramu fífìlọ́ tàbí orúkọ tí proxy kọ̀, kò sì sí ọ̀kan nínú wọn tí ó hàn nínú kíkà ìsopọ̀.

Ìdí niyẹn tí ìdajì méjèèjì fi ṣe pàtàkì papọ̀: àwòrán náà ń dín ibi tí a ó wò kù, àti àyẹ̀wò áàpù fúnra rẹ̀ ń sọ ohun tí ó kùnà gan-an.

Ròyìn rẹ̀ ní ọ̀nà tí alábòójútó lè lò

Fún áàpù tí ó kan, profáìlì, àmì àkókò àti ìpele gangan tí ó kùnà: yíyanjú orúkọ, ìsopọ̀ TCP, ìfọwọ́sowọ́pọ̀ TLS tàbí ipò HTTP. Fi àwọn iye àwòrán náà kún bí a ti kà wọ́n, kí a kọ null gẹ́gẹ́ bí null kì í ṣe gẹ́gẹ́ bí ọ̀rọ̀ kankan. Ṣàkíyèsí bóyá àwọn áàpù mìíràn nínú profáìlì kan náà kùnà lọ́nà kan náà, èyí tí ó ya ìṣòro áàpù sọ́tọ̀ kúrò nínú ìṣòro ọ̀nà jákèjádò profáìlì.

Lẹ́yìn náà dúró kí olówó ọ̀nà náà dáhùn. Má ṣe kà ìwé-ẹ̀rí ilé-iṣẹ́, àdírẹ́sì proxy tàbí ẹ̀yà VPN sí àṣẹ láti yọ ìṣàkóso kúrò tàbí láti forí ọ̀nà tí a fọwọ́ sí; ìyẹn yí ọ̀ràn ìtìlẹ́yìn padà sí ìṣẹ̀lẹ̀ ìlànà.

Àdéhùn proxy àìpé kúrú, ó sì yẹ láti kà lẹ́ẹ̀kan, nítorí ó ń ṣàlàyé gangan proxy tí ìpè náà ń ròyìn, gbogbo kíkà àṣejù àwòrán yìí sì bẹ̀rẹ̀ pẹ̀lú ìrònú pé ó ń ròyìn púpọ̀ sí i.

Àwọn àpilẹ̀kọ tó jọra