ADB మరియు Android ఎమ్యులేటర్ VPN వెనుక విఫలమవుతాయి: మూడు మార్గాలు
ADB ఆవిష్కరణ, ఎమ్యులేటర్ వర్చువల్ నెట్వర్క్ కార్డ్ మరియు హోస్ట్ రిజాల్వర్ VPN వెనుక విడివిడిగా విఫలమవుతాయి. టన్నెల్ను నిందించే ముందు ప్రతి మార్గాన్ని క్రమంగా పరీక్షించండి.
మీరు కార్యాలయ VPN కనెక్ట్ చేస్తారు మరియు Android Studio నడుస్తున్న ఎమ్యులేటర్ను కోల్పోతుంది, adb start-server ఆగిపోతుంది, Wi-Fi లోని నిజమైన ఫోన్ పరికరాల జాబితా నుండి జారిపోతుంది. ఒక టన్నెల్ ఒక ఉత్పత్తిని నిరోధిస్తున్నట్టు అనిపిస్తుంది. వాస్తవానికి మూడు వేర్వేరు మార్గాలు మూడు విధాలుగా విఫలమవుతాయి: adb పరికర ఆవిష్కరణ, ఎమ్యులేటర్ వర్చువల్ నెట్వర్క్ మరియు హోస్ట్ రిజాల్వర్. టన్నెల్ సాధారణంగా చివరిదాన్ని మాత్రమే కలిగి ఉంటుంది, తరచుగా దానిలో కొంత భాగాన్ని మాత్రమే.
మూడు సాకెట్లు, మూడు యజమానులు
adb సర్వర్ హోస్ట్లోని పోర్ట్ 5037 పై వింటుంది మరియు USB లేదా TCP ద్వారా పరికరాలతో మాట్లాడుతుంది, నెట్వర్క్ ఆవిష్కరణకు mDNS ఉపయోగిస్తుంది. ఎమ్యులేటర్ తన స్వంత వర్చువల్ రౌటర్ వెనుక నడుస్తుంది: అతిథి 10.0.2.15, గేట్వే 10.0.2.2 మరియు DNS సర్వర్ 10.0.2.3, ఎమ్యులేటర్ ప్రక్రియ ఇవన్నీ హోస్ట్ సాకెట్లుగా మారుస్తుంది. హోస్ట్ రిజాల్వర్ అనేది VPN క్లయింట్ DNS మరియు శోధన డొమైన్లను ఇన్స్టాల్ చేసే స్థలం.
ఆ విభజన ఒక సవరణ ఒక సాధనంపై పనిచేసి మరొకదానిపై పనిచేయకపోవడానికి కారణం వివరిస్తుంది. హోస్ట్ రిజాల్వర్ను మార్చే క్లయింట్ నడుస్తున్న ఎమ్యులేటర్ ప్రక్రియను ప్రారంభంలో చదివిన రిజాల్వర్ స్థితితో వదిలేస్తాడు. multicast ఫిల్టర్ చేసే క్లయింట్ DNS ను తాకకుండా ఆవిష్కరణను పగలగొడుతాడు. వర్చువల్ అడాప్టర్లను ఫిల్టర్ చేసే క్లయింట్ హోస్ట్ బ్రౌజర్ నడుస్తున్నప్పుడే ఎమ్యులేటర్ను నిరాకరిస్తాడు. ప్రతి లక్షణానికి వేరే కారణం, కాబట్టి ఏదైనా సెట్టింగ్ మార్చే ముందు విఫలమయ్యే మార్గాన్ని గుర్తించండి.
adb చూడగలిగే దానితో ప్రారంభించండి
VPN ను తాకే ముందు adb devices అమలు చేయండి. ఖాళీ జాబితా రవాణా సమస్య, మార్గం కాదు, సర్వర్ ఎప్పుడూ జాబితా చేయని పరికరాన్ని ఏ టన్నెల్ సెట్టింగ్ సరిచేయదు. సర్వర్ను శుభ్రంగా పునఃప్రారంభించండి: మొదట adb kill-server తర్వాత adb start-server, ఏ పోర్టును పట్టుకుందో తెలుసుకోవడానికి అవుట్పుట్ చదవండి. ప్రారంభం కూడా ఆగిపోతే, multicast ఫిల్టర్ చేసే నెట్వర్క్లో mDNS ఆవిష్కరణ సాధారణ అనుమానితుడు; నమోదైన పరిష్కారం ఆవిష్కరణను ఆపివేసి సర్వర్ ప్రారంభించడం:
ADB_MDNS_OPENSCREEN=0 adb start-server
adb devicesనిజమైన పరికరానికి USB అతి చిన్న మార్గం. TCP అవసరమైతే పరికరాన్ని adb tcpip 5555 ద్వారా వినే స్థితిలో ఉంచి పరికర చిరునామా మరియు పోర్టుకు కనెక్ట్ అవండి, adb connect 192.0.2.10:5555. పోర్ట్ 5037 హోస్ట్ సర్వర్ పోర్ట్, పరికరం వినే పోర్ట్ కాదు.
ఎమ్యులేటర్ను లోపలి నుండి పరీక్షించండి
ఎమ్యులేటర్ 10.0.2.3 నుండి DNS కి సమాధానం ఇస్తుంది, ఆ రిజాల్వర్కు హోస్ట్ ప్రక్రియ ఆహారం ఇస్తుంది. VPN క్లయింట్ హోస్ట్ రిజాల్వర్ను మార్చినప్పుడు ఎమ్యులేటర్ దాన్ని వారసత్వంగా పొందగలదు; క్లయింట్ ఎమ్యులేటర్ ప్రక్రియను ఫిల్టర్ చేసినప్పుడు లేదా ప్రారంభం తర్వాత హోస్ట్ అడాప్టర్ జాబితా మారినప్పుడు పొందలేదు. రెండింటినీ ఒకే షెల్ నుండి సంఖ్యా లక్ష్యం మరియు పేరుతో వేరు చేయండి. adb shell ping -c 2 10.0.2.2 వర్చువల్ నెట్వర్క్ హోస్ట్ వైపుకు చేరుకుంటుందని నిరూపిస్తుంది. తర్వాతి పేరు శోధన రిజల్యూషన్ సరిహద్దు దాటిందా అని చెబుతుంది.
తర్వాత అదే పేరు శోధనను హోస్ట్పై అమలు చేయండి. హోస్ట్ పరిష్కరిస్తుంది ఎమ్యులేటర్ పరిష్కరించదు అంటే విరామం హోస్ట్ రిజాల్వర్ మరియు ఎమ్యులేటర్ వర్చువల్ నెట్వర్క్ మధ్య ఉంది, టన్నెల్లో కాదు. రెండూ విఫలమైతే హోస్ట్ రిజాల్వర్ చూడవలసిన స్థలం. VPN కనెక్ట్ అయిన తర్వాత ఎమ్యులేటర్ను పునఃప్రారంభించడం ఒక ప్రయత్నానికి తగినది, ఎందుకంటే కొన్ని క్లయింట్లు నడుస్తున్న ఎమ్యులేటర్ ప్రక్రియ తీసుకోని రిజాల్వర్ స్థితిని ఇన్స్టాల్ చేస్తాయి.
హోస్ట్ రిజాల్వర్ మరియు క్లయింట్ ఫిల్టర్లను తనిఖీ చేయండి
పూర్తి టన్నెల్ క్లయింట్ హోస్ట్ రిజాల్వర్ను తనదితో భర్తీ చేస్తాడు, split-DNS క్లయింట్ శోధన డొమైన్లు మరియు షరతులతో కూడిన ఫార్వార్డర్లను జోడిస్తాడు. అంతర్గత పేర్లు తరచుగా ఆ split-DNS కాన్ఫిగరేషన్పై ఆధారపడతాయి, కాబట్టి కనెక్ట్ అయినప్పుడు హోస్ట్ ఏమి ఉపయోగిస్తుందో చూడండి: రిజాల్వర్ చిరునామా, శోధన డొమైన్ మరియు అంతర్గత జోన్ కార్పొరేట్ DNS కు మళ్లించబడుతుందా. పబ్లిక్ పేర్లకు సమాధానం ఇచ్చి అంతర్గత పేర్లకు ఇవ్వని రిజాల్వర్ విధాన ప్రశ్న, విరిగిన టన్నెల్ కాదు.
కొన్ని కార్పొరేట్ క్లయింట్లు వర్చువల్ అడాప్టర్ల నుండి వచ్చే ట్రాఫిక్ను కూడా నిరోధిస్తాయి. ఫిల్టర్ డ్రైవర్కు ఎమ్యులేటర్ వర్చువల్ అడాప్టర్లా కనిపిస్తుంది, కాబట్టి హోస్ట్ పరిపూర్ణంగా పనిచేస్తున్నప్పుడు విధానం ఎమ్యులేటర్ను నిరాకరించవచ్చు. ఆ విధానం వర్క్స్టేషన్ నుండి కనిపించదు, ప్రాక్సీ సెట్టింగ్ల ఊహ దాన్ని బయటపెట్టదు. హోస్ట్ పరిష్కరిస్తే మరియు సెట్టింగ్లతో సంబంధం లేకుండా ఎమ్యులేటర్ నిరోధించబడితే, సరైన ఎస్కలేషన్ క్లయింట్ విధానాన్ని కలిగిన జట్టుకు.
తనిఖీల క్రమం మరియు ప్రతి ఫలితం అర్థం
పైనుండి క్రిందకు పని చేసి మొదటి విఫల వరుసలో ఆగండి. ప్రతి ఫలితం వేరే యజమానిని సూచిస్తుంది, Android Studio ను మళ్లీ ఇన్స్టాల్ చేయడం వల్ల ఏదీ సరికాదు.
| Result | Likely owner | Next check |
|---|---|---|
| adb devices is empty with USB attached | USB, driver or adb server | cable, authorization prompt, adb kill-server |
| adb start-server hangs | mDNS discovery | ADB_MDNS_OPENSCREEN=0 |
| Emulator reaches 10.0.2.2, names fail | Host resolver to emulator boundary | host lookup of the same name |
| Host resolves, emulator still fails | Emulator process or client filter | restart emulator, ask IT about virtual adapters |
| Both fail for internal names only | Split DNS or search domain | resolver and zone configuration |
సాధారణ అర్థంలో చివరి రెండు వరుసలు మాత్రమే VPN ప్రశ్నలు, చివరిది మాత్రమే DNS కంటెంట్ గురించి. adb పత్రాలు సర్వర్ పోర్ట్ మరియు ఇక్కడ పేర్కొన్న పర్యావరణ చరాలను కవర్ చేస్తాయి, మిగిలినవి పరీక్షిస్తున్నప్పుడు రవాణా వైపు నిజాయితీగా ఉంచడానికి సరిపోతుంది.