दुई जनाले एउटै प्रश्न सोध्छन् र एकअर्कासँग नमिल्ने उत्तर पाउँछन्, किनकि तिनीहरू फरक ठाउँमा उभिएका छन्। एकजनाको अगाडि सिस्टमको VPN सेटिङ स्क्रिन खुला छ र उनी एपहरूको सूची सम्पादन गर्दैछन्। अर्को सम्पादकमा VpnService.Builder.addDisallowedApplication() लेख्दैछ। दुवैले यसलाई प्रति-एप VPN फिल्टर भन्छन्। तिनीहरूमध्ये एक जनासँग मात्र उनीहरूले वर्णन गरेको नियन्त्रण छ, र दुवैले केही पनि ब्लक गरिरहेका छैनन्।

प्रयोगकर्ताले देख्ने स्क्रिनबाट सुरु गर्नुहोस्

सेटिङ खोल्नुहोस्, VPN प्रविष्टि खोज्नुहोस् र वास्तवमै सक्रिय रहेको जडान हेर्नुहोस्। यदि क्लाइन्टले प्रति-एप सूची दिन्छ भने, त्यो सूची क्लाइन्टको आफ्नै टनेलको हो। प्लेटफर्मले यस्तो सामान्य API प्रकाशित गर्दैन जसबाट असम्बन्धित एपले अर्को VPN को एप छनोट पढ्न वा परिवर्तन गर्न सकोस्, त्यसैले दोस्रो एपले प्रयोगकर्ताका लागि त्यो सूची सुधार्न सक्दैन।

यो यात्राको पहिलो शाखा हो। यदि स्थापित VPN मा त्यस्तो सेटिङ छैन भने, कोडले वरिपरि जाने केही छैन: टनेलको मालिक उत्पादनमा त्यो सुविधा नै छैन। यदि छ भने, सही सुधार त्यही स्क्रिनमा, त्यसलाई खोल्न सक्ने व्यक्तिबाट हुन्छ।

प्याकेटलाई टनेलभित्र पछ्याउनुहोस्

तपाईंको आफ्नै एपले टनेल बनाउँदा यसले TUN इन्टरफेस सिर्जना गर्छ र कुन एपको ट्राफिक त्यसमा पस्छ भनी घोषणा गर्छ। सदस्यता कलहरू इन्टरफेस स्थापना हुनु अघि हुन्छन्, र त्यसपछि त्यो सत्रका लागि नियमहरूको समूह स्थिर हुन्छ:

val builder = VpnService.Builder()
builder.addAddress("10.8.0.2", 32)
builder.addRoute("0.0.0.0", 0)
builder.addDisallowedApplication("com.example.bypass")
val tun = builder.establish()   // membership decided here

ती कलहरू तपाईंको एपले भर्खरै बनाएको टनेलमा मात्र लागू हुन्छन्, अरू कुरामा होइन। ती उपकरणभरिको नीति होइनन्, अन्य क्लाइन्टका लागि रहँदैनन्, र अरू कसैको VPN मा पुग्न सक्दैनन्। प्याकेज समाधान गर्न नसकिएको कारण बिल्डरको कलले अपवाद फ्याँक्दा इन्टरफेस कहिल्यै स्थापित हुँदैन, जुन सफा असफलता हो, मौन होइन।

हटाउने कुरा ब्लकजस्तो किन देखियो

हटाइएको एप तपाईंको टनेलको वरिपरि तल्लो नेटवर्कतिर पठाइन्छ। त्यो यसलाई ब्लक गर्नुको उल्टो हो: ट्राफिक अझै उपकरणबाट बाहिर जान्छ, तपाईंले नियन्त्रण गर्ने इन्टरफेसको बाहिर मात्र। फायरवाल शैलीको एपले उल्टो गर्छ। यसले एपको ट्राफिक आफ्नो टनेलमा लिन्छ र त्यसपछि प्याकेट फाल्छ, वा तिनलाई अगाडि पठाउन अस्वीकार गर्छ, त्यसैले इन्टरफेस उही रहन्छ र नीतिको दिशा उल्टिन्छ।

