Tre rrugë ju japin një klient OpenConnect në një Mac dhe lënë gjëra të ndryshme në disk. Një formulë Homebrew instalon një binar të kompiluar dhe skriptin e rrjetit që konfiguron rrugët dhe DNS. Një arkiv lëshimi ju jep kod burimor me një sistem ndërtimi të gjeneruar. Një klon git ju jep kod burimor pa të. Zgjedhja e gabuar është arsyeja pse njerëzit hasin një configure që mungon pak minuta pas fillimit të një udhëzuesi.

Dy makina të ndryshme nën të njëjtin emër

Rruga e paketës është një komandë e vetme dhe është parazgjedhja e duhur për këdo, puna e të cilit është të lidhet e jo të zhvillojë.

brew install openconnect

Ajo që instalon ka më shumë rëndësi se komanda. Ju merrni binarin e klientit dhe gjithashtu një vpnc-script që klienti e thërret për të programuar ndërfaqen, rrugët dhe zgjidhësin. Të dy punojnë si çift: binari përfundon sesionin TLS dhe ia dorëzon ndërfaqen që rezulton skriptit, dhe skripti është pjesa që e di si ky sistem operativ dëshiron të ndryshojë rrjetin e tij.

Kjo ndarje shpjegon një klasë të tërë raportesh konfuze. Një klient që lidhet, raporton sukses dhe më pas dërgon trafikun në rrugën e gabuar zakonisht ka problem me skriptin, jo me tunelin, dhe riinstalimi i formulës e rregullon vetëm sepse edhe skripti riinstalohet. Kontrolloni mbështetjen aktuale të formulës për macOS dhe arkitekturën e CPU-së përpara se të planifikoni mbi të; një Mac që ekzekuton përsosurisht një shell mund të mos ketë ende një paketë aktuale të ndërtuar për të.

Çfarë bën në të vërtetë rruga e kodit burimor

Një arkiv lëshimi vjen me një sistem ndërtimi të gjeneruar, kështu që ./configure i njohur ekziston që në fillim. Një klon git nuk e ka, sepse skedarët e gjeneruar janë produkte ndërtimi dhe jo gjëra që projekti ruan. Kjo është e gjithë arsyeja pse ./autogen.sh shfaqet në udhëzimet për klonat dhe jo për arkivat e lëshimit.

./autogen.sh
./configure
make
make install

Çdo rresht bën diçka të veçantë, dhe ta dish se cili dështoi kursen shumë hamendje. Hapi autogen ekzekuton autotools për të prodhuar configure. Hapi configure provon kompiluesin, bibliotekat dhe titujt që i nevojiten klientit, pastaj shkruan makefile që pasqyrojnë atë që gjeti. Hapi make kompilon. Hapi install kopjon rezultatet diku në rrugën tuaj.

Është pikërisht në atë rreshtin e fundit që këshillat shpesh shkojnë keq. Instalimi nuk është provë që ndërtimi funksionoi, dhe ekzekutimi i tij në një dosje shkarkimesh të çfarëdoshme me privilegje të larta është një mënyrë e mirë për të shpërndarë skedarë që nuk do t'i mbani mend më vonë. Nëse configure dështon për një bibliotekë që mungon, dalja e dobishme është gabimi i parë i printuar, jo njëzet rreshtat e fundit të regjistrit.

Sesioni dhe konfigurimi i rrjetit janë të ndara

Ky dallim vendos nëse një lidhje vërtet mbart trafik. Vendosja e sesionit TLS ju jep një ndërfaqe në anën e klientit. Zbatimi i rrugëve, adresave dhe zgjidhësve DNS është një hap i dytë i bërë përmes skriptit të rrjetit, dhe një ndërtim që prodhoi një binar pa skriptin ka gjysmë klienti.

E njëjta ndarje shpjegon pse dy makina me klientë identikë sillen ndryshe: skripti konsulton konfigurimin e rrjetit të sistemit, dhe ai konfigurim përfshin çdo gjë tjetër që ka kërkuar një rrugë. Kur një tunel i ndarë dërgon trafikun në një vend të papritur, tuneli po bën punën e tij dhe vendimi i rrugëzimit është ai që duhet shqyrtuar.

Prandaj kur korrigjoni gabime, pyesni cili shtresë dështoi. Një sesion që nuk vendoset kurrë është protokoll, certifikatë ose kredenciale. Një sesion që vendoset dhe nuk përçon asgjë është ndërfaqja dhe skripti. Një klient i instaluar që funksionon nga një rrjet dhe jo nga një tjetër është arritshmëri, dhe asnjë sasi rindërtimi nuk e ndryshon atë.

Dijeni cilin binar po ekzekutoni

Një ndërtim i instaluar me dorë dhe një binar i paketuar mund të bashkëjetojnë me qetësi, dhe cili ekzekutohet varet nga rruga juaj e jo nga qëllimet tuaja. Zbulojeni këtë përpara se t'i raportoni dikujt një numër versioni.

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

Komanda e parë liston çdo kopje që sheh shell-i juaj, në rendin në të cilin do t'i provonte. E dyta ju thotë cila u përgjigj. Kur kjo nuk përputhet me atë që prisni, po ekzekutoni një ndërtim nga një eksperiment i vjetër, dhe asnjë ndryshim konfigurimi nuk do ta lëvizë.

Instalimi i një klienti nuk është miratim i një portali

Një binar që funksionon nuk e bën një vendosje të përputhshme. Konfirmoni protokollin e portalit, rrjedhën e vërtetimit dhe çdo kërkesë për pajisje të menaxhuar me njerëzit që e zotërojnë, sepse ato janë fakte politike dhe të shtresës së aplikimit që një ndërtim nuk mund t'i sigurojë.

Udhëzimet e ndërtimit të projektit mbulojnë më në detaje sekuencën autotools dhe kërkesën për skriptin e rrjetit, dhe ato duhen ndjekur dhe jo një postim blogu më i vjetër se versioni juaj i macOS. Nëse qëllimi është thjesht të lidheni, merrni paketën, mbani skriptin dhe lëreni kompiluesin jashtë.

Artikuj të ngjashëm