Udinga isikrini esisodwa esiziphatha ngendlela ehlukile lapho umhubhe uvuliwe, futhi akukho ukubiza okukutshela lokho. Lona umkhawulo wokukhishwa: ku-macOS akukho hlaka lomphakathi olubika ukuthi i-VPN engaqondile ixhunyiwe yini, futhi ku-iOS isimo singesohlelo olwafaka ukucushwa. Izahlolo ezingezansi zisuka kulo mkhawulo ziye entweni ongayikhipha, futhi noma yisiphi sazo singaqeda ukusesha kusenesikhathi.

Isahlolo 1: ingabe umbuzo uphenduleka nhlobo?

I-sandbox ixazulula umbuzo ngaphambi kwanoma iyiphi i-API. Inqubo yomuntu wesithathu ayikwazi ukubala isandiso somunye umhlinzeki, futhi ayikwazi ukufunda ukucushwa kwaleso sandiso, ngakho akukho into esekelwe ongayibuza.

Yonke indlela yokugwema ishaya udonga olufanayo. Uhlu lwe-interface, scutil --nc list kanye nokufunda okuqondile kokucushwa kwesistimu kudinga izimvume i-sandbox ezibambayo noma kuncike ekuziphatheni i-Apple engakaze ikuthembise. Uma uhlelo ludinga okukodwa kwalokhu, inkinga wuhlelo ngokwalo. Isici esakhiwe phezu kwemininingwane engabhalwanga yithikithi lokusekelwa elinosuku lokulethwa.

Isahlolo 2: ingabe uhlelo lwakho lulawula umhubhe ngokwalo?

Uma kunjalo, unayo impendulo esekelwe yokucushwa kwakho. Layisha izintandokazi, phatha iphutha, bese ufunda isimo futhi ubhalisele izinguquko esikhundleni sokuhlola njalo:

vpnManager.loadFromPreferences { error in
    // handle a load failure before reading status
}

NotificationCenter.default.addObserver(
    forName: .NEVPNStatusDidChange,
    object: nil,
    queue: nil
) { note in
    let status = (note.object as? NEVPNConnection)?.status
}

Yiba nembe kahle ngalokho lokhu okukubuyisayo: isimo somhubhe owufakile. Umsebenzisi osebenzisa elinye iklayenti uzobonakala engaxhunyiwe, futhi lokho akulona iphutha kukhodi yakho. Nquma ukuthi imuphi kule mibuzo emibili isici sakho esiwubuza ngempela ngaphambi kokwakha phezu kwempendulo.

Isahlolo 3: i-heuristic izokutshelani ngempela?

Indlela ekhotshelwe kakhulu ibuza isichazamazwi se-proxy sesistimu ngezinto zaso ezinomkhawulo futhi ifunda okhiye, okuyize kube amagama e-interface:

let settings = CFNetworkCopySystemProxySettings()?.takeRetainedValue() as NSDictionary?
let scoped = settings?["__SCOPED__"] as? [String: Any]
let names = scoped?.keys ?? []

Ukhiye oqala ngo-tap, tun, ppp, ipsec noma utun kusho ukuthi kukhona i-interface enomkhawulo womhubhe. Ukufanisa igama eliphelele kwehluleka ngokushesha, ngoba i-iOS 12 yeza ne-utun1 ne-utun2 futhi amanye amaphrofayili avela njenge-ipsec4, ppp0 noma utun0. Qhathanisa iziqalo esikhundleni salokho.

Noma kunjalo, igama alikhombisi umnikazi. Izici zesistimu nezandiso zabanye abahlinzeki nazo zenza ama-interface e-utun, futhi elilodwa lingaba khona ngaphandle kokuthwala lutho lwethrafikhi yakho. Kufunde njengophawu lokuthi kukhona okumise okomhubhe eduze, hhayi okunamandla kakhulu. I-positive engelona iqiniso lapha ishibhile uma uvimbela isici esisodwa kuphela, futhi iyabiza uma uvimbela isikrini sokungena.

Isahlolo 4: ingabe ungahlola indawo okuyiwa kuyo esikhundleni salokho?

Uma uhlelo ludinga kuphela ukwazi ukuthi insizakalo yangaphakathi iyafinyeleleka yini, hlola leyo nsizakalo. Ukuhlola okufushane okunesikhathi sokugcina kuphendula umbuzo isici esincike kuwo ngempela, futhi kuyaqhubeka nokusebenza lapho umsebenzisi eshintsha iklayenti noma umhubhe ushintsha ukuma.

Ukufinyeleleka kuwukubuka okumayelana nendlela yakho. Igama le-interface iyisiphetho mayelana nokuthile okuseduze nendlela yakho, yingakho i-heuristic ikhiqiza izingxabano emibikweni yamaphutha futhi ukuhlola kukhiqiza ubufakazi. Uma ukuhlola kwehluleka ngesikhathi umsebenzisi egcizelela ukuthi i-VPN ivuliwe, manje unendlela eqondile yokulungisa amaphutha: ukuxazululwa kwamagama, umzila noma imvume yensizakalo.

Isahlolo 5: ingabe inkundla ingaphoqa lokho okudingayo?

Lapho imfuneko iyiqiniso lokuthi akukho okuzophuma emhubheni, iphrofayili iyindawo yako, hhayi umtholi. Ukuvula includeAllNetworks ekucushweni komhubhe ogcwele ku-iOS 14 noma kamuva kushintsha ukuziphatha kwenkundla esikhundleni sokucela uhlelo lwakho ukuthi licabange. Ifulegi libhalwe ku-sihloko se-NEVPNProtocol.

Lolu uhlobo oluhlukile lwempendulo: ukuphoqa esikhundleni sokubuka. Futhi kusebenza kuphela kumaphrofayili owalawulayo, ngakho akusizi uhlelo lomsebenzisi olubuka umhubhe womunye umuntu.

Isahlolo 6: yenza ukwehluleka kuphephe futhi kubonakale

Cisha kuphela ikhono elidinga umhubhe futhi ushiye ingxenye esele yohlelo isetshenziswa. Umtholi ofihla yonke i-interface noma nini lapho ungaqinisekile wenza ukuphazamiseka kunoma ubani umhubhe wakhe osebenzisa igama ongakaze ulilindele. Buyela ekuziphatheni okulondolozayo esikhundleni salokho: izici zasendaweni ziyaqhubeka nokusebenza futhi kukhutshazwa kuphela ukubiza okukude okudinga umhubhe ngempela. Lokho kukhetha kuyisinqumo somkhiqizo, futhi kufanele kubhalwe eduze kwe-heuristic.

Bhala lokho okubonile: amagama e-interface, inguqulo yenkundla kanye nomphumela wokuhlola okukodwa. Lokho kushintsha umbiko olandelayo kusuka engxabanweni ukuya ekuhloleni. Bese ukhetha isimemezelo esisekelwe lapho unaso, ngoba ukucushwa okuphathwayo kungathwala inhloso ngokusobala futhi kususe iningi lesizathu sokuhlola amagama.

Uma izahlolo 1 kuya ku-5 zikushiye ngaphandle kwempendulo esekelwe, khipha ukuhlola bese ufaka ilebula emphaneni ngokwethembeka. Isignali yomzamo ongcono kakhulu ebhaliwe iyisinqumo somkhiqizo esingcono kune-API yangasese ephuka ekukhishweni okulandelayo.

Izihloko ezihlobene