उलटे टेथरिंग फोनची रहदारी संगणकावर नेते आणि त्या संगणकाच्या जोडणीतून बाहेर पाठवते। फक्त USB केबल हे करत नाही: फोनला त्याचे मार्गनिर्देशन स्वीकारणारी कॅप्चर सेवा हवी, आणि संगणकाला ती पॅकेट्स पुढे नेणारा रिले हवा। मार्गात चार उड्या आहेत: अनुप्रयोग, फोनवरील कॅप्चर, USB रिले आणि होस्टचे बाहेर जाणे, आणि प्रत्येकाचा मालक वेगळा आहे। हे पुस्तिका तो मार्ग तयार करते, होस्ट VPN योग्य जागी ठेवते आणि निकालावर विश्वास ठेवण्यापूर्वी प्रत्येक उडी तपासते।

काहीही चालवण्यापूर्वी उड्यांचा नकाशा काढा

प्रत्येक उडी स्वतःचे धोरण लागू करते, त्यामुळे एका टोकाला चालणारा निकाल दुसऱ्या टोकाबद्दल काहीही सांगत नाही। अनुप्रयोग गंतव्य आणि रिझॉल्व्हर निवडतो, कॅप्चर सेवा कोणती रहदारी रिलेमध्ये प्रवेश करेल हे ठरवते, रिले ती होस्ट सॉकेटमध्ये पाठवते, आणि होस्टचे मार्गनिर्देशन व VPN गंतव्य अखेरीस पाहणारा पत्ता ठरवतात।

HopOwnerWhat it decides
Application requestThe appDestination, resolver, address family
Capture servicePhone VpnService appWhich traffic enters the relay at all
ADB relayHost processForwarding phone flows to host sockets
Host egressHost routing and VPNExit address and host policy

एका वेळी फोनची कॅप्चर भूमिका फक्त एकच VPN सेवा ग्राहक धारण करू शकतो, म्हणून दुसरे सामान्य VPN ॲप रिलेवर थर चढवत नाही। VPN संगणकावर असेल, तर कॅप्चर सेवा त्या संगणकाकडे जाणारा प्रवेश दुवा आहे, दूरचा बोगदा निकालाचे आधीच संरक्षण करतो याचा पुरावा नाही।

फोनला स्पर्श करण्यापूर्वी रिले तयार करा

Gnirehtet हे या रचनेचे दस्तऐवजीकृत उदाहरण आहे: फोनवर root नसलेला VPN सेवा ग्राहक आणि होस्टवर ADB मधून वाहून नेला जाणारा रिले, जो IPv4 वर TCP आणि UDP ला आधार देतो। त्याचे साठवणुकीचे ठिकाण असेही सांगते की प्रकल्प यापुढे सक्रियपणे सांभाळला जात नाही, म्हणून त्याकडे संदर्भ रचना आणि प्रयोगशाळेसाठी चालणारे साधन म्हणून पहा, व्यवस्थापित ताफ्यावर प्रमाणित करण्याजोगे आधारित उत्पादन म्हणून नाही।

adb devices
adb shell getprop ro.build.version.release
gnirehtet run

प्रथम adb devices चालवा। होस्टची डीबग की स्वीकारली नसलेला फोन अवैध म्हणून नोंदवला जातो, आणि उपकरणावरील विनंती स्वीकारली जाईपर्यंत रिले जोडला जाणार नाही। gnirehtet run ग्राहक स्थापित करते, रिले सुरू करते आणि कॅप्चर सक्रिय करते; पायऱ्या वेगळ्या करणाऱ्या आवृत्तीत त्याऐवजी दस्तऐवजीकृत install, relay आणि start उपआदेश वापरा।

ADB प्रवेश हा उपकरण नियंत्रणाचा संबंध आहे, संजाळ संयोजन नाही। फक्त तुम्ही नियंत्रित करता तो संगणक अधिकृत करा, आणि काम संपल्यावर ते अधिकृतता मागे घेण्याची योजना करा।

होस्ट VPN पुन्हा मार्गात आणा

