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 दस्तऐवज सर्व्हर पोर्ट आणि येथे नमूद केलेली पर्यावरण चल समाविष्ट करतो, जे उर्वरित तपासताना वाहतूक बाजू प्रामाणिक ठेवण्यासाठी पुरेसे आहे.