वायरलेस डिबगिंग ट्रैफ़िक VPN लीक का प्रमाण क्यों नहीं है
Wi-Fi पर जोड़ा गया ADB सत्र डिबगिंग संबंध साबित करता है, इंटरनेट निकास पथ नहीं। वह अवलोकन वास्तव में क्या कवर करता है, यह रहा।
आपने वायरलेस डिबगिंग सक्षम की, लैपटॉप जोड़ा, और VPN चालू रहने पर सत्र काम करता रहा। यह ऐसा दिखता है जैसे कुछ टनल से बच निकला। लगभग निश्चित रूप से नहीं। डिबगिंग सत्र और किसी ऐप का वेबसाइट पर अनुरोध अलग-अलग नेटवर्क संबंध हैं, और इनमें से केवल एक को टनल पार करना चाहिए।
मैं इस ग़लत पढ़ने से दो बार मिला हूँ: एक बार जब फ़ोन और लैपटॉप एक ही Wi-Fi पर थे, और एक बार रीबूट के बाद जब जोड़ी बनी रही। दोनों ही मामलों में VPN ठीक वही कर रहा था जिसके लिए उसे कॉन्फ़िगर किया गया था।
बग का नाम देने से पहले अवलोकन का नाम दें
लीक के दावे से पहले तीन घटनाएँ हो सकती हैं, और वे एक-दूसरे की जगह नहीं ले सकतीं। कोई टूल सेवा खोज सकता है, डिवाइस किसी वर्कस्टेशन को स्वीकृत कर सकता है, या अधिकृत सत्र वास्तव में कमांड और बाइट ले जा सकता है। लिखिए कि आपने कौन-सी देखी, क्योंकि हर एक लोगों की धारणा से कम साबित करती है।
खोज आमतौर पर mDNS या पोर्ट स्कैन होती है। जोड़ी बनाना फ़ोन पर लिया गया नामांकन निर्णय है, जिसकी पुष्टि उपयोगकर्ता द्वारा टाइप किए गए कोड से होती है। जीवंत सत्र का अर्थ है कि दो जुड़े एंडपॉइंट के बीच ट्रैफ़िक गया। इनमें से कोई भी यह नहीं बताता कि ऐप का HTTPS अनुरोध कहाँ जाता है।
गंतव्य, इंटरफ़ेस, पता परिवार, टाइमस्टैम्प और उपयोगकर्ता प्रोफ़ाइल को घटना से जोड़े रखें। इन विवरणों के बिना अवलोकन की तुलना इच्छित स्थानीय-नेटवर्क नीति से, या उस समय चल रहे VPN बिल्ड से नहीं की जा सकती।
दोनों पथ कभी क्यों नहीं मिलते
वायरलेस डिबगिंग डिवाइस में आने वाला कनेक्शन है। adbd Wi-Fi इंटरफ़ेस से बंधे पोर्ट पर सुनता है, और वर्कस्टेशन जोड़ी बनने के बाद उससे जुड़ता है। दिशा मायने रखती है: आपका लैपटॉप फ़ोन के भीतर पहुँचता है, उल्टा नहीं। यह निकास लीक का उल्टा है।
किसी ऐप का इंटरनेट ट्रैफ़िक VpnService द्वारा स्थापित टनल इंटरफ़ेस से बाहर जाता है, जिसे UID और रूटिंग नियमों से मिलाया जाता है। adbd shell उपयोगकर्ता के रूप में चलने वाला सिस्टम डेमन है, उस रूटिंग सेट के भीतर का ऐप नहीं। हर ऐप के टनल से पिन होने पर भी यह अंतर्निहित Wi-Fi लिंक पर रहता है।
लॉकडाउन मोड कवर किए गए ऐप्स के लिए टनल लागू करता है। यह सुनने वाले सॉकेट को निकास पथ में नहीं बदलता।
इसलिए एक काम करता ADB सत्र और एक काम करता किल स्विच बिना विरोधाभास के साथ रहते हैं। लीक साबित करने के लिए आपको उस दिशा को देखना होगा जिसे अवरुद्ध होना चाहिए।
निकास परीक्षण वास्तव में कैसा दिखता है
कवर किए गए ऐप का परीक्षण करें, डिबगिंग चैनल का नहीं। विफलता की स्थिति जानबूझकर बनाएँ, फिर एक नया अनुरोध करें और दर्ज करें कि क्या हुआ।
- पुष्टि करें कि VPN ही एकमात्र पथ है: VPN के बिना कनेक्शन अवरुद्ध करने के साथ हमेशा-चालू VPN चालू करें।
- VPN को समर्थित तरीके से रोकें और पुष्टि करें कि ऐप कोई कनेक्टिविटी न होने की सूचना देता है।
- उस ऐप से एक हानिरहित अनुरोध भेजें और देखें कि वह विफल होता है या सफल।
- वायरलेस डिबगिंग चालू और फिर बंद के साथ दोहराएँ, ताकि चर अलग हो सके।
उन परिस्थितियों में अवरुद्ध अनुरोध प्रमाण है। सफल ADB सत्र नहीं, और टर्मिनल ऐप से एक ping भी नहीं।
यदि लॉकडाउन चालू रहने पर अनुरोध सफल होता है, तो ऐप का UID और उसकी VPN अनुमति, सक्रिय नेटवर्क और क्लाइंट संस्करण दर्ज करें। वह संयोजन एक वास्तविक खोज है।
जोड़ी सत्र से अधिक टिकती है
जोड़ी बनाना स्थायी स्थिति है, केबल परीक्षण के बाद भूलने योग्य हैंडशेक नहीं। Android का डिबगिंग दस्तावेज़ वायरलेस वर्कफ़्लो का वर्णन करता है और बताता है कि संबंध तब तक रहता है जब तक स्पष्ट रूप से भुलाया न जाए या अनुमतियाँ रद्द न हों।
टनल को दोष देने से पहले जाँचें कि अभी क्या अधिकृत है। वायरलेस डिबगिंग खोलें, जोड़े गए डिवाइस देखें, और जो अब न पहचानें उसे भूल जाएँ। वर्कस्टेशन से adb devices चलाएँ ताकि पता चले कौन-सी प्रविष्टियाँ अब भी उत्तर देती हैं, और पुरानी हटाने के लिए adb disconnect चलाएँ। वायरलेस डिबगिंग बंद करने से सुनने वाला पोर्ट पूरी तरह बंद हो जाता है।
साझा या अविश्वसनीय नेटवर्क पर इसे बंद रखें। जिस नेटवर्क को आप नियंत्रित नहीं करते, उस पर स्थायी अनुमति काल्पनिक TUN बायपास से बड़ी समस्या है।
उस बग की रिपोर्ट करने से पहले
उपयोगी रिपोर्ट उस सटीक सीमा का नाम लेती है जो विफल हुई। डिवाइस मॉडल और Android संस्करण, VPN क्लाइंट और संस्करण, लॉकडाउन चालू था या नहीं, ऐप पैकेज और UID, और फ़ोन जिस नेटवर्क पर था, शामिल करें। जिस कमांड या अनुरोध ने अवलोकन उत्पन्न किया और घटना का समय भी जोड़ें। इसके बिना कोई उस सीमा को दोहरा नहीं सकता जिसे आप टूटा हुआ बताते हैं।
परीक्षण को अधिक नाटकीय दिखाने के लिए प्रवर्तन बंद न करें और न ही अविश्वसनीय नेटवर्क पर डिबगिंग उजागर करें। यह उस सिस्टम को बदलता है जिसे आप माप रहे हैं और ऐसे प्रमाण छोड़ता है जिन्हें कोई दोहरा नहीं सकता।
यदि आपका एकमात्र प्रमाण यह है कि VPN चालू रहने पर ADB जुड़ा, तो आपने गलत पथ मापा। पहले ऐप-स्तरीय परीक्षण दोबारा चलाएँ; उत्तर आमतौर पर वहीं आता है।