Android లో ప్రతి యాప్కు VPN: యాప్ను మినహాయించడం దాన్ని బ్లాక్ చేయడం కాదు
స్క్రీన్పై ఉన్న యాప్ వారీ జాబితా ఒకే టన్నెల్ యజమానికి చెందుతుంది, యాప్ను మినహాయించడం దాన్ని ఆ టన్నెల్ చుట్టూ పంపుతుంది, నెట్వర్క్ నుంచి బయటకు కాదు. అక్కడి నుంచే ప్రారంభించండి.
ఇద్దరు వ్యక్తులు ఒకే ప్రశ్న అడిగి ఒకరికొకరు సరిపోని సమాధానాలు పొందుతారు, ఎందుకంటే వారు వేర్వేరు చోట్ల నిలబడి ఉన్నారు. ఒకరి ముందు సిస్టమ్ VPN సెట్టింగ్ల స్క్రీన్ తెరిచి ఉంది, ఆయన యాప్ల జాబితాను సవరిస్తున్నారు. మరొకరు ఎడిటర్లో VpnService.Builder.addDisallowedApplication() రాస్తున్నారు. ఇద్దరూ దాన్ని యాప్ వారీ VPN ఫిల్టర్ అంటారు. వారు వివరిస్తున్న నియంత్రణ వారిలో ఒకరికి మాత్రమే ఉంది, ఇద్దరూ ఏమీ బ్లాక్ చేయడం లేదు.
వినియోగదారు చూసే స్క్రీన్ నుంచి ప్రారంభించండి
సెట్టింగ్లు తెరవండి, VPN ఎంట్రీని కనుగొని, నిజంగా సక్రియంగా ఉన్న కనెక్షన్ను చూడండి. క్లయింట్ యాప్ వారీ జాబితాను అందిస్తే, ఆ జాబితా క్లయింట్ సొంత టన్నెల్దే. సంబంధం లేని యాప్ మరో VPN యాప్ ఎంపికను చదవడానికి లేదా మార్చడానికి అనుమతించే సాధారణ APIని ప్లాట్ఫారమ్ ప్రచురించదు, కాబట్టి రెండో యాప్ ఆ జాబితాను వినియోగదారు కోసం సరిచేయలేదు.
ఇది ఈ ప్రయాణంలో మొదటి చీలిక. ఇన్స్టాల్ చేసిన VPNకు అలాంటి సెట్టింగ్ లేకపోతే, కోడ్తో దాటవేయడానికి ఏమీ లేదు: టన్నెల్ యజమాని అయిన ఉత్పత్తిలో ఆ ఫీచర్ లేదు. ఉంటే, సరైన సవరణ ఆ స్క్రీన్లోనే, దాన్ని తెరవగల వ్యక్తి చేత.
ప్యాకెట్ను టన్నెల్ లోకి అనుసరించండి
మీ సొంత యాప్ టన్నెల్ నిర్మించినప్పుడు, అది TUN ఇంటర్ఫేస్ సృష్టించి, ఏ యాప్ల ట్రాఫిక్ దానిలోకి వస్తుందో ప్రకటిస్తుంది. సభ్యత్వ కాల్స్ ఇంటర్ఫేస్ ఏర్పడక ముందే జరుగుతాయి, ఆ తర్వాత ఆ సెషన్కు నియమాల సముదాయం స్థిరంగా ఉంటుంది:
val builder = VpnService.Builder()
builder.addAddress("10.8.0.2", 32)
builder.addRoute("0.0.0.0", 0)
builder.addDisallowedApplication("com.example.bypass")
val tun = builder.establish() // membership decided hereఆ కాల్స్ మీ యాప్ ఇప్పుడే సృష్టించిన టన్నెల్కు మాత్రమే వర్తిస్తాయి, మరేదానికీ కాదు. అవి మొత్తం పరికరానికి విధానం కాదు, ఇతర క్లయింట్లకు నిలిచి ఉండవు, మరొకరి VPN లోకి చేరుకోలేవు. ప్యాకేజీని పరిష్కరించలేక కన్స్ట్రక్టర్ కాల్ మినహాయింపు విసిరితే, ఇంటర్ఫేస్ ఎప్పటికీ ఏర్పడదు, అది శుభ్రమైన వైఫల్యం, మౌనమైనది కాదు.
మినహాయింపు బ్లాక్లా ఎందుకు కనిపించింది
మినహాయించిన యాప్ మీ టన్నెల్ చుట్టూ కింది నెట్వర్క్కు మళ్లించబడుతుంది. అది దాన్ని బ్లాక్ చేయడానికి వ్యతిరేకం: ట్రాఫిక్ ఇంకా పరికరం నుంచి బయటకు వెళ్తుంది, మీరు నియంత్రించే ఇంటర్ఫేస్ వెలుపల మాత్రమే. ఫైర్వాల్ శైలి యాప్ దీనికి వ్యతిరేకంగా చేస్తుంది. అది యాప్ ట్రాఫిక్ను తన టన్నెల్ లోకి అనుమతించి, ఆ తర్వాత ప్యాకెట్లను పడేస్తుంది, లేదా వాటిని ముందుకు పంపడానికి నిరాకరిస్తుంది, కాబట్టి ఇంటర్ఫేస్ అదే, విధాన దిశ తలకిందులైంది.
ఆ తిరగబడటం వెనుక పని కాన్ఫిగరేషన్ ఫ్లాగ్ కాదు. మీరు టన్నెల్ వివరణ నుంచి IP ప్యాకెట్లను చదివి, ప్రవాహం వారీగా నిర్ణయించి, ఆ తర్వాత వాటిని రక్షిత సాకెట్ ద్వారా పంపుతారు లేదా పడేస్తారు. మీరు నిర్వహించనిది ఏదైనా సరే ఆగిపోతుంది, అందుకే సగం పూర్తయిన టన్నెల్ పనిచేసే ఫిల్టర్లా కాకుండా విరిగిన నెట్వర్క్లా కనిపిస్తుంది. లక్ష్యం బ్లాక్ అయితే, ప్యాకెట్ నిర్వహణ, ముందు ప్లేన్ సేవ, మీరు వర్గీకరించలేని ట్రాఫిక్ కోసం లిఖిత విధానానికి బడ్జెట్ పెట్టండి.
మీరే నిర్మించినప్పుడు ఏమి విరుగుతుంది
Android సాధారణంగా ఒకేసారి ఒకే సక్రియ VPNని అనుమతిస్తుంది, కాబట్టి ఉత్పత్తులు చైనింగ్కు మద్దతు ఇవ్వకపోతే మీ ఫిల్టర్ టన్నెల్, గోప్యతా టన్నెల్ ఒకే స్థానం కోసం పోటీ పడతాయి. ఎల్లప్పుడూ ఆన్లో ఉండే VPN కనెక్షన్ల బ్లాక్తో వైఫల్య విధానాన్ని ఇక్కడ ముఖ్యమైన రీతిలో మారుస్తుంది: టన్నెల్ లోకి వెళ్లలేని ట్రాఫిక్ నేరుగా పంపబడకుండా పడేయబడుతుంది, ఇది లీక్ నివారణ రూపకల్పన కోరుతుంది, డీబగ్గింగ్ సెషన్ అరుదుగా ఊహిస్తుంది.
ప్యాకెట్ దృశ్యమానత రెండో ఉచ్చు. యాప్ ప్యాకేజీ పేరును పరిష్కరించడం NameNotFoundException తో విఫలమవుతుంది, కొత్త Android వెర్షన్లలో మీరు చూడగల ప్యాకేజీల సముదాయం మీరు ప్రకటించిన ప్రశ్నలపై ఆధారపడి ఉంటుంది. ప్రతి పేరు పరిష్కరమవుతుందని ఊహించకుండా మినహాయింపును నిర్వహించండి, యాప్లు ఇన్స్టాల్ లేదా తొలగించబడినప్పుడు జాబితాను మళ్లీ చదవండి, శాశ్వతంగా కాషెలో ఉంచకుండా.
నిర్వహించబడే పరికరాలు మూడో యజమానిని జోడిస్తాయి. సంస్థ మొబిలిటీ విధానం యాప్ వారీ VPN లేదా ఎల్లప్పుడూ ఆన్ ప్రొఫైల్ను సెట్ చేయగలదు, సాధారణ యాప్ దాన్ని భర్తీ చేయలేదు. మీ సొంత కోడ్ను డీబగ్ చేసే ముందు పరికరం నిర్వహించబడుతోందా అని తనిఖీ చేయండి, ఎందుకంటే ఆ సందర్భంలో మీరు మార్చాలని ప్రయత్నిస్తున్న జాబితాను ఫోన్ పట్టుకున్న ఎవరూ సవరించలేకపోవచ్చు.
మీరు నియంత్రించే యాప్తో పరీక్షించండి
మీరు ఫిల్టర్ చేయాలని ప్రయత్నిస్తున్న యాప్తో పరీక్షించవద్దు. నెట్వర్క్ ప్రవర్తనను గమనించగల రెండో యాప్ను ఉపయోగించి, దాని ట్రాఫిక్ మీ టన్నెల్ ద్వారా బయటకు వెళ్తోందా, లక్ష్యం ట్రాఫిక్ వెళ్లడం లేదా పరిశీలించండి. రెండూ లోపలే ఉంటే విధానం పనిచేస్తోంది, లక్ష్యం మినహాయించబడింది; ఏదీ బయటకు వెళ్లకపోతే టన్నెల్లోనే తప్పు, యాప్ జాబితా సమస్య కాదు.
తర్వాత మీరు నిజంగా మూడింటిలో ఏది నిర్మిస్తున్నారో నిర్ణయించండి. యాప్ వారీ టన్నెల్ కన్స్ట్రక్టర్ API, జాబితా మీ ప్రొఫైల్లో భాగం. పరికర ఫైర్వాల్ ప్యాకెట్ నిర్వహణతో పాటు మీరు సమర్థించగల జీవిత చక్రం. మరొకరి VPNని మార్చడం ఏ మాత్రం మద్దతు ఉన్న మార్గం కాదు, అక్కడ నిజాయితీ సమాధానం ఆ సెట్టింగ్ ఆ ఉత్పత్తిదే అని.