उल्टो टेथरिङ फोनको ट्राफिक कम्प्युटरमा सार्छ र त्यही कम्प्युटरको जडानबाट बाहिर पठाउँछ। मात्र 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 नीति जानाजान सेट गर्नुहोस् र भरोसा गर्नुअघि विघटन परीक्षण गर्नुहोस्।

अधिकृत गरिएको होस्ट, रिले संस्करण, होस्ट सुरुङ नीति र विघटनका चरणहरू अभिलेख गर्नुहोस्। त्यही अभिलेखले अर्को उल्टो-टेथरिङ मिलाउने कामलाई फेरि पत्ता लगाउने अर्को दिउँसोको सट्टा दोहोर्याउन योग्य बनाउँछ।

सम्बन्धित लेखहरू