रिले ही होस्टवरील सामान्य प्रक्रिया आहे, म्हणून त्याची पुढील जोडणी होस्टच्या मार्गनिर्देशन तक्त्याचे अनुसरण करते। पूर्ण बोगदा प्रोफाइल ती वाहून नेते; विभाजित बोगदा कदाचित नाही। होस्ट VPN प्रति-ॲप नियंत्रणे वापरत असेल, तर रिले बायनरी अनुमत संचात जोडा, अन्यथा ब्राउझर संरक्षित दिसत असतानाही रिले भौतिक इंटरफेस वापरत राहील।

ip route get 1.1.1.1
curl -4 https://ifconfig.me
sudo ss -tnp | grep -i relay

होस्ट VPN जोडण्यापूर्वी आणि नंतर पहिले दोन आदेश चालवा। पत्ता बदलत नसेल, तर रिले बोगद्यावर नाही, ग्राहकाची खिडकी काहीही म्हणो। फक्त-खाजगी बोगदा सार्वजनिक गंतव्ये होस्टच्या नेहमीच्या बाहेर जाण्यावर ठेवतो, जे गळतीसारखे दिसते पण तेच तुम्ही ठरवलेले धोरण आहे।

रिलेमधून जाणाऱ्या रहदारीसाठी DNS होस्टवर सोडवले जाते, म्हणून कोणता सर्व्हर नावे पाहतो हे होस्टचा रिझॉल्व्हर ठरवतो। फोनवरील खाजगी DNS संयोजन रिले ओलांडत नाही, आणि फोनच्या बाजूची रिझॉल्व्हर चाचणी होस्टच्या शोधांचे वर्णन करणार नाही।

प्रत्येक उडी स्वतंत्रपणे तपासा

या क्रमाने तीन तपासण्या: फोन रिलेपर्यंत पोहोचतो, रिले होस्टच्या धोरणाखाली गंतव्यापर्यंत पोहोचतो, आणि ॲप गंतव्य योग्यरीत्या सोडवते व वापरते। पाने पुन्हा लोड करून अंदाज लावण्याऐवजी पहिल्या अपयशावर थांबा।

adb shell dumpsys connectivity | grep -i -A3 vpn
adb logcat -s GnirehtetRelay:V Gnirehtet:V

कनेक्टिव्हिटी डंपमधील VPN संजाळ नोंद कॅप्चर सेवा सक्रिय असल्याचे दाखवते; रिलेचा स्वतःचा लॉग प्रवाह येत आहेत का हे दाखवतो। त्यांपैकी एकात अनुपस्थिती समस्या स्वच्छपणे विभागते: कॅप्चर नाही म्हणजे फोनची बाजू, प्रवाह नाही म्हणजे होस्टची बाजू।

होस्टवर चालणारा ब्राउझर होस्ट ब्राउझरचा मार्ग सिद्ध करतो, रिले प्रक्रियेचा नाही। प्रत्येकजण जे पत्ते नोंदवतो त्यांची तुलना करा, आणि खाजगी संसाधन तसेच सार्वजनिक पान दोन्ही तपासा, कारण फक्त-खाजगी बोगदा एकाला मार्ग देऊ शकतो दुसऱ्याला नाही।

विसर्जन करा आणि अपयशाचे वर्तन निवडा

परतावा पुस्तिकेचा भाग आहे। रिले थांबवून काढून टाका, कॅप्चर ग्राहक विस्थापित करा, आणि काम पूर्ण झाल्यावर फोनच्या विकसक पर्यायांमधून होस्टची डीबग अधिकृतता मागे घ्या।

gnirehtet stop
gnirehtet uninstall
adb kill-server

रिले अदृश्य झाल्यावर फोनने काय करावे हे ठरवा। स्पष्ट निवड नसेल तर तो मोबाइल डेटावर परत जाऊन तुम्ही मार्ग देऊ पाहत असलेल्या रहदारीची गळती करू शकतो, म्हणून जोडणी अडवण्याचे वर्तन किंवा VPN धोरण जाणीवपूर्वक संयोजित करा आणि त्यावर विसंबून राहण्यापूर्वी विसर्जन तपासा।

ज्या होस्टला अधिकृत केले, रिले आवृत्ती, होस्ट बोगदा धोरण आणि विसर्जनाच्या पायऱ्या नोंदवा। ती नोंदच पुढील उलटे-टेथरिंग संयोजन पुन्हा शोधण्याच्या दुसऱ्या दुपारऐवजी पुनरावृत्तीयोग्य करते।

संबंधित लेख