iPhone VPN-లో ఉందా? iOS యాప్ నిజంగా ఏమి చూడగలదు
iOS SDK-లో ఒకే VPN ఫ్లాగ్ లేదు. యాప్ తన స్వంత కాన్ఫిగరేషన్, స్థితి నోటిఫికేషన్ మరియు పరిమిత ప్రాక్సీ స్నాప్షాట్ను మాత్రమే గమనించగలదు, అంతకంటే ఎక్కువ కాదు.
ఫోన్ VPN-లో ఉందా అని iOS యాప్ను అడగండి, నిజాయితీగా చెప్పాలంటే మీరు అనుకునే అర్థంలో అది తెలుసుకోలేదు. SDK «పరికరం సొరంగంలో ఉంది» అనే ఫ్లాగ్ ఇవ్వదు, దానికి దగ్గరగా రాగల ప్రైవేట్ ఇంటర్ఫేస్లు ప్రచురించే యాప్లకు మూసివేయబడ్డాయి. మీ యాప్ స్వంత కాన్ఫిగరేషన్, దానికి జోడించిన స్థితి, మరియు నెట్వర్క్ స్టాక్ నుండి ఒకటి లేదా రెండు పరోక్ష సూచనలను గమనించవచ్చు. ప్రతి ఒకటి వేరే ప్రశ్నకు జవాబిస్తుంది, విరిగిన తనిఖీల్లో ఎక్కువ భాగం వాటిలో ఒకదాన్ని పూర్తి జవాబుగా తీసుకోవడం నుండే వస్తాయి.
ఒకే VPN ఫ్లాగ్ పురాణం
SDK-లో ఎక్కడో పరికరం సొరంగంలో ఉందా అని నివేదించే లక్షణం ఉందని నమ్మకం, రీచబిలిటీ ఫ్లాగ్ హోస్ట్ జవాబిస్తుందా అని నివేదించినట్లుగా. అలాంటి పబ్లిక్ లక్షణం లేదు. ఉన్నా కూడా, «సొరంగం ఉంది» మరియు «నా ట్రాఫిక్ దాన్ని ఉపయోగిస్తుంది» వేర్వేరు వాదనలు, చాలా యాప్లకు రెండోది మాత్రమే ముఖ్యం.
ఈ అంతరమే ఒక లైన్ VPN డిటెక్టర్ను ప్రచారం చేసే లైబ్రరీలు సాధారణంగా ఇంటర్ఫేస్ పేరు లేదా ప్రాక్సీ కీ వంటి పెళుసైన దాన్ని చదివి, దాన్ని తీర్పుగా ప్రదర్శించడానికి కారణం.
nil ను నమ్మే ముందు ప్రాధాన్యతలను లోడ్ చేయండి
షేర్ చేసిన మేనేజర్ ఇన్స్టాన్స్ మీరు అడిగిన క్షణమే ఉంటుంది, కానీ దాని ప్రోటోకాల్ లక్షణం లోడ్ కాల్బ్యాక్ పూర్తయ్యే వరకు nil గానే ఉంటుంది. అందువల్ల nil ప్రోటోకాల్ «ఇంకా లోడ్ కాలేదు» అనేది «ఇన్స్టాల్ కాలేదు» అనేది కంటే తక్కువ కాదు. చదవడం కంప్లీషన్ బ్లాక్ లోపల చేయండి, ఆ తర్వాతే నిర్ణయించండి: ఉన్న ప్రోటోకాల్ ఆబ్జెక్ట్, ఎనేబుల్ ఫ్లాగ్ ఆన్లో ఉండటమే «ఇన్స్టాల్» రూపం.
రెండో సంకేతం కనెక్షన్ ఆబ్జెక్ట్పై ఉంది: ఈ యాప్లో ఇన్స్టాల్ చేసిన కాన్ఫిగరేషన్ లేనప్పుడు సిస్టమ్ నివేదించే చెల్లని స్థితి. పూర్తి లోడ్ తర్వాత చెల్లని స్థితి మరియు nil ప్రోటోకాల్ కలిసి నిజమైన లేకపోవడం, సమయ పోటీ కాదు.
కనెక్షన్ మార్పులు నోటిఫికేషన్లుగా వస్తాయి
load మరియు save కు ఇచ్చిన హ్యాండ్లర్లు కాన్ఫిగరేషన్కు ఏమి జరిగిందో నివేదిస్తాయి, సొరంగం ఏమి చేస్తోందో కాదు. కనెక్ట్ అయ్యేటప్పుడు వాటిలో ఒకటి మండే వరకు వేచి ఉండటం ఎప్పటికీ పరిష్కారం కాని పోటీ. బదులుగా స్థితి మార్పు నోటిఫికేషన్ను గమనించండి, అది వచ్చినప్పుడు కనెక్షన్ ఆబ్జెక్ట్ ప్రస్తుత విలువను చదవండి.
కాన్ఫిగరేషన్ ఇన్స్టాల్ అయిన తర్వాత కనెక్షన్ స్థితి ఒక చిన్న క్రమాన్ని దాటుతుంది: డిస్కనెక్టెడ్, కనెక్ట్ అవుతోంది, కనెక్టెడ్, మళ్లీ నిర్ధారిస్తోంది, డిస్కనెక్ట్ అవుతోంది. «కనెక్టెడ్» సొరంగాన్ని వివరిస్తుంది, దాని వెనుక ఉన్న సర్వర్ను కాదు, కాబట్టి ట్రాఫిక్ ప్రవహిస్తోందని అది రుజువు కాదు. On-demand యాప్ సస్పెండ్లో ఉన్నప్పుడు కూడా సొరంగాన్ని ఎత్తవచ్చు, అప్పుడు అప్డేట్ చేయడానికి ఏదైనా ఉండకముందే నోటిఫికేషన్ వస్తుంది.
పరిమిత ప్రాక్సీ స్నాప్షాట్ ఒక సూచన, తీర్పు కాదు
CFNetwork యాప్కు సిస్టమ్ ప్రస్తుత ప్రాక్సీ సెట్టింగ్లను ఇవ్వగలదు, ఆ ఫలితం లోపల ఇంటర్ఫేస్ పేరుతో కీ చేయబడిన పరిమిత నిఘంటువు ఉంటుంది. tun, utun, ppp, ipsec లేదా tap తో మొదలయ్యే పేరు కనిపించడం సొరంగం ఉన్న సూచన. అది ఈ యాప్ చూడగలిగే దాని స్నాప్షాట్గానే ఉంటుంది, ప్యాకెట్లు ఎక్కడికి ప్రయాణిస్తాయనే ప్రకటన కాదు.
ప్రొవైడర్లు నామకరణంపై ఏకీభవించరు, కాబట్టి ప్రిఫిక్స్ లేకపోవడం ఏమీ రుజువు చేయదు, ఉన్న ఇంటర్ఫేస్ ట్రాఫిక్ మోయకుండానే ఉండవచ్చు. రీచబిలిటీ ఇంకా బలహీనం: ప్రైవేట్ చిరునామాకు విజయవంతమైన అభ్యర్థన ఆ క్షణంలో ఆ అభ్యర్థనకు మార్గం పనిచేసిందని చూపిస్తుంది, VPN ఇన్స్టాల్ అయిందని కాదు.
ఎమ్యులేటర్ Mac ను అప్పు తీసుకుంటుంది, మిగతా యాప్లు అదృశ్యంగానే ఉంటాయి
ఎమ్యులేటర్కు సొంత నెట్వర్క్ స్టాక్ లేదు; అది చేసే ప్రతి కనెక్షన్ Mac దే. అందువల్ల హోస్ట్ Mac పై నడుస్తున్న VPN అనుకరణ యాప్కు ఇప్పటికే వర్తిస్తుంది, ఎమ్యులేటర్ స్వంత సెట్టింగ్లు ఏమీ చూపవు. ఎమ్యులేటర్ ప్రారంభమైన తర్వాత సొరంగం లేచింది అయితే, యాప్ను డీబగ్ చేయడం కంటే దాన్ని పునఃప్రారంభించడం సాధారణంగా వేగవంతం. ప్రామాణికం కాని పోర్ట్లో ఉన్న హోస్ట్కు ఆ పోర్ట్ URL లో అవసరం, లేదా socat TCP-LISTEN:12345,fork TCP:host:12345 వంటి స్థానిక ఫార్వార్డింగ్ అవసరం.
పబ్లిక్ API లు ఇతర యాప్లకు లేదా కాన్ఫిగరేషన్ ప్రొఫైల్లకు చెందిన VPN ప్రొఫైల్లను జాబితా చేయవు. ఒక తెలిసిన యాప్ కోసం canOpenURL ద్వారా URL స్కీమ్ పరీక్షే మోసుకెళ్లగల ఉపాయం, మరియు iOS 9 నుండి అడిగిన స్కీమ్ మీ Info.plist లో ప్రకటించాలి; దాన్ని వదిలేస్తే కాల్ false తిరిగి ఇస్తుంది. OpenVPN Connect openvpn:// కు స్పందిస్తుంది, ఇది దాన్ని మంచి ఉదాహరణ మరియు చెడ్డ సాధారణ డిటెక్టర్గా చేస్తుంది.
మూడు పరిశీలనలను కలిపి అవి ఏమి అర్థం అని చెప్పండి
ఆచరణలో మూడు ఫలితాలను పోగు చేయండి: లోడ్ అయి యాక్టివ్గా ఉన్న కాన్ఫిగరేషన్, చెల్లని కాని కనెక్షన్ స్థితి, మరియు సొరంగం ద్వారా మాత్రమే చేరగలిగే చిరునామాకు అభ్యర్థన. ప్రతి ఒకటి ఒంటరిగా తప్పుదారి పట్టిస్తుంది; కలిసి అవి యాప్ ఏమి తెలుసుకోగలదో చెబుతాయి, వినియోగదారు ఏమి ఊహిస్తారో కాదు.
ఫలితాన్ని మీ డయాగ్నస్టిక్స్లో ఒక boolean గా కాదు, మూడు పంక్తులుగా రాయండి. వినియోగదారు VPN ఆఫ్లో ఉందని చెప్పినప్పుడు మీ యాప్ అంగీకరించకపోతే, ఆ మూడు పంక్తులు ఏ పరిశీలన వేరుగా జరిగిందో చూపిస్తాయి, మరియు అదే మీరు చర్య తీసుకోగల సపోర్ట్ టికెట్ మరియు «నా దగ్గర పని చేస్తుంది» అని ముగిసే టికెట్ మధ్య తేడా.