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 వెర్షన్ కంటే పాత బ్లాగ్ పోస్ట్ కాదు, వాటినే అనుసరించాలి. లక్ష్యం కేవలం కనెక్ట్ అవ్వడమే అయితే, ప్యాకేజీ తీసుకోండి, స్క్రిప్ట్ ఉంచుకోండి, కంపైలర్‌ను బయట ఉంచండి.

సంబంధిత వ్యాసాలు