तपाईंको Android OpenVPN प्रोफाइलले रुट थप्न सक्दैन किनभने फोनसँग भर्चुअल इन्टरफेसमा कुनै ठेगाना छैन, त्यसैले रुटले देखाउन केही छैन। रुटहरूले प्याकेट कहाँ जानुपर्छ भन्ने मात्र जवाफ दिन्छन्। टनेल ठेगानाले टनेलभित्र फोन को हो भन्ने जवाफ दिन्छ, र इन्टरफेस अस्तित्वमा आउनु अघि क्लाइन्टले एक प्रदान गर्नुपर्छ। तलका चार जाँचहरू क्रममा गर्नुहोस् र पहिलो असफलतामा रोक्नुहोस्, किनभने ठेगाना हुनु अघि रुट सम्पादन गर्दा साँचो समस्या लुकाइन्छ।

क्लाइन्टले चलाउने क्रममै असफलता पढ्नुहोस्

Android को VpnService.Builder ले दुई अवधारणा छुट्टै राख्छ: addAddress() ले एपले बनाइरहेको इन्टरफेसमा ठेगाना राख्छ, addRoute() ले गन्तव्य उपसर्ग थप्छ, र establish() ले कम्तीमा एउटा ठेगाना नथपिएसम्म इन्टरफेस बनाउन अस्वीकार गर्छ। OpenVPN क्लाइन्टले प्रोफाइल र सर्भरले पठाउने विकल्पहरू ठ्याक्कै ती कलहरूमा म्याप गर्छ, त्यसैले ठेगाना कहिल्यै पार्स नगर्ने जडानले इन्टरफेस नै बनाउन सक्दैन।

तपाईंले पढिरहेको लग लाइनले रुटको नाम लिन सक्छ तर कारण एक कदम अघि हुन्छ — यसैको कारण हो। क्लाइन्ट इन्टरफेस अस्तित्वमा आएपछि मात्र रुट चरणमा पुग्छ; ठेगाना नभए रुट कल तुरुन्तै असफल हुन्छ वा कहिल्यै चल्दैन। लगले रुट थप्न सक्दैन भन्छ भने रुट सिन्ट्याक्सबाट होइन, ठेगानाबाट सुरु गर्नुहोस्।

जाँच 1: सर्भरले जवाफमा ठेगाना राख्छ?

राउटेड OpenVPN सेवाका लागि ठेगाना सर्भर पूलबाट वा प्रति-क्लाइन्ट तोकाइबाट आउँछ, र यसको आकार टोपोलोजीले निर्धारण गर्छ। OpenVPN 2.4 वा नयाँ सर्भरमा, सबनेट टोपोलोजी भएको सेवा यस्तो देखिन्छ:

topology subnet
server 10.8.0.0 255.255.255.0
client-config-dir ccd

त्यो आकारसँग सर्भरले ifconfig 10.8.0.6 255.255.255.0 जस्तो केही पठाउँछ। पुरानो topology net30 स्थापनाले यसको सट्टा सहकर्मी ठेगाना पठाउँछ, उदाहरणका लागि ifconfig 10.8.0.6 10.8.0.5, त्यसैले दुई मोडेलबीच सारिएको प्रोफाइल ठीक देखिन सक्छ तर गलत नेटमास्क बोकेको हुन्छ।

क्लाइन्ट जडान लगमा पठाइएका विकल्पहरूको सेट खोज्नुहोस्। यदि त्यसमा ifconfig को एउटै लाइन छैन भने सर्भरले कहिल्यै ठेगाना पठाएन वा क्लाइन्टले विकल्प अस्वीकार गर्यो। client-config-dir प्रयोग गर्ने सर्भरमा, प्रमाणपत्रको common name नामको फाइल हुनुपर्छ र तोकाइ बोकेको हुनुपर्छ:

# ccd/phone-anna
ifconfig-push 10.8.0.6 255.255.255.0

जाँच 2: क्लाइन्टले पाएको ठेगाना राख्छ?

धेरै फराकिलो फिल्टर दोस्रो सामान्य कारण हो। pull-filter OpenVPN 2.4 र नयाँमा छ, र एउटै विकल्पसँग धेरै फिल्टर मिलेमा अन्तिम मिल्नेले जित्छ, त्यसैले अन्त्यमा राखिएको catch-all ले त्रुटि बिना ठेगाना हटाउँछ:

# removes every pushed option, including the address
pull-filter ignore "ifconfig"
pull-filter ignore "route"

फिल्टरलाई तपाईंले साँच्चै हटाउन चाहेको विकल्पसम्म साँघुरो बनाउनुहोस् र ठेगाना छोडिदिनुहोस्:

# keeps the pushed address, drops one unwanted LAN route
pull-filter ignore "route 10.60.0.0"

सबै pull बन्द गर्ने सल्लाह सामान्यतया एउटै रुटबाट छुटकारा पाउन चाहने व्यक्तिबाट आउँछ। route-nopull अझ साँघुरो स्विच हो: यसले ifconfig र अन्य पठाइएका विकल्प राख्छ तर पठाइएका रुट र DHCP शैलीका विकल्प अस्वीकार गर्छ। साँच्चै त्यही चाहिएको बेला मात्र प्रयोग गर्नुहोस्, र ठेगानाको प्रश्न छुट्टै सम्बोधन गर्नुहोस्।

जाँच 3: ठेगाना तपाईंले लेख्ने हो?

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

रुटमा टाढाको LAN को उपसर्ग गन्तव्य हो, कहिल्यै फोनको पहिचान होइन। 10.60.0.0/24 का लागि रुटले त्यो सञ्जालमा टनेलबाट पुग्नु भन्छ; फोनले कुन 10.60.0.x ठेगाना राख्नुपर्छ भनी यसले केही भन्दैन, र फोनले तीमध्ये कुनै पनि राख्नु हुँदैन। स्थिर तोकाइहरू सर्भर पक्षमा पर्छन्, जहाँ ती गतिशील पूलसँग ठोक्किन सक्दैनन्।

एउटै पहिचानमा दुई सत्रले त्यही ठोक्किने कुरा उजागर गर्छ। एउटै प्रमाणपत्र दुई पटक जोडियो र सर्भरले दुवैलाई एउटै स्थिर ठेगाना पठायो भने दोस्रो सत्रले पहिलोको प्रतिलिपि बनाउँछ, र समाधान क्लाइन्ट पक्षको सम्पादन होइन, छुट्टै पहिचान वा छुट्टै तोकाइ हो।

जाँच 4: अरू केहीले टनेलको स्थान ओगटेको छ?

Android ले एकै समयमा एउटा मात्र सक्रिय VPN सेवालाई अनुमति दिन्छ। अर्को VPN एप, वा अब काम नगर्ने प्रोफाइलका लागि खुला छोडिएको सधैं-सक्रिय VPN प्रविष्टिले तपाईंको OpenVPN क्लाइन्टले establish() कल गर्नु अघि त्यो स्थान लिन सक्छ। त्यसपछि प्रोफाइल वैध भए पनि इन्टरफेस कहिल्यै देखिँदैन, त्यसैले अर्को VPN विच्छेद गर्नुहोस्, सधैं-सक्रिय सेटिङ बन्द गर्नुहोस् र प्रोफाइल छुनु अघि फेरि जोडिनुहोस्।

इथरनेट ब्रिजिङमा जोड दिने सेवा अर्को बन्द बाटो हो। root नभएको Android एपले IP टनेल बनाउन सक्छ, ब्रिज गरिएको इथरनेट खण्ड होइन, त्यसैले तपाईंले लेख्ने कुनै पनि ठेगानाले dev tap सर्भर चलाउँदैन; अपरेटरले राउटेड सेवा दिनुपर्छ। समस्या रिपोर्ट गर्दा क्लाइन्टको नाम र संस्करण, पठाइएको विकल्प सेट, टोपोलोजी र ठेगाना देखिनुपर्ने ठ्याक्कै चरण समावेश गर्नुहोस्।

चारै जाँच पास भए र ठेगाना उपस्थित, अद्वितीय र ठीकसँग मास्क गरिएको छ भने रुटको प्रश्न सामान्य बन्छ: सर्भरले कुन उपसर्गहरूलाई अधिकृत गर्छ र क्लाइन्टले तिनलाई कसरी सीमित गर्नुपर्छ। अरू केही बदल्नु अघि टनेल ठेगाना, त्यसको नेटमास्क र टोपोलोजी लेख्नुहोस्, किनभने सर्भरको दृश्यसँग तुलना गर्न अपरेटरलाई यही तीन मान चाहिन्छ।

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