Bidhaa tatu tofauti huitikia jina iOS VPN, na hazishiriki API moja. Personal VPN husafiri kwenye usafirishaji wa IPsec na IKEv2 uliojengwa ndani ya mfumo. Custom tunnel huendesha itifaki yako mwenyewe ndani ya network extension. Configuration profile husanidi mojawapo na inaweza kuongeza tabia ya on-demand. Kuchagua kwa usafirishaji unaopaswa kuuzungumza ni haraka kuliko kuchagua kwa mafunzo yaliyokaguliwa kwanza.

Endesha ukaguzi ulio hapa chini kwa mpangilio, kwa sababu kila hatua hudhani ile iliyotangulia ilitoa usanidi halali.

Hatua 1: chagua kwa usafirishaji

Ikiwa seva ni IKEv2 au IPsec ya mtindo wa Cisco, NEVPNManager inatosha na usafirishaji wa mfumo huja bure. Ikiwa seva inazungumza OpenVPN, WireGuard au kitu kingine chochote, NEVPNManager haiwezi kusaidia: haina ndoano kwa itifaki ya mtu wa tatu. Kesi hiyo inahitaji NETunnelProviderManager pamoja na packet tunnel provider inayotekeleza itifaki. Profaili husambaza usanidi tu, na haiwezi kuongeza usafirishaji ambao mfumo wa uendeshaji hauna.

PPTP si lengo kwenye mifumo ya sasa. IPsec ya siri inayoshirikiwa bado inatarajia jina la kikundi katika remoteIdentifier, kipengee cha keychain kinachohifadhi siri, na uthibitishaji uliopanuliwa seva inapoomba jina la mtumiaji. Kila kipande kinachokosekana huonekana kama kosa lile lile la jumla la usanidi, kwa hivyo ongeza vyote kabla ya kutatua kitu kingine chochote.

Hatua 2: heshimu mpangilio hifadhi, pakia, anza

NEVPNManager huandika kwenye preferences, huzisoma tena, na kisha tu huanza. Jaza vitu vya itifaki na manager, ita saveToPreferences, ita loadFromPreferences, na ita startVPNTunnel kutoka load completion handler. Kuanza kabla upakiaji kurudi hutoa kosa la configuration-invalid, NEVPNErrorDomain code 1, kwenye usanidi ambao kwa njia nyingine ni sahihi.

Umbo ni fupi vya kutosha kuwekwa mahali pamoja:

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

startVPNTunnel hurudi ombi linapokubaliwa, si tunnel inapokuwa juu. Angalia NEVPNStatusDidChange na soma connection.status kwa hali halisi. Programu inayodhani mafanikio mahali pa mwito huripoti VPN imeunganishwa wakati extension bado inajadiliana. Hali ya connecting ni ya kawaida kwa muda mfupi; hali isiyoondoka humo kamwe ni hitilafu inayostahili kuandikwa kwenye kumbukumbu.

Hatua 3: ipe mchakato wa provider kile inachohitaji

Custom transport huendesha katika mchakato tofauti na bundle identifier yake mwenyewe na entitlement yake mwenyewe. Programu ya container na provider zote zinahitaji entitlement ya network-extension wakati wa kusaini, na build ya Developer ID nje ya App Store bado lazima iibebe katika provisioning profile. Entitlement inayokosekana huonekana kama hitilafu ya itifaki kwa sababu extension haianzi kabisa.

Hakuna socket descriptor ya umma ya kuazima. NEPacketTunnelProvider hukupa NEPacketTunnelFlow yenye read, write na cancel, na msimbo unaofikia njia za funguo za faragha huvunjika kati ya matoleo. Provider huendelea kufanya kazi wakati programu iko chinichini, kwa hivyo programu ya container haihitaji hali ya chinichini kwa hilo.

Hatua 4: on-demand ni seti ya kanuni, si swichi

isOnDemandEnabled huandaa kanuni tu; NEOnDemandRuleConnect na ndugu zake huamua tunnel inapoinuka. Kanuni ya evaluate-connection yenye probe URL ni nzuri kwa kiwango cha URL hiyo. Ikiwa probe hujibu bila tunnel, kanuni huhitimisha kuwa mtandao wa faragha unafikiwa tayari na kamwe haunganishi, kwa hivyo ielekeze kwa kitu kinachojibu kutoka ndani tu.

Always-on ni ahadi tofauti. Inahitaji kifaa kinachosimamiwa na profaili inayosimamiwa, na mtumiaji asiyesimamiwa anaweza kuondoa profaili wakati wowote. Usisafirishe muundo unaotegemea always-on isipokuwa kundi linasimamiwa.

Hatua 5: thibitisha njia, si lebo

Kuchanganua violesura vya tun, tap, ppp au ipsec huthibitisha kuwa VPN imesanidiwa, si kwamba ombi lako lilitumia. NWPathMonitor yenye usesInterfaceType(.other) husema violesura pepe vinapatikana, na viability handler inaweza kujaribu mwenyeji mmoja. Hakuna hata kimoja kinachothibitisha njia ya kutoka, kwa hivyo viunganishe na ombi kwa rasilimali ambayo tunnel pekee inaweza kufikia. Majina ya violesura ni msaada wa utambuzi, kamwe si lango ambalo mantiki ya programu inapaswa kutawanyika.

Kwa ukaguzi wa uwandani, linganisha anwani ya umma na tunnel na bila, na ulete ukurasa wa ndani pekee. Mwito wa status unaweza kuripoti imeunganishwa wakati provider inajadiliana, kwa hivyo achilia matokeo ya rasilimali yaamue na uchukulie status kama ushahidi unaounga mkono.

Makala zinazohusiana