iOS માં VPN નામે ત્રણ અલગ ઉત્પાદનો જવાબ આપે છે, અને તેઓ એક જ API વહેંચતા નથી. વ્યક્તિગત VPN સિસ્ટમના બિલ્ટ-ઇન IPsec અને IKEv2 પરિવહન પર ચાલે છે. કસ્ટમ ટનલ તમારું પોતાનું પ્રોટોકોલ નેટવર્ક એક્સ્ટેન્શનની અંદર ચલાવે છે. અને રૂપરેખા પ્રોફાઇલ બંનેમાંથી કોઈપણને ગોઠવે છે અને માંગ પરનું વર્તન ઉમેરી શકે છે. જે પરિવહન સાથે વાત કરવી છે તેના આધારે પસંદ કરવું એ પહેલું કમ્પાઇલ થયેલા કોઈપણ ટ્યુટોરિયલના આધારે પસંદ કરવા કરતાં ઝડપી છે.

નીચેની તપાસો ક્રમમાં ચલાવો, કારણ કે દરેક પગલું ધારે છે કે અગાઉના પગલાએ માન્ય રૂપરેખા બનાવી છે.

પગલું 1: પરિવહન પ્રમાણે પસંદ કરો

જો સર્વર IKEv2 અથવા Cisco શૈલીનું IPsec હોય, તો NEVPNManager પૂરતું છે અને સિસ્ટમના પરિવહન મફતમાં આવે છે. જો સર્વર OpenVPN, WireGuard અથવા બીજું કંઈક બોલે છે, તો NEVPNManager મદદ કરી શકતું નથી: તેમાં તૃતીય-પક્ષ પ્રોટોકોલ માટે કોઈ હૂક નથી. તે કિસ્સામાં પ્રોટોકોલ અમલમાં મૂકતા પેકેટ ટનલ પ્રોવાઇડર સાથે NETunnelProviderManager જોઈએ. પ્રોફાઇલ ફક્ત રૂપરેખા વિતરિત કરે છે, અને ઓપરેટિંગ સિસ્ટમ પાસે ન હોય તેવું પરિવહન ઉમેરી શકતું નથી.

PPTP આજના સિસ્ટમો પર લક્ષ્ય નથી. શેર્ડ-સિક્રેટ IPsec હજી પણ remoteIdentifier માં જૂથનું નામ, ગુપ્તતા રાખતું કી-ચેઇન આઇટમ અને સર્વર જ્યારે વપરાશકર્તાનામ માંગે ત્યારે વિસ્તૃત પ્રમાણીકરણની અપેક્ષા રાખે છે. દરેક ખૂટતો ભાગ એ જ સામાન્ય રૂપરેખા ભૂલ તરીકે દેખાય છે, તેથી બીજું કંઈ ડિબગ કરતાં પહેલાં તે બધા ઉમેરો.

પગલું 2: સાચવો, લોડ કરો, શરૂ કરોનો ક્રમ પાળો

NEVPNManager પસંદગીઓમાં લખે છે, તેમને પાછી વાંચે છે અને પછી જ શરૂ કરે છે. પ્રોટોકોલ અને મેનેજર ઑબ્જેક્ટ ભરો, saveToPreferences બોલાવો, loadFromPreferences બોલાવો અને લોડની સમાપ્તિ હેન્ડલરમાંથી startVPNTunnel બોલાવો. લોડ પાછું આવે તે પહેલાં શરૂ કરવાથી અન્યથા સાચી રૂપરેખા પર અમાન્ય રૂપરેખા ભૂલ, NEVPNErrorDomain કોડ 1 આવે છે.

આકાર એક જ જગ્યાએ રાખવા પૂરતો ટૂંકો છે:

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

startVPNTunnel વિનંતી સ્વીકારાય ત્યારે પાછું આવે છે, ટનલ ઉપર હોય ત્યારે નહીં. NEVPNStatusDidChange નિરીક્ષણ કરો અને વાસ્તવિક સ્થિતિ માટે connection.status વાંચો. જે એપ કૉલની જગ્યાએ જ સફળતા ધારે છે, એક્સ્ટેન્શન હજી વાટાઘાટ કરતું હોય ત્યારે જ તે જોડાયેલ VPN ની જાણ કરે છે. જોડાવાની સ્થિતિ એક ક્ષણ માટે સામાન્ય છે; જે સ્થિતિ ક્યારેય તેમાંથી બહાર ન આવે તે જ લોગ કરવા લાયક નિષ્ફળતા છે.

પગલું 3: પ્રોવાઇડર પ્રક્રિયાને જે જોઈએ તે આપો

