மூன்று வெவ்வேறு தயாரிப்புகள் 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 தேவை. Profile உள்ளமைவை மட்டும் விநியோகிக்கிறது, இயக்க முறைமையில் இல்லாத போக்குவரத்தை அது சேர்க்க முடியாது.

தற்போதைய அமைப்புகளில் 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 ஒரு தனி வாக்குறுதி. அதற்கு மேற்பார்வையிடப்பட்ட சாதனமும் நிர்வகிக்கப்படும் profile-உம் தேவை, மேற்பார்வையில்லாத பயனர் எப்போது வேண்டுமானாலும் profile-ஐ அகற்றலாம். குழு மேற்பார்வையில் இல்லாவிட்டால் always-on-ஐ சார்ந்த வடிவமைப்பை அனுப்ப வேண்டாம்.

படி 5: லேபிளை அல்ல, பாதையை நிரூபிக்கவும்

tun, tap, ppp அல்லது ipsec இடைமுகங்களை ஸ்கேன் செய்வது VPN உள்ளமைக்கப்பட்டுள்ளது என்பதை நிரூபிக்கிறது, உங்கள் கோரிக்கை அதைப் பயன்படுத்தியது என்பதை அல்ல. usesInterfaceType(.other) உடன் NWPathMonitor மெய்நிகர் இடைமுகம் கிடைப்பதாகக் கூறுகிறது, viability handler ஒரு ஹோஸ்ட்டை சோதிக்க முடியும். இரண்டும் வெளியேறும் பாதையை நிரூபிக்கவில்லை, எனவே சுரங்கப்பாதை மட்டுமே அடையக்கூடிய வளத்திற்கான கோரிக்கையுடன் அவற்றை இணைக்கவும். இடைமுகப் பெயர்கள் கண்டறிதல் உதவி, செயலி தர்க்கம் கிளைபிரிய வேண்டிய வாசல் ஒருபோதும் அல்ல.

களச் சரிபார்ப்புக்கு, பொது முகவரியை சுரங்கப்பாதையுடனும் இல்லாமலும் ஒப்பிட்டு உள்-மட்டும் பக்கத்தைப் பெறுங்கள். provider பேச்சுவார்த்தை நடத்தும்போது status அழைப்பு இணைக்கப்பட்டதாகத் தெரிவிக்கலாம், எனவே வளத்தின் முடிவே தீர்மானிக்கட்டும், status-ஐ ஆதரவு சான்றாகக் கருதுங்கள்.

தொடர்புடைய கட்டுரைகள்