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 आवृत्तीपेक्षा जुन्या ब्लॉग पोस्टऐवजी त्याच पाळा. ध्येय फक्त कनेक्ट होणे असेल, तर पॅकेज घ्या, स्क्रिप्ट ठेवा आणि कंपायलर बाहेर ठेवा.

संबंधित लेख