त्यो उल्टाइपछाडिको काम कन्फिगरेसन झन्डा होइन। तपाईं टनेल वर्णनकर्ताबाट IP प्याकेट पढ्नुहुन्छ, प्रवाहअनुसार निर्णय गर्नुहुन्छ, र त्यसपछि तिनलाई सुरक्षित सकेटबाट अगाडि पठाउनुहुन्छ वा फाल्नुहुन्छ। तपाईंले नसमालेको सबै कुरा रोकिन्छ, र त्यसैले आधा बनेको टनेल काम गर्ने फिल्टरजस्तो होइन, बिग्रेको नेटवर्कजस्तो देखिन्छ। लक्ष्य ब्लक हो भने, प्याकेट हेरचाह, अग्रभूमि सेवा र वर्गीकरण गर्न नसकिने ट्राफिकका लागि लिखित नीतिको बजेट राख्नुहोस्।

आफैं बनाउँदा के बिग्रन्छ

Android सामान्यतया एक पटकमा एउटा मात्र सक्रिय VPN अनुमति दिन्छ, त्यसैले उत्पादनहरूले चेनिङ समर्थन नगरेसम्म तपाईंको फिल्टर टनेल र गोपनीयता टनेल एउटै ठाउँका लागि प्रतिस्पर्धा गर्छन्। सधैं-सक्रिय VPN ले जडान ब्लकसहित असफलताको तरिका यहाँ महत्त्वपूर्ण हुने गरी परिवर्तन गर्छ: टनेलमा पस्न नसक्ने ट्राफिक सिधै पठाइने सट्टा फालिन्छ, जुन चुहावट रोकथाम डिजाइनले चाहन्छ र डिबगिङ सत्रले विरलै अपेक्षा गर्छ।

प्याकेट दृश्यता दोस्रो जाल हो। एपको प्याकेज नाम समाधान गर्न NameNotFoundException सँग असफल हुन सक्छ, र नयाँ Android संस्करणहरूमा तपाईंले देख्न सक्ने प्याकेजको समूह तपाईंले घोषणा गरेका क्वेरीमा निर्भर हुन्छ। हरेक नाम समाधान हुन्छ भन्ने अनुमान गर्नुको सट्टा अपवाद हेर्नुहोस्, र एप स्थापना वा हटाइँदा सूची फेरि पढ्नुहोस्, सधैंका लागि क्यासमा राख्नुको सट्टा।

व्यवस्थापित उपकरणहरूले तेस्रो मालिक थप्छन्. उद्यम गतिशीलता नीतिले प्रति-एप VPN वा सधैं-सक्रिय प्रोफाइल सेट गर्न सक्छ, र सामान्य एपले त्यसलाई अगाडि बढाउन सक्दैन। आफ्नो कोड डिबग गर्नु अघि उपकरण व्यवस्थापित छ कि छैन जाँच्नुहोस्, किनकि त्यस अवस्थामा तपाईंले परिवर्तन गर्न खोजेको सूची फोन समात्ने कसैले पनि सम्पादन गर्न नसक्ने हुन सक्छ।

तपाईंले नियन्त्रण गर्ने एपसँग परीक्षण गर्नुहोस्

तपाईंले फिल्टर गर्न खोजेको एपसँग परीक्षण नगर्नुहोस्। नेटवर्क व्यवहार अवलोकन गर्न सकिने दोस्रो एप प्रयोग गर्नुहोस्, र त्यसको ट्राफिक तपाईंको टनेलबाट बाहिर जान्छ कि लक्ष्यको जाँदैन जाँच्नुहोस्। दुवै भित्र रहे भने नीति काम गरिरहेको छ र लक्ष्य हटाइएको छ; कोही पनि बाहिर नगए टनेल नै गलत छ र एप सूची समस्या होइन।

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

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