විවිධ නිෂ්පාදන තුනක් iOS VPN යන නමට පිළිතුරු දෙන අතර ඒවා එකම API එකක් බෙදා නොගනී. Personal VPN පද්ධතියේ ඇතුළත් IPsec සහ IKEv2 ප්‍රවාහන භාවිත කරයි. Custom tunnel ඔබේම ප්‍රොටෝකෝලය network extension එකක් තුළ ධාවනය කරයි. Configuration profile ඒවායින් එකක් වින්‍යාස කරන අතර on-demand හැසිරීම එකතු කළ හැක. ඔබ කතා කළ යුතු ප්‍රවාහනය අනුව තෝරාගැනීම, මුලින්ම සම්පාදනය වූ නිබන්ධනය අනුව තෝරාගැනීමට වඩා වේගවත් ය.

පහත පරීක්ෂණ අනුපිළිවෙලින් ධාවනය කරන්න, මන්ද සෑම පියවරක්ම පෙර පියවර වලංගු වින්‍යාසයක් නිපදවා ඇතැයි උපකල්පනය කරයි.

පියවර 1: ප්‍රවාහනය අනුව තෝරන්න

සේවාදායකය IKEv2 හෝ Cisco රටාවේ IPsec නම්, NEVPNManager ප්‍රමාණවත් වන අතර පද්ධති ප්‍රවාහන නොමිලේ පැමිණේ. සේවාදායකය OpenVPN, WireGuard හෝ වෙනත් දෙයක් කතා කරන්නේ නම්, NEVPNManager උදව් කළ නොහැක: තෙවන පාර්ශව ප්‍රොටෝකෝලයක් සඳහා එයට කොක්කක් නැත. එම අවස්ථාවට ප්‍රොටෝකෝලය ක්‍රියාත්මක කරන packet tunnel provider සමඟ NETunnelProviderManager අවශ්‍ය ය. පැතිකඩක් වින්‍යාසය පමණක් බෙදාහරියි, එය මෙහෙයුම් පද්ධතියට නැති ප්‍රවාහනයක් එකතු කළ නොහැක.

PPTP වර්තමාන පද්ධතිවල ඉලක්කයක් නොවේ. Shared-secret IPsec තවමත් remoteIdentifier තුළ කණ්ඩායම් නාමය, රහස තබා ගන්නා keychain අයිතමය සහ සේවාදායකය පරිශීලක නාමය ඉල්ලන විට දීර්ඝ සත්‍යාපනය අපේක්ෂා කරයි. සෑම අස්ථානගත කොටසක්ම එකම සාමාන්‍ය වින්‍යාස දෝෂය ලෙස දිස්වේ, එබැවින් වෙනත් දෙයක් නිරාකරණය කිරීමට පෙර ඒ සියල්ල එකතු කරන්න.

පියවර 2: සුරැකීම, පැටවීම, ආරම්භ කිරීම යන අනුපිළිවෙල ගරු කරන්න

NEVPNManager preferences වෙත ලියයි, ඒවා නැවත කියවයි, පසුව පමණක් ආරම්භ කරයි. ප්‍රොටෝකෝලය සහ manager වස්තු පුරවන්න, saveToPreferences අමතන්න, loadFromPreferences අමතන්න, සහ load completion handler එකෙන් startVPNTunnel අමතන්න. පැටවීම ආපසු එන්නට පෙර ආරම්භ කිරීම වෙනත් අයුරකින් නිවැරදි වින්‍යාසයක් මත configuration-invalid දෝෂයක්, NEVPNErrorDomain code 1, ඇති කරයි.

හැඩය එක තැනක තබා ගැනීමට ප්‍රමාණවත් තරම් කෙටිය:

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

startVPNTunnel ඉල්ලීම පිළිගත් විට ආපසු එයි, ටනලය ඉහළ යන විට නොවේ. NEVPNStatusDidChange නිරීක්ෂණය කර සැබෑ තත්ත්වය සඳහා connection.status කියවන්න. ඇමතුම් ස්ථානයේ සාර්ථකත්වය උපකල්පනය කරන යෙදුම extension තවම සාකච්ඡා කරන අතරේ VPN සම්බන්ධ බව වාර්තා කරයි. Connecting තත්ත්වය මොහොතකට සාමාන්‍ය ය; එයින් කිසිදා පිට නොවන තත්ත්වය ලොග් කිරීමට වටිනා අසාර්ථකත්වය ය.

