రెండు చాలా భిన్నమైన పనులు ప్రోగ్రామాటిక్ VPN అనే పేరు కిందకు వస్తాయి, వాటిలో ఒకటి మాత్రమే రెండు మొబైల్ ప్లాట్‌ఫారమ్‌లలో సాధారణ యాప్‌కు అందుబాటులో ఉంటుంది. మొదటిది వినియోగదారు ఇప్పటికే సేవ్ చేసిన ప్రొఫైల్‌ను ఆన్ చేయడం; రెండవది మీ స్వంత ప్రక్రియ లోపల సొరంగాన్ని నిర్మించడం. Android రెండవదాన్ని VpnService ద్వారా ఇస్తుంది, iOS రెండవదాన్ని Network Extension హక్కు ద్వారా ఇస్తుంది, మొదటిది సిస్టమ్, పరికర యజమాని లేదా MDM సర్వర్ వద్ద ఉంటుంది. మీకు నిజంగా ఏది కావాలో గుర్తించడం సాధారణంగా ప్రాజెక్టును చిన్నదిగా చేస్తుంది.

ఒకే పేరు పంచుకునే రెండు పనులు

సేవ్ చేసిన ప్రొఫైల్‌ను యాక్టివేట్ చేయడం అంటే ఉన్న సొరంగానికి పైకి రావాలని చెప్పడం: హోస్ట్, ఆధారం, ప్రోటోకాల్, అన్నీ ఇప్పటికే వినియోగదారు చూడగలిగే చోట కాన్ఫిగర్ చేయబడ్డాయి. సొరంగాన్ని నిర్మించడం అంటే మీ కోడ్ ఇంటర్‌ఫేస్, ప్యాకెట్ లూప్ మరియు ప్రోటోకాల్‌ను కలిగి ఉండటం. ఉత్పత్తి బ్యాక్‌లాగ్‌లో అవి ఒకేలా కనిపిస్తాయి, దాదాపు ఏ అమలును పంచుకోవు.

ఏ మొబైల్ ప్లాట్‌ఫారమ్ మొదటిదాన్ని SDK యాప్‌కు బహిర్గతం చేయదు. వినియోగదారు ఏమీ చేయకుండా కనిపించే కనెక్షన్‌ను మాల్వేర్ నుండి వేరు చేయలేము, కాబట్టి రెండు సిస్టమ్‌లు ట్రాఫిక్ మోసే ఏ యాప్ ముందైనా సమ్మతి ద్వారాన్ని ఉంచుతాయి.

Android: సమ్మతి ద్వారం, మరియు ప్రొఫైల్ API లేదు

VpnService Android 4.0 నుండి ఉంది, యాప్‌కు tun ఇంటర్‌ఫేస్ సృష్టించడానికి, తర్వాత ప్యాకెట్‌లను చదవడానికి మరియు రాయడానికి అనుమతిస్తుంది. సేవను BIND_VPN_SERVICE తో ప్రకటించాలి, VpnService.prepare() వినియోగదారుని అనుమతి అడిగే సిస్టమ్ సంభాషణను ఉత్పత్తి చేస్తుంది. ప్లాట్‌ఫారమ్ నమూనా ToyVpn ఉద్దేశించిన ఆకారం గురించిన స్పష్టమైన ప్రకటన: మీ కోడ్ ఇంటర్‌ఫేస్ మరియు దాని ద్వారా ప్రవహించే ప్రతిదాన్ని కలిగి ఉంటుంది.

అది చేయని పని సిస్టమ్ VPN సెట్టింగ్‌ల స్క్రీన్‌కు ఎంట్రీని జోడించడం. దానికి పబ్లిక్ API లేదు, సెట్టింగ్‌లు యాప్ తన ప్రొఫైళ్లను సాధారణ యాప్ చేరుకోలేని నిల్వలో ఉంచుతుంది. సాధారణ అప్లికేషన్ నుండి దాచిన తరగతులకు చేసే కాల్స్ సిస్టమ్ ఎప్పుడూ జాబితా చేయని ప్రొఫైళ్లను సృష్టిస్తాయి, అందుకే ఒక బిల్డ్‌లో పనిచేస్తున్నట్టు కనిపించిన కోడ్ తదుపరి దానిలో నిశ్శబ్దంగా పనిచేయడం ఆపేస్తుంది.

నిర్వహించబడే మార్గం వేరు. పరికర లేదా ప్రొఫైల్ యజమాని పరికర విధాన API ద్వారా ఎల్లప్పుడూ ఆన్‌లో ఉండే VPN ప్యాకేజీని నిర్దేశించవచ్చు, సంస్థ సాధనం వినియోగదారు తర్వాత ఆమోదించే ప్రొఫైల్‌ను పంపవచ్చు. ఇది పరికర నిర్వహణ అధికారం, ఇన్‌స్టాల్ సమయంలో యాప్ అడిగే అనుమతి కాదు. మీ కస్టమర్ సంస్థ అయితే, ప్రణాళిక వేసుకోవాల్సిన మార్గం ఇదే; కస్టమర్ స్టోర్ నుండి ఇన్‌స్టాల్ చేసే వ్యక్తి అయితే, ఇది అసలు అందుబాటులో లేదు.

iOS: హక్కే సరిహద్దు

