Mac मा OpenConnect क्लाइन्ट पाउने तीन बाटा छन्, र तिनले डिस्कमा फरक कुरा छोड्छन्। Homebrew सूत्रले कम्पाइल गरिएको बाइनरी र रुट तथा DNS कन्फिगर गर्ने नेटवर्क स्क्रिप्ट स्थापना गर्छ। रिलिज अभिलेखले तपाईंलाई उत्पन्न गरिएको बिल्ड प्रणालीसहित स्रोत कोड दिन्छ। git चेकआउटले त्यो बिना स्रोत कोड दिन्छ। गलत छनोट गर्नु नै कारण हो कि मानिसहरू ट्युटोरियल सुरु भएको केही मिनेटमै हराएको configure भेट्छन्।

एउटै नाममुनि दुई फरक मेसिन

प्याकेजको बाटो एउटै आदेश हो, र जसको काम विकास गर्नु नभई जोडिनु हो, तिनका लागि यो सही पूर्वनिर्धारित हो।

brew install openconnect

यसले के स्थापना गर्छ भन्ने आदेशभन्दा महत्त्वपूर्ण छ। तपाईंले क्लाइन्टको बाइनरी पाउनुहुन्छ, र इन्टरफेस, रुट र रिजोल्भर प्रोग्राम गर्न क्लाइन्टले बोलाउने vpnc-script पनि पाउनुहुन्छ। दुवै जोडीका रूपमा काम गर्छन्: बाइनरीले TLS सत्र अन्त्य गरी बनेको इन्टरफेस स्क्रिप्टलाई दिन्छ, र स्क्रिप्ट त्यो भाग हो जसलाई यो अपरेटिङ सिस्टमले आफ्नो नेटवर्क कसरी बदल्न चाहन्छ भन्ने थाहा छ।

यो विभाजनले भ्रमपूर्ण प्रतिवेदनहरूको सम्पूर्ण वर्ग व्याख्या गर्छ। जोडिएर सफलता जनाएपछि ट्राफिक गलत बाटोमा पठाउने क्लाइन्टमा सामान्यतया स्क्रिप्टको समस्या हुन्छ, टनेलको होइन, र सूत्र पुनः स्थापना गर्दा त्यो सुधारिन्छ किनभने स्क्रिप्ट पनि पुनः स्थापना हुन्छ। सूत्रको हालको macOS र CPU आर्किटेक्चर समर्थन त्यसमा योजना बनाउनुअघि जाँच्नुहोस्; शेल राम्ररी चलाउने Mac का लागि पनि हालको प्याकेज अझै नबनेको हुन सक्छ.

स्रोतको बाटोले साँच्चै के गर्छ

रिलिज अभिलेख उत्पन्न गरिएको बिल्ड प्रणालीसहित आउँछ, त्यसैले परिचित ./configure सुरुदेखि नै हुन्छ। git चेकआउटमा हुँदैन, किनभने उत्पन्न गरिएका फाइलहरू बिल्डका उत्पादन हुन्, परियोजनाले भण्डारण गर्ने कुरा होइनन्। ./autogen.sh अभिलेखमा नभई चेकआउटका निर्देशनमा देखिनुको पूरै कारण यही हो।

./autogen.sh
./configure
make
make install

प्रत्येक पङ्क्तिले केही विशेष काम गर्छ, र कुन असफल भयो भन्ने थाहा हुँदा धेरै अनुमान बच्छ। autogen चरणले configure उत्पादन गर्न autotools चलाउँछ। configure चरणले क्लाइन्टलाई आवश्यक कम्पाइलर, पुस्तकालय र हेडर जाँच्छ, त्यसपछि भेटिएको कुरा झल्काउने makefile लेख्छ। make चरणले कम्पाइल गर्छ। install चरणले नतिजा तपाईंको पथमा कतै प्रतिलिपि गर्छ।

त्यही अन्तिम पङ्क्तिमा सल्लाह सामान्यतया बिग्रन्छ। स्थापना बिल्ड चल्यो भन्ने प्रमाण होइन, र यसलाई कुनै डाउनलोड फोल्डरमा उच्च विशेषाधिकारसहित चलाउनु पछि सम्झन नसकिने फाइलहरू छर्ने राम्रो तरिका हो। पुस्तकालय नभएर configure असफल भयो भने उपयोगी आउटपुट त्यसले छापेको पहिलो त्रुटि हो, लगको अन्तिम बीस पङ्क्ति होइन।

सत्र र नेटवर्क कन्फिगरेसन छुट्टाछुट्टै छन्

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

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

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

तपाईं कुन बाइनरी चलाइरहनुभएको छ जान्नुहोस्

हातले स्थापना गरिएको बिल्ड र प्याकेज गरिएको बाइनरी सँगै शान्तिसँग बस्न सक्छन्, र कुन चल्छ भन्ने तपाईंको पथमा निर्भर हुन्छ, तपाईंको मनसायमा होइन। कसैलाई संस्करण नम्बर बताउनुअघि यो पत्ता लगाउनुहोस्।

which -a openconnect
openconnect --version
brew list --versions openconnect

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

क्लाइन्ट स्थापना गर्नु गेटवेको स्वीकृति होइन

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

परियोजनाका बिल्ड निर्देशनहरू autotools क्रम र नेटवर्क स्क्रिप्टको आवश्यकता थप विस्तारमा समेट्छन्, र तपाईंको macOS संस्करणभन्दा पुरानो ब्लग पोस्ट नभई तिनै पालना गर्नुपर्छ। लक्ष्य केवल जोडिनु हो भने, प्याकेज लिनुहोस्, स्क्रिप्ट राख्नुहोस् र कम्पाइलर बाहिर राख्नुहोस्।

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