Hiru produktu ezberdinek erantzuten diote iOS-en VPN izenari, eta ez dute API bera partekatzen. VPN pertsonala sistemaren IPsec eta IKEv2 garraio integratuetan doa. Tunel pertsonalizatu batek zure protokoloa exekutatzen du sare-luzapen baten barruan. Eta konfigurazio-profil batek biak konfiguratzen ditu eta eskatuta jokabidea gehi dezake. Hitz egin behar duzun garraioaren arabera aukeratzea lehenengo konpilatu zen tutorialaren arabera aukeratzea baino azkarragoa da.

Exekutatu beheko egiaztapenak ordenan, pauso bakoitzak aurrekoak konfigurazio baliodun bat sortu zuela suposatzen baitu.

Pauso 1: aukeratu garraioaren arabera

Zerbitzaria IKEv2 edo Cisco estiloko IPsec bada, NEVPNManager nahikoa da eta sistemaren garraioak doan datoz. Zerbitzariak OpenVPN, WireGuard edo beste edozer hitz egiten badu, NEVPNManagerek ezin du lagundu: ez du kakarik hirugarrenen protokolo baterako. Kasu horrek NETunnelProviderManager behar du, protokoloa inplementatzen duen pakete-tunel hornitzaile batekin. Profilek konfigurazioa soilik banatzen du eta ezin du sistema eragileak ez duen garraiorik gehitu.

PPTP ez da helburu oraingo sistemetan. Sekretu partekatuko IPsec-ek oraindik taldearen izena espero du remoteIdentifier-en, sekretua gordetzen duen gako-sortako elementua eta autentifikazio hedatua zerbitzariak erabiltzaile-izena eskatzen duenean. Falta den pieza bakoitza konfigurazio-errore generiko beraren gisa agertzen da, beraz, gehitu guztiak beste ezer araztu aurretik.

Pauso 2: errespetatu gorde, kargatu, abiarazi ordena

NEVPNManagerrek hobespenetan idazten du, berriro irakurtzen ditu eta orduan soilik abiarazten du. Bete protokolo- eta kudeatzaile-objektuak, deitu saveToPreferences, deitu loadFromPreferences eta deitu startVPNTunnel kargaren amaiera-kudeatzailetik. Karga itzuli aurretik abiarazteak konfigurazio baliogabearen errorea sortzen du, 1 kodea NEVPNErrorDomain-en, bestela zuzena den konfigurazio batean.

Forma nahikoa laburra da leku bakarrean edukitzeko:

manager.protocolConfiguration = proto
manager.isEnabled = true
manager.saveToPreferences { }
manager.loadFromPreferences { manager.connection.startVPNTunnel() }

startVPNTunnel eskaera onartzen denean itzultzen da, ez tunela altxatzen denean. Behatu NEVPNStatusDidChange eta irakurri connection.status benetako egoerarako. Deialdi-lekuan arrakasta suposatzen duen aplikazio batek VPN konektatua jakinarazten du luzapena oraindik negoziatzen ari den bitartean. Konektatzeko egoera normala da une batez; inoiz uzten ez duen egoera da erregistratzea merezi duen hutsegitea.

Pauso 3: eman hornitzaile-prozesuari behar duena

Garraio pertsonalizatua prozesu bereizi batean exekutatzen da, bere pakete-identifikatzaile eta baimen propioekin. Edukiontzi-aplikazioak zein hornitzaileak sare-luzapenaren baimena behar dute sinatzean, eta App Store-tik kanpoko Developer ID bidezko konpilazioak hornikuntza-profilean eraman behar du. Falta den baimenak protokolo-errore baten itxura du, luzapenak ez baitu abiarazten.

Ez dago mailegatzeko socket-deskriptore publikorik. NEPacketTunnelProviderrek NEPacketTunnelFlow ematen dizu read, write eta cancel-ekin, eta gako-bide pribatuetara iristen den kodea bertsioen artean apurtzen da. Hornitzaileak lanean jarraitzen du aplikazioa atzeko planoan dagoen bitartean, beraz edukiontziak ez du atzeko planoko modurik behar horretarako.

Pauso 4: eskatuta jardutea arau-multzoa da, ez etengailua

isOnDemandEnabled-ek arauak soilik armatzen ditu; NEOnDemandRuleConnect-ek eta bere anai-arrebek erabakitzen dute noiz igoko den tunela. Probe-URL batekin konexioa ebaluatzeko arauak URL horren balioa du. Proba tunelik gabe erantzuten badu, arauak ondorioztatzen du sare pribatua jada irisgarria dela eta ez da inoiz konektatzen, beraz, zuzendu barrutik soilik erantzuten duen zerbaitetara.

Beti piztuta egotea promesa bereizia da. Gainbegiratutako gailua eta kudeatutako profila behar ditu, eta gainbegiratu gabeko erabiltzaileak profila nahi duenean ken dezake. Ez eman beti piztuta egotearen mende dagoen diseinurik flota gainbegiratuta ez badago.

Pauso 5: frogatu bidea, ez etiketa

tun, tap, ppp edo ipsec interfazeak bilatzeak VPN bat konfiguratuta dagoela frogatzen du, ez zure eskaerak erabili duenik. NWPathMonitor-ek usesInterfaceType(.other)-ekin interfaze birtuala eskuragarri dagoela dio, eta bideragarritasun-kudeatzaile batek host bat proba dezake. Bienetako batek ere ez du irteera-bidea frogatzen, beraz, konbinatu itzazu tunelak soilik har dezakeen baliabide batera egindako eskaera batekin. Interfaze-izenak diagnostikorako laguntza dira, inoiz ez aplikazioaren logikak adarkatu behar duen atea.

Eremu-egiaztapen baterako, alderatu helbide publikoa tunelarekin eta gabe eta ekarri barruko soilik den orri bat. Egoera-dei batek konektatuta jakinaraz dezake hornitzailea negoziatzen ari den bitartean, beraz, utzi baliabidearen emaitzari erabakitzen eta tratatu egoera ebidentzia osagarri gisa.

Erlazionatutako artikuluak