iOS అదే పనిని వేరే విధంగా విభజిస్తుంది. VPN క్లయింట్ Network Extension ఫ్రేమ్‌వర్క్ కింద ప్యాకెట్ సొరంగ ప్రదాత లేదా యాప్ ప్రాక్సీని అమలు చేస్తుంది, సంబంధిత హక్కు డెవలపర్ ఖాతాకు ఇవ్వాలి. సరళమైన సందర్భానికి NEVPNManager ద్వారా వ్యక్తిగత VPN కాన్ఫిగరేషన్ ఉంది, అది అదే అనుమతి నమూనాలో నడుస్తుంది. Apple మొత్తం ఉపరితలాన్ని Network Extension సూచనలో డాక్యుమెంట్ చేస్తుంది, పని పరిధిని నిర్ణయించే ముందు దాన్ని చదవడం విలువైనది.

VPN సెట్టింగ్‌ల స్క్రీన్‌ను తెరవడానికి, వినియోగదారు సేవ్ చేసిన కాన్ఫిగరేషన్‌లను చదవడానికి లేదా వాటిలో ఒకదాన్ని ప్రారంభించడానికి మద్దతు ఉన్న మార్గం లేదు. క్లయింట్ చేయగలిగేది ఇన్‌స్టాల్ కోసం కాన్ఫిగరేషన్ ప్రొఫైల్‌ను పంపడం, తర్వాత ఏర్పడిన సొరంగాన్ని సాధారణ నెట్‌వర్కింగ్ కాల్స్ ద్వారా ఉపయోగించడం. ప్రతి యాప్ సొరంగాన్ని MDM సర్వర్ డిమాండ్ నియమం ద్వారా కేటాయిస్తుంది, రన్‌టైమ్‌లో యాప్ ఎంచుకోదు.

పెద్ద విక్రేత VPN క్లయింట్ మీ ఖాతా అదే పంపగలదని రుజువు కాదు. ఆ హక్కులు ప్రతి డెవలపర్ ఖాతాకు అభ్యర్థించి సమీక్షించబడతాయి, కాబట్టి షెడ్యూల్ ప్రమాదం Apple వద్ద ఉంది, మీ స్ప్రింట్ ప్రణాళికలో కాదు.

డెస్క్‌టాప్ మరింత దూరం చేరుతుంది, కానీ యాజమాన్యం మారదు

Windows అనుమతించే సందర్భం. Add-VpnConnection ఎలివేటెడ్ PowerShell సెషన్ నుండి ఫోన్‌బుక్ ఎంట్రీని సృష్టిస్తుంది, rasdial స్క్రిప్ట్ నుండి దాన్ని కనెక్ట్ చేస్తుంది లేదా డిస్‌కనెక్ట్ చేస్తుంది. యాప్ విక్రేత క్లయింట్‌ను దాని డాక్యుమెంట్ చేసిన కమాండ్ లైన్ ద్వారా కూడా నడపగలదు. ప్రొఫైల్‌ను సృష్టించడం ఇప్పటికీ పరిపాలనా చర్య, ఎందుకంటే ఎంట్రీ మొత్తం మెషీన్ నిల్వలో నివసిస్తుంది.

macOS ఇతర సాధనాలతో అదే విధంగా ప్రవర్తిస్తుంది. scutil --nc start మరియు stop ఇప్పటికే ఉన్న సేవలపై పనిచేస్తాయి, ఒకటి సృష్టించడం సిస్టమ్ నిర్వహణ పని. ల్యాప్‌టాప్‌లో ప్రక్రియను కలిగి ఉండటం మిమ్మల్ని కాన్ఫిగరేషన్ యజమానిగా చేయదు.

బదులుగా ఏమి నిర్మించాలి

నిజమైన అవసరం మీ యాప్ అంతర్గత APIని చేరుకోవడం అయితే, వినియోగదారు ఇప్పటికే నడుపుతున్న సొరంగం సరిపోతుంది. సాధారణ HTTPS అభ్యర్థనలను పంపండి, మార్గాన్ని సిస్టమ్ ఎంచుకోనివ్వండి, సొరంగాన్ని నియంత్రించడానికి ప్రయత్నించడం ఆపండి. అవసరం మీ యాప్ ట్రాఫిక్ మాత్రమే సొరంగాన్ని ఉపయోగించడం అయితే, నిర్వహణ ఛానెల్ ద్వారా ప్రతి యాప్‌కు VPN అడగండి, లేదా యాప్ లోపల అది లేకుండా చేరుకోగల సేవకు వ్యతిరేకంగా TLSని ముగించండి.

దాచిన APIలు తీసుకోదగిన చిన్న మార్గం కాదు. అవి విడుదలల మధ్య మారుతాయి, యాప్ సమీక్షలో విఫలమవుతాయి, అవి సృష్టించే వైఫల్యాలు కోడ్‌ను వారసత్వంగా పొందినవారికి సాధారణ నెట్‌వర్క్ వైఫల్యాలుగా కనిపిస్తాయి. పోలిక Android వర్సెస్ iOS కాదు; అది సొరంగ యాజమాన్యం వర్సెస్ ప్లాట్‌ఫారమ్‌ను ట్రాఫిక్ రూట్ చేయమని అడగడం, మొదటిది మాత్రమే మీరు నిర్మించాల్సినది.

సంబంధిత వ్యాసాలు