පියවර 3: provider ක්‍රියාවලියට අවශ්‍ය දේ දෙන්න

Custom transport තමන්ගේම bundle identifier සහ තමන්ගේම entitlement සහිත වෙනම ක්‍රියාවලියක ධාවනය වේ. container යෙදුමට සහ provider ට යන දෙකටම අත්සන් කිරීමේදී network-extension entitlement අවශ්‍ය වන අතර, App Store වෙන් පිටත Developer ID build එකක් එය provisioning profile තුළ තබා ගත යුතුම ය. අස්ථානගත entitlement ප්‍රොටෝකෝල දෝෂයක් ලෙස පෙනේ මන්ද extension සරලව ආරම්භ නොවේ.

ණයට ගැනීමට පොදු socket descriptor එකක් නැත. NEPacketTunnelProvider ඔබට read, write සහ cancel සහිත NEPacketTunnelFlow ලබා දෙයි, සහ පෞද්ගලික යතුරු මාර්ග වෙත ළඟා වන කේතය නිකුතු අතර කැඩේ. යෙදුම පසුබිමේ ඇති විටත් provider දිගටම ධාවනය වේ, එබැවින් container යෙදුමට ඒ සඳහා පසුබිම් මාදිලියක් අවශ්‍ය නැත.

පියවර 4: on-demand යනු නීති කට්ටලයක්, ස්විචයක් නොවේ

isOnDemandEnabled නීති සූදානම් කරයි පමණි; ටනලය කවදා ඉහළ යා යුතුද යන්න NEOnDemandRuleConnect සහ එහි සහෝදරයන් තීරණය කරයි. probe URL සහිත evaluate-connection නීතිය එම URL තරම්ම යහපත් ය. ටනලය නොමැතිව probe පිළිතුරු දෙන්නේ නම්, පෞද්ගලික ජාලය දැනටමත් ළඟා විය හැකි බව නීතිය නිගමනය කර කිසිදා සම්බන්ධ නොවේ, එබැවින් එය ඇතුළතින් පමණක් පිළිතුරු දෙන දෙයක් වෙත යොමු කරන්න.

Always-on වෙනම පොරොන්දුවකි. එයට අධීක්ෂණය කරන උපාංගයක් සහ කළමනාකරණ පැතිකඩක් අවශ්‍ය වන අතර, අධීක්ෂණය නොකරන පරිශීලකයෙකුට පැතිකඩ කැමති විටක ඉවත් කළ හැක. බලඇණිය අධීක්ෂණය නොකරන්නේ නම් always-on මත රඳා පවතින නිර්මාණයක් නොයවන්න.

පියවර 5: ලේබලය නොව, මාර්ගය ඔප්පු කරන්න

tun, tap, ppp හෝ ipsec අතුරුමුහුණත් ස්කෑන් කිරීම VPN වින්‍යාස කර ඇති බව ඔප්පු කරයි, ඔබේ ඉල්ලීම එය භාවිත කළ බව නොවේ. usesInterfaceType(.other) සහිත NWPathMonitor අතුරුමුහුණතක් ලබා ගත හැකි බව පවසයි, සහ viability handler එකකට එක් සත්කාරකයක් පරීක්ෂා කළ හැක. දෙකම පිටවන මාර්ගය ඔප්පු නොකරයි, එබැවින් ඒවා ටනලයට පමණක් ළඟා විය හැකි සම්පත් වෙත ඉල්ලීමක් සමඟ ඒකාබද්ධ කරන්න. අතුරුමුහුණත් නාම රෝග විනිශ්චය සහායකයි, යෙදුම් තර්කය අත්තටු බෙදිය යුතු දොරටුවක් කිසිදා නොවේ.

ක්ෂේත්‍ර පරීක්ෂණයක් සඳහා, පොදු ලිපිනය ටනලය සමඟ සහ රහිතව සසඳා අභ්‍යන්තර-පමණ පිටුවක් ගෙන එන්න. provider සාකච්ඡා කරන අතරේ status ඇමතුම සම්බන්ධ බව වාර්තා කළ හැක, එබැවින් තීරණය සම්පත් ප්‍රතිඵලයට ඉඩ දෙන්න, status සහායක සාක්ෂියක් ලෙස සලකන්න.

අදාළ ලිපි