Ama-API e-VPN e-iOS: i-NEVPNManager, umhlinzeki we-tunnel noma iphrofayili?
Khetha i-API ngokokuhamba okufanele ukhulume nakho, bese ufakazela ukuthi i-tunnel ithwala ithrafikhi: ukulandelana kwe-save-load-start, ama-entitlement e-provider kanye nemithetho ye-on-demand.
Imikhiqizo emithathu ehlukene iphendula igama elithi iOS VPN, futhi ayabelani i-API eyodwa. I-Personal VPN ihamba phezu kwezinto zokuhamba ze-IPsec ne-IKEv2 ezakhelwe ngaphakathi kusistimu. I-Custom tunnel isebenzisa iphrothokholi yakho ngaphakathi kwe-network extension. I-Configuration profile ilungisa enye yazo futhi ingangeza ukuziphatha kwe-on-demand. Ukukhetha ngokokuhamba okufanele ukhulume nakho kushesha kunokukhetha ngokwesifundo sokuqala esihlanganisiwe.
Sebenzisa izivivinyo ezingezansi ngokulandelana, ngoba isinyathelo ngasinye sicabanga ukuthi esedlule siveze ukucushwa okuvumelekile.
Isinyathelo 1: khetha ngokokuhamba
Uma iseva iyi-IKEv2 noma i-IPsec yesitayela se-Cisco, i-NEVPNManager yanele futhi ukuhamba kwesistimu kuza mahhala. Uma iseva ikhuluma OpenVPN, WireGuard noma okunye, i-NEVPNManager ayikwazi ukusiza: ayinayo ihuku yephrothokholi yomunye umuntu. Leso simo sidinga i-NETunnelProviderManager kanye ne-packet tunnel provider esebenzisa iphrothokholi. I-Profile isabalalisa kuphela ukucushwa, futhi ayikwazi ukwengeza ukuhamba okungekho kusistimu yokusebenza.
I-PPTP ayisiyo into ehlosiwe ezinhlelweni zamanje. I-IPsec enemfihlo eyabiwe isalindele igama leqembu ku-remoteIdentifier, into ye-keychain egcina imfihlo, nokuqinisekiswa okunwetshiwe lapho iseva icela igama lomsebenzisi. Ingxenye ngayinye engekho ibonakala njengephutha elifanayo lokucushwa, ngakho zengeza zonke ngaphambi kokuxazulula enye into.
Isinyathelo 2: hlonipha ukulandelana kokugcina, ukulayisha, ukuqala
I-NEVPNManager ibhala kuma-preferences, iwafunde futhi, bese iqala ngemuva kwalokho. Gcwalisa izinto zephrothokholi ne-manager, shayela i-saveToPreferences, shayela i-loadFromPreferences, futhi shayela i-startVPNTunnel kusuka ku-load completion handler. Ukuqala ngaphambi kokuba ukulayisha kubuya kukhiqiza iphutha le-configuration-invalid, i-NEVPNErrorDomain code 1, ekucushweni okulungile ngenye indlela.
Isimo sifushane ngokwanele ukuba sigcinwe endaweni eyodwa:
manager.protocolConfiguration = proto
manager.isEnabled = true
manager.saveToPreferences { }
manager.loadFromPreferences { manager.connection.startVPNTunnel() }I-startVPNTunnel ibuyela lapho isicelo samukelwa, hhayi lapho i-tunnel isiphezulu. Qaphela i-NEVPNStatusDidChange futhi ufunde i-connection.status ukuze uthole isimo sangempela. Uhlelo olucabanga impumelelo endaweni yokushayela lubika i-VPN exhumekile ngenkathi i-extension isaxoxa. Isimo se-connecting sijwayelekile isikhashana; isimo esingakaze siphume kuso yikho ukwehluleka okufanele kubhalwe.
Isinyathelo 3: nikeza inqubo ye-provider lokho ekudingayo
I-Custom transport isebenza kunqubo ehlukile ene-bundle identifier yayo kanye ne-entitlement yayo. Kokubili uhlelo lwe-container ne-provider kudinga i-entitlement ye-network-extension ngesikhathi sokusayina, futhi ukwakhiwa kwe-Developer ID ngaphandle kwe-App Store kusamele kuyiphathe ku-provisioning profile. I-entitlement engekho ibonakala njengephutha lephrothokholi ngoba i-extension ayiqali nje.
Awekho ama-socket descriptor omphakathi angabolekwa. I-NEPacketTunnelProvider ikunikeza i-NEPacketTunnelFlow ene-read, write ne-cancel, futhi ikhodi efinyelela izindlela zokhiye abucala iyaphuka phakathi kokukhishwa. I-provider iyaqhubeka nokusebenza ngenkathi uhlelo lusemuva, ngakho uhlelo lwe-container aludingi imodi yasemuva kulokho.
Isinyathelo 4: i-on-demand iyisethi yemithetho, hhayi iswishi
I-isOnDemandEnabled ihlomisa imithetho kuphela; i-NEOnDemandRuleConnect kanye nabafowabo banquma ukuthi i-tunnel inyuka nini. Umthetho we-evaluate-connection one-probe URL ulungile ngokulingana nalezo URL. Uma i-probe iphendula ngaphandle kwe-tunnel, umthetho uphetha ngokuthi inethiwekhi yangasese isifikelwe futhi awuxhumi neze, ngakho yiqondise entweni ephendula ngaphakathi kuphela.
I-Always-on iyisithembiso esihlukile. Idinga idivayisi egadiwe kanye nephrofayili elawulwayo, futhi umsebenzisi ongagadiwe angayisusa iphrofayili noma nini. Ungathumeli idizayini encike ku-always-on ngaphandle uma iqembu ligadiwe.
Isinyathelo 5: fakazela indlela, hhayi ilebula
Ukuskena ama-interface e-tun, tap, ppp noma ipsec kufakazela ukuthi i-VPN icushiwe, hhayi ukuthi isicelo sakho sayisebenzisa. I-NWPathMonitor ene-usesInterfaceType(.other) ithi i-interface ebonakalayo iyatholakala, futhi i-viability handler ingahlola i-host eyodwa. Kokubili akufakazeli indlela yokuphuma, ngakho hlanganisa kanye nesicelo esiya emthonjeni okungafinyelelwa kuphela yi-tunnel. Amagama ama-interface awusizo lokuxilonga, hhayi isango okufanele ukucabanga kohlelo kuhlume kulo.
Ukuze uhlole endaweni, qhathanisa ikheli lomphakathi ne-tunnel nangaphandle kwayo bese uletha ikhasi langaphakathi kuphela. Ikhwelo le-status lingabika ukuxhumeka ngenkathi i-provider isaxoxa, ngakho vumela umphumela womthombo unqume futhi uthathe i-status njengobufakazi obusekelayo.