કસ્ટમ પરિવહન અલગ પ્રક્રિયામાં ચાલે છે, પોતાના બંડલ ઓળખકર્તા અને પોતાની પરવાનગી સાથે. કન્ટેનર એપ અને પ્રોવાઇડર બંનેને સહી કરતી વખતે નેટવર્ક-એક્સ્ટેન્શન પરવાનગી જોઈએ છે, અને App Store ની બહાર Developer ID બિલ્ડે પણ તેને પ્રોવિઝનિંગ પ્રોફાઇલમાં રાખવી પડે છે. ખૂટતી પરવાનગી પ્રોટોકોલ બગ જેવી લાગે છે, કારણ કે એક્સ્ટેન્શન સાદું શરૂ જ થતું નથી.

ઉધાર લેવા માટે કોઈ સાર્વજનિક સોકેટ ડિસ્ક્રિપ્ટર નથી. NEPacketTunnelProvider તમને read, write અને cancel સાથે NEPacketTunnelFlow આપે છે, અને ખાનગી કી માર્ગો તરફ લંબાતો કોડ રિલીઝ વચ્ચે તૂટી પડે છે. એપ બેકગ્રાઉન્ડમાં હોય ત્યારે પણ પ્રોવાઇડર ચાલુ રહે છે, તેથી કન્ટેનરને તેના માટે બેકગ્રાઉન્ડ મોડની જરૂર નથી.

પગલું 4: માંગ પર ચાલવું એ નિયમોનો સમૂહ છે, સ્વિચ નહીં

isOnDemandEnabled ફક્ત નિયમોને સજ્જ કરે છે; ટનલ ક્યારે ઉપર આવશે તે NEOnDemandRuleConnect અને તેના ભાઈબહેનો નક્કી કરે છે. પ્રોબ URL સાથેનો જોડાણ-મૂલ્યાંકન નિયમ તે URL જેટલો જ સારો છે. જો પ્રોબ ટનલ વિના જવાબ આપે, તો નિયમ નિષ્કર્ષ કાઢે છે કે ખાનગી નેટવર્ક પહેલેથી પહોંચી શકાય તેવું છે અને ક્યારેય જોડાતું નથી, તેથી તેને એવી વસ્તુ તરફ નિર્દેશિત કરો જે ફક્ત અંદરથી જ જવાબ આપે.

હંમેશા-ચાલુ એ અલગ વચન છે. તેને દેખરેખ હેઠળના ઉપકરણ અને સંચાલિત પ્રોફાઇલની જરૂર છે, અને દેખરેખ વિનાનો વપરાશકર્તા ગમે ત્યારે પ્રોફાઇલ દૂર કરી શકે છે. જો કાફલો દેખરેખ હેઠળ ન હોય તો હંમેશા-ચાલુ પર આધારિત રચના મોકલશો નહીં.

પગલું 5: લેબલ નહીં, માર્ગ સાબિત કરો

tun, tap, ppp કે ipsec ઇન્ટરફેસ માટે સ્કેન કરવું સાબિત કરે છે કે VPN ગોઠવાયેલું છે, એ નહીં કે તમારી વિનંતીએ તેનો ઉપયોગ કર્યો. usesInterfaceType(.other) સાથે NWPathMonitor કહે છે કે વર્ચ્યુઅલ ઇન્ટરફેસ ઉપલબ્ધ છે, અને વ્યવહાર્યતા હેન્ડલર એક હોસ્ટની કસોટી કરી શકે છે. બંનેમાંથી કોઈ પણ બહાર જવાનો માર્ગ સાબિત કરતું નથી, તેથી તેમને એવા સ્રોતની વિનંતી સાથે જોડો જ્યાં ફક્ત ટનલ જ પહોંચી શકે. ઇન્ટરફેસ નામો નિદાન સહાય છે, ક્યારેય એવું દ્વાર નહીં જેના પર એપ્લિકેશન લોજિકે શાખા પાડવી જોઈએ.

ક્ષેત્રીય તપાસ માટે, જાહેર સરનામાને ટનલ સાથે અને વિના સરખાવો અને ફક્ત આંતરિક પૃષ્ઠ લાવો. પ્રોવાઇડર વાટાઘાટ કરતું હોય ત્યારે સ્થિતિ કૉલ જોડાયેલ હોવાની જાણ કરી શકે છે, તેથી સ્રોતના પરિણામને નિર્ણય લેવા દો અને સ્થિતિને ટેકાના પુરાવા તરીકે ગણો.

સંબંધિત લેખો