Windows पर "मेरी OpenVPN प्रोफ़ाइल कहाँ है" का दो अलग उत्तर हैं, और ग़लत उत्तर चुनने पर आधा दिन बर्बाद होता है। समुदाय का OpenVPN GUI किसी निर्देशिका को अपनी प्रोफ़ाइल सूची मानता है: कॉन्फ़िगर किए गए फ़ोल्डर की हर .ovpn फ़ाइल ट्रे मेन्यू में दिखती है, और उस फ़ोल्डर से हटाई गई फ़ाइल गायब हो जाती है। OpenVPN Connect आयात भंडार से काम करता है, इसलिए वह उस प्रोफ़ाइल को रखता है जिसे आपने डिस्क से हटाया और उस फ़ाइल को अनदेखा करता है जिसे आपने उसमें कॉपी किया। नीचे दी गई तुलना वही है जिसका उपयोग मैं कुछ भी छूने से पहले यह तय करने के लिए करता हूँ कि कौन-सा फ़ोल्डर खोलना है।

फ़ोल्डर सूची बनाम आयात भंडार

समुदाय का GUI शुरू होने पर फ़ाइलें गिनता है: यह इंस्टॉल के समय चुनी गई एक कॉन्फ़िगरेशन निर्देशिका पढ़ता है, और वहाँ रखी .ovpn फ़ाइल एक प्रोफ़ाइल है। क्लाइंट बंद करें, उस फ़ोल्डर में फ़ाइल कॉपी करें, उसे फिर शुरू करें, और प्रविष्टि मेन्यू में होगी।

Connect इसके बजाय अपनी सूची आयात के दौरान लिखे गए रिकॉर्ड से बनाता है, इसलिए कॉपी की गई फ़ाइल अदृश्य रहती है जबकि आयातित प्रोफ़ाइल मूल डाउनलोड हटाए जाने के बाद भी बनी रहती है। यही एक अंतर उन अधिकांश रिपोर्टों की व्याख्या करता है कि दोनों क्लाइंट प्रोफ़ाइल अलग जगह रखते हैं, क्योंकि वे वास्तव में ऐसा करते हैं।

समुदाय का GUI: वास्तव में कौन-सा फ़ोल्डर उपयोग होता है

दो फ़ोल्डर मायने रखते हैं। प्रति-उपयोगकर्ता इंस्टॉल %USERPROFILE%\OpenVPN\config पढ़ता है; सभी-उपयोगकर्ता इंस्टॉल C:\Program Files\OpenVPN\config, या x86 पथ पढ़ता है जब क्लाइंट 32-bit हो। अगर कोई प्रोफ़ाइल केवल एक Windows खाते के लिए दिखती है, तो वह प्रति-उपयोगकर्ता फ़ोल्डर में है और दूसरा खाता उसे कभी नहीं देखेगा।

इंस्टॉलर से पथ का अनुमान न लगाएँ। GUI --config_dir तर्क स्वीकार करता है और उस निर्देशिका को याद रखता है जिससे इसे शुरू किया गया था, इसलिए कोई शॉर्टकट पूरी तरह कहीं और इंगित कर सकता है। कोई भी फ़ाइल बनाने से पहले शॉर्टकट का लक्ष्य और Start in फ़ील्ड, या GUI सेटिंग्स जाँचें।

हटाना फ़ाइल हटाना है। पहले GUI बंद करें ताकि वह प्रविष्टि स्मृति में न रखे, .ovpn को उसके साथ रखी किसी भी प्रमाणपत्र या कुंजी फ़ाइल के साथ मिटाएँ, फिर क्लाइंट को दोबारा शुरू करें।

सभी-उपयोगकर्ता फ़ोल्डर के लिए उन्नत हटाना आवश्यक है। वहाँ चुपचाप कुछ न करने वाला हटाना UAC है, क्लाइंट की गड़बड़ी नहीं।

Connect: आयात भंडार और दोहरा AppData जाल

मौजूदा 2.x और 3.x बिल्ड प्रोफ़ाइल %APPDATA%\OpenVPN Connect\profiles के अंतर्गत रखते हैं। 2.5 के आसपास के बिल्ड इसके बजाय %ProgramFiles(x86)%\OpenVPN Technologies\OpenVPN Client\etc\profile का उपयोग करते थे, इसलिए पुराने और नए फ़ोरम उत्तर परस्पर विरोधी लगते हैं। जगह पर अपग्रेड किया गया मशीन अब भी दोनों रख सकता है।

पथ दोबारा सुनाते समय बिगड़ जाते हैं। %AppData% पहले से AppData\Roaming में हल होता है, इसलिए %AppData%\Roaming\OpenVPN Connect\profiles लिखने पर वह AppData\Roaming\Roaming में फैल जाता है और कहीं इंगित नहीं करता। चर या शाब्दिक पथ का उपयोग करें, दोनों का मिश्रण कभी नहीं।

क्लाइंट के माध्यम से हटाएँ: Profiles खोलें, पेंसिल आइकन का उपयोग करें, Delete चुनें। यह रिकॉर्ड और संग्रहीत प्रति दोनों को एक साथ हटाता है। Connect के चलते समय फ़ोल्डर हटाने से ऐसा रिकॉर्ड रह सकता है जो कुछ नहीं खोलता, और यही "profile still shows up" शिकायत का दूसरा रूप है।

आयातित प्रति वही है जिसे क्लाइंट चलाता है। Downloads में छोड़ी .ovpn को संपादित करने से कुछ नहीं बदलता, क्योंकि Connect अपनी संग्रहीत प्रति पढ़ता है; remote या cipher बदलने के लिए क्लाइंट के भीतर प्रोफ़ाइल संपादित करें, या फ़ाइल संपादित करके उसे फिर से आयात करें।

हटाई गई प्रोफ़ाइल वापस क्यों आती है

एक ही क्लाइंट परिवार के दो इंस्टॉल सामान्य कारण हैं। प्रति-उपयोगकर्ता GUI और सभी-उपयोगकर्ता GUI की कॉन्फ़िगरेशन निर्देशिकाएँ अलग होती हैं, इसलिए एक से हटाने पर दूसरी अछूती रहती है और ट्रे अब भी नाम दिखाता है। Programs and Features वह जगह है जहाँ आप पुष्टि करते हैं कि दोनों इंस्टॉल हैं या नहीं।

दूसरा कारण ऐसी प्रोफ़ाइल है जो आपके जाँचे फ़ोल्डर में कभी थी ही नहीं। नेटवर्क शेयर या Downloads फ़ोल्डर से एक बार .ovpn खोलने पर वह प्रति-उपयोगकर्ता कॉन्फ़िग निर्देशिका में कॉपी हो सकती है, और आयातित Connect प्रोफ़ाइलें केवल AppData में होती हैं। कुछ भी संपादित करने से पहले फ़ाइल का नाम %USERPROFILE% और %APPDATA% दोनों के अंतर्गत खोजें। प्रोफ़ाइल फ़ोल्डर में आमतौर पर .ovpn के बगल में निजी कुंजी होती है, इसलिए यह साबित करने के लिए कि आपने कौन-सी प्रोफ़ाइल हटाई, फ़ोल्डर को कभी टिकट या चैट में न चिपकाएँ - इसके बजाय फ़ाइल का नाम और समय-चिह्न बताएँ।

पुराने GUI बिल्ड क्लाइंट प्राथमिकताएँ रजिस्ट्री में भी रखते हैं। अगर फ़ाइल जाने के बाद भी ट्रे कोई नाम दिखाता है और केवल एक इंस्टॉल मौजूद है, तो क्लाइंट को एक बार पुनः चालू करें और रजिस्ट्री कुंजियाँ छूने पर विचार करने से पहले शॉर्टकट की कॉन्फ़िग निर्देशिका फिर जाँचें।

एक साथ दो टनल: पहले एडाप्टर, फिर रूट

GUI कई कनेक्शन रख सकता है, प्रति वर्चुअल एडाप्टर एक; Start मेन्यू की उस प्रविष्टि से एडाप्टर जोड़ें जो TAP-Windows6 इंस्टॉल करती है, फिर Network Connections में संख्या की पुष्टि करें, क्योंकि दो साथ-साथ चलने वाली टनल को दो एडाप्टर चाहिए और दोनों को अपना पता स्वतः प्राप्त करना चाहिए। रूटिंग कठिन सीमा है। दो प्रोफ़ाइल जो हर एक सारा ट्रैफ़िक मोड़ती हैं, डिफ़ॉल्ट रूट के लिए प्रतिस्पर्धा करती हैं, और केवल एक ही उसकी मालिक हो सकती है, इसलिए आपको दो काम करती टनल के बजाय रुक-रुक कर विफलताएँ मिलती हैं। एक पूरी टनल रखें और दूसरी को ऐसी split-tunnel प्रोफ़ाइल दें जो केवल अपना सबनेट धकेले।

अतिव्यापी निजी रेंज एडाप्टर जोड़कर ठीक नहीं हो सकतीं। अगर दोनों सर्वर 10.8.0.0/24 बाँटते हैं, तो दूसरी टनल पते के स्तर पर टकराती है और कोई भी क्लाइंट कॉन्फ़िगरेशन उन्हें अलग नहीं करेगा।

एडाप्टर के नाम बताते हैं कि आप क्या देख रहे हैं। PowerShell में Get-NetAdapter TAP-Windows एडाप्टर और Wintun एडाप्टर को नाम से सूचीबद्ध करता है, जो टनल के ग़लत एडाप्टर पर आने पर Network Connections में आइकन गिनने से तेज़ है।

स्क्रिप्ट से नामित प्रोफ़ाइल शुरू करना

GUI प्रोफ़ाइल का नाम अपनी कॉन्फ़िगरेशन निर्देशिका के सापेक्ष लेता है, इसलिए लॉन्चर ऐसा दिखता है: "C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect "myvpn.ovpn"। पूर्ण पथ, या किसी दूसरी कार्यशील निर्देशिका में शुरू की गई प्रक्रिया, चुपचाप विफल होती है, इसलिए डबल-क्लिक से चलने वाला शॉर्टकट Task Scheduler के अंतर्गत टूट जाता है।

आशा करने के बजाय कार्यशील निर्देशिका निर्धारित करें। AutoHotkey लॉन्चर में वह SetWorkingDir है, C:\Program Files\OpenVPN\config; Task Scheduler में वह क्रिया का Start in फ़ील्ड है। उसी पथ के साथ --config_dir पास करने से लॉन्चर दोनों से स्वतंत्र हो जाता है।

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

संबंधित लेख