NEVPNManager iOS இல் என்ன உருவாக்க முடியும் (என்ன முடியாது)
iOS இன் VPN API மூன்று நெறிமுறை வகுப்புகளிலிருந்து பயன்பாட்டுக்குச் சொந்தமான ஒரு கட்டமைப்பை உருவாக்குகிறது. L2TP, PPTP மற்றும் கையொப்பமிடப்பட்ட சுயவிவரங்கள் அந்த மேற்பரப்பின் பகுதி அல்ல.
ஒரு iOS பயன்பாட்டின் உள்ளே VPN திரையை உருவாக்கும்போது, முதல் ஆச்சரியம் என்னவென்றால் Settings பயன்பாட்டின் நெறிமுறை பட்டியல் API பட்டியல் அல்ல. Network Extension கட்டமைப்பு உங்கள் பயன்பாட்டிற்கு அந்தப் பயன்பாட்டுக்குச் சொந்தமான ஒரு தனிப்பட்ட VPN கட்டமைப்பை உருவாக்க அனுமதிக்கிறது, மேலும் சில நெறிமுறை பொருட்களை மட்டுமே ஏற்றுக்கொள்கிறது. மக்கள் எதிர்பார்க்கும் மற்ற அனைத்தும், L2TP முதல் பதிவிறக்கிய சுயவிவரம் வரை, அந்த மேற்பரப்புக்கு வெளியே உள்ளது அல்லது Apple-க்கு தனிப்பட்டது. தொடரும் தோல்விகள் பொதுவாக பிழைகள் அல்ல, ஒருபோதும் கொடுக்கப்படாத வேலையை API மறுக்கிறது.
கட்டுக்கதை: API ஒரு Settings திருத்தி
iOS IKEv1, IKEv2, L2TP மற்றும் IPsec சுயவிவரங்களை உள்ளமைக்க முடியும் என்பதால், ஒரு பயன்பாடு அவற்றில் எதையும் நிரல்படி உருவாக்க முடியும் என்று நம்பப்படுகிறது. முடியாது. கட்டமைப்பு அழைக்கும் பயன்பாட்டிற்கு சரியாக ஒரு உள்ளமைவு இடத்தை வழங்குகிறது, அந்த இடம் பொது நெறிமுறை வகுப்புகளின் சிறிய தொகுப்பை மட்டுமே ஏற்றுக்கொள்கிறது. மக்கள் எதிர்பார்க்கும் மற்ற அனைத்தும், L2TP முதல் பதிவிறக்கிய சுயவிவரம் வரை, அந்த மேற்பரப்புக்கு வெளியே உள்ளது அல்லது Apple-க்கு தனிப்பட்டது.
தொடரும் தோல்விகள் பொதுவாக பிழைகள் அல்ல. ஒருபோதும் கொடுக்கப்படாத வேலையை API மறுக்கிறது, தீர்வு API வைத்திருப்பதைச் சுற்றி திரையை வடிவமைப்பதாகும்.
மூன்று நெறிமுறை பொருட்கள் மற்றும் இல்லாதவை
உங்கள் விருப்பங்கள் NEVPNProtocolIPSec வழியாக IKEv1, NEVPNProtocolIKEv2 வழியாக IKEv2, மற்றும் உங்கள் சொந்த பாக்கெட் சுரங்க நீட்டிப்பை வழங்கினால் NETunnelProviderProtocol. NEVPNManager குறிப்பு ஏற்றுக்கொள்ளப்பட்ட நெறிமுறை பொருட்களை பட்டியலிடுகிறது. L2TP மற்றும் PPTP அந்த பட்டியலில் ஒருபோதும் தோன்றுவதில்லை, ஏனெனில் Apple அவற்றுக்கு எந்த வகுப்பையும் வெளியிடவில்லை. அவற்றில் ஒன்றை முயற்சிப்பது சேமிக்கும்போது பிழையில் முடிகிறது, அல்லது மோசமாக, கணினி அமைதியாகப் பயன்படுத்த மறுக்கும் உள்ளமைவில்.
டெஸ்க்டாப் குறியீடு வேறு விதிகளைப் பின்பற்றுகிறது. macOS இல் SCNetworkInterfaceCreateWithInterface IPv4 மீது L2TP போன்ற இடைமுக வகையை அடுக்கி அதை பிணைய சேவையுடன் இணைக்கிறது, networksetup -connectpppoeservice முடிவைத் தொடங்குகிறது. நிர்வாகி உரிமைகள் மற்றும் உதவிக் கருவி தேவை, ஏனெனில் பங்கிடப்பட்ட ரகசியமும் கடவுச்சொல்லும் கணினி விசைத்தொகுப்புக்குச் செல்கின்றன. அந்த வடிவமைப்பை iOS-க்கு நகலெடுக்கவும், எதுவும் தொகுக்கப்படாது.
கடவுச்சொல் அல்ல, விசைத்தொகுப்பு குறிப்பை வழங்கவும்
இரு IKE வகுப்புகளும் கடவுச்சொல்லை உரையாக ஏற்றுக்கொள்ளாது. passwordReference மற்றும் sharedSecretReference ஆகிய இரு பண்புகளும் நிரந்தர விசைத்தொகுப்பு குறிப்பை விரும்புகின்றன, அதை kSecReturnPersistentRef கேட்டு SecItemCopyMatching இலிருந்து பெறுவீர்கள். உருப்படியின் தரவை அனுப்புவது, அல்லது புலத்தில் சரத்தைச் செருகுவது, சேமிப்புத் தோல்வியையோ காலி சான்றுகளுடன் இணைப்பையோ உருவாக்குகிறது. குறிப்பு அதன் பின்னால் உள்ள விசைத்தொகுப்பு உருப்படி அளவுக்கே நீடிக்கும், எனவே உள்ளமைவு இணைக்கப்படுவதற்கு முன் உருப்படி இருக்க வேண்டும். அதைச் சேமிப்பின் அதே பரிவர்த்தனையில் உருவாக்கினால் வரிசை பிழைகளின் முழு வகுப்பையும் நீக்குவீர்கள்.
சான்றிதழ் அங்கீகாரம் வேறு பாதையை எடுக்கிறது: PKCS#12 பிளாப்புக்கு identityData மற்றும் identityDataPassword. அந்த பிளாப்பை பயன்பாட்டுத் தொகுப்புக்குள் அனுப்புவது மாதிரி குறியீட்டிலிருந்து வந்த பழக்கம், வெளியீட்டு முடிவு அல்ல, ஏனெனில் கடவுச்சொல் அதனுடன் பயணிக்கிறது, பயன்பாட்டின் ஒவ்வொரு நகலும் ஒரே அடையாளத்தைக் கொண்டுள்ளது.
உரிமையும் கிடைக்கும் தன்மையும் எல்லாவற்றையும் கட்டுப்படுத்துகின்றன
மேலாளர் முற்றிலும் இல்லாமல் இருக்கலாம், காரணம் வழங்கல். உங்கள் பயன்பாட்டு அடையாளங்காட்டிக்கு Network Extension திறனும் தனிப்பட்ட VPN உரிமையும் தேவை, கட்டுமானத்தில் கையொப்பமிடும் சுயவிவரம் இரண்டையும் கொண்டிருக்க வேண்டும்.
இதைத் தவிர்த்தால் பங்கிடப்பட்ட நிகழ்வு nil திருப்பித் தரும், அல்லது உரிமையை ஒருபோதும் குறிப்பிடாத பிழையுடன் சேமிப்பு தோல்வியடையும். கிடைக்கும் தன்மை மற்ற கேடு. iOS 8-ஐ விடப் பழமையானதை இலக்காகக் கொண்டால் இயக்க நேரத்தில் குறியீடு இல்லை, எனவே தோல்வி செயலிழப்பு அல்லது nil மேலாளர், உள்ளமைவில்லாத மேலாளர் அல்ல. உங்கள் பொருள் வரைபடத்தை பிழைதிருத்துவதற்கு முன் இயக்க சூழல் மற்றும் உரிமையைச் சரிபார்க்கவும்.
ஏற்று, மாற்று, சேமி, பின்னர் கோரிக்கை வரிசையைப் பார்
வாழ்க்கைச் சுழற்சியை ஏற்றுதல், மாற்றம், சேமிப்பு எனக் கருதி ஏற்றுதலை ஒருபோதும் தவிர்க்காதீர்கள். loadFromPreferences முடியும் வரை மேலாளர் எதையும் வைத்திருக்காது, நெறிமுறை பொருளைப் படிக்கவோ மாற்றவோ முடியாது.
இரண்டாவது சேமிப்பு மற்றொன்றைச் சேர்ப்பதற்குப் பதிலாக உள்ளமைவை மாற்றுகிறது, எனவே பாதி முடிந்த சேமிப்பு வேலை செய்த சுயவிவரத்தை சேதப்படுத்தலாம். கோரிக்கை விதிகள் வரிசைப்படுத்தப்பட்ட அணியை உருவாக்குகின்றன, அந்த வரிசையே கொள்கை. எங்கிருந்தும் இணைக்கும் விதியைத் துண்டிக்கும் விதிக்கு முன் வைக்கவும், கைமுறைத் துண்டிப்பைத் தொடர்ந்து உடனடி மறு இணைப்பு நிகழும், இது குறைபோலத் தோன்றினாலும் ஆவணப்படுத்தப்பட்ட மதிப்பீட்டைப் பின்பற்றுகிறது.
பயனர் செயல் வெல்ல வேண்டியிருக்கும்போது துண்டிக்கும் விதியை முன்னே நகர்த்தவும். பயன்பாட்டின் கட்டுப்பாட்டுக்கு வெளியே இருப்பதும் அதே அளவு முக்கியம். வழித்தடங்கள் நீங்கள் அமைக்கும் விருப்பத்திலிருந்து அல்ல, சுரங்கம் அல்லது சேவையகக் கொள்கையிலிருந்து வருகின்றன, பாக்கெட் சுரங்க வழங்குநர் தொடங்கும்போது அவற்றைப் புகாரளிக்கிறார். பிற பயன்பாடுகள் அல்லது உள்ளமைவு சுயவிவரங்களால் நிறுவப்பட்ட சுயவிவரங்களைப் பயன்பாடு பட்டியலிடவோ திருத்தவோ முடியாது, எனவே சாதனத்தின் ஒவ்வொரு VPN-ஐயும் காட்டும் திரையை உறுதியளிக்க வேண்டாம்.