OpenConnect v macOS: balík, archív vydania alebo klon gitu
Homebrew dodáva binárku a sieťový skript; strom zdrojových kódov nedodáva ani jedno, kým ich nevygenerujete a nespustíte. Vedzte, ktoré vaše pripojenie používa.
Tri cesty vám na Macu dajú klienta OpenConnect a na disku zanechajú rôzne veci. Formule Homebrew nainštaluje skompilovanú binárku a sieťový skript, ktorý nastavuje trasy a DNS. Archív vydania vám dá zdrojový kód s vygenerovaným systémom zostavenia. Klon gitu vám dá zdrojový kód bez neho. Voľba nesprávnej cesty je dôvod, prečo ľudia pár minút po začiatku návodu narazia na chýbajúci configure.
Dva rôzne stroje pod tým istým názvom
Cesta cez balík je jediný príkaz a je to správna predvolená voľba pre každého, koho prácou je pripájať sa, nie vyvíjať.
brew install openconnect
Na tom, čo nainštaluje, záleží viac než na príkaze. Získate binárku klienta a tiež vpnc-script, ktorý klient volá, aby naprogramoval rozhranie, trasy a resolver. Obe veci fungujú ako pár: binárka ukončí reláciu TLS a odovzdá výsledné rozhranie skriptu, a skript je tá časť, ktorá vie, ako si tento operačný systém chce nechať zmeniť sieť.
Toto rozdelenie vysvetľuje celú triedu mätúcich hlásení. Klient, ktorý sa pripojí, ohlási úspech a potom pošle premávku nesprávnou cestou, má zvyčajne problém so skriptom, nie s tunelom, a preinštalovanie formuly to spraví len preto, že sa preinštaluje aj skript. Overte si aktuálnu podporu formuly pre macOS a architektúru procesora, než s ňou budete počítať; Mac, ktorý shell spúšťa bezchybne, preň možno stále nemá aktuálny balík.
Čo cesta cez zdrojový kód skutočne robí
Archív vydania prichádza s vygenerovaným systémom zostavenia, takže známy ./configure existuje od začiatku. Klon gitu ho nemá, pretože vygenerované súbory sú produkty zostavenia, a nie veci, ktoré projekt ukladá. To je celý dôvod, prečo sa ./autogen.sh objavuje v návodoch pre klony a nie pre archívy vydania.
./autogen.sh
./configure
make
make install
Každý riadok robí niečo konkrétne a vedieť, ktorý zlyhal, ušetrí veľa hádania. Krok autogen spustí autotools, aby vytvoril configure. Krok configure otestuje kompilátor, knižnice a hlavičky, ktoré klient potrebuje, a potom zapíše makefile súbory zodpovedajúce tomu, čo našiel. Krok make skompiluje. Krok install skopíruje výsledky niekam do vašej cesty.
Práve na tom poslednom riadku sa rada zvyčajne zvrtne. Inštalácia nie je dôkaz, že zostavenie fungovalo, a spúšťať ju v ľubovoľnom priečinku sťahovania so zvýšenými právami je dobrý spôsob, ako rozhádzať súbory, na ktoré si neskôr nespomeniete. Ak configure zlyhá pre chýbajúcu knižnicu, užitočný výstup je prvý vypísaný error, nie posledných dvadsať riadkov záznamu.
Relácia a sieťová konfigurácia sú oddelené
Toto rozlíšenie rozhoduje, či pripojenie skutočne prenáša premávku. Nadviazanie relácie TLS vám dá rozhranie na strane klienta. Aplikovanie trás, adries a DNS resolverov je druhý krok vykonaný cez sieťový skript, a zostavenie, ktoré vytvorilo binárku bez skriptu, má polovicu klienta.
To isté oddelenie vysvetľuje, prečo sa dva stroje s identickými klientmi správajú odlišne: skript sa pýta sieťovej konfigurácie systému a tá konfigurácia zahŕňa všetko ostatné, čo si nárokovalo trasu. Keď rozdelený tunel pošle premávku na neočakávané miesto, tunel robí svoju prácu a skúmať treba rozhodnutie o smerovaní.
Takže pri ladení sa pýtajte, ktorá vrstva zlyhala. Relácia, ktorá sa nikdy nenadviaže, je protokol, certifikát alebo prihlasovacie údaje. Relácia, ktorá sa nadviaže a nič nepreposiela, je rozhranie a skript. Nainštalovaný klient, ktorý funguje z jednej siete a z inej nie, je dosiahnuteľnosť a to žiadne prestavanie nezmení.
Vedzte, ktorú binárku spúšťate
Ručne nainštalované zostavenie a zabalená binárka môžu pokojne koexistovať a to, ktorá sa spustí, závisí od vašej cesty, nie od vašich zámerov. Zistite to, než niekomu nahlásite číslo verzie.
which -a openconnect
openconnect --version
brew list --versions openconnect
Prvý príkaz vypíše každú kópiu, ktorú váš shell vidí, v poradí, v akom by ich skúsil. Druhý vám povie, ktorá odpovedala. Keď sa to nezhoduje s vaším očakávaním, spúšťate zostavenie zo starého experimentu a žiadna zmena konfigurácie s tým nepohne.
Inštalácia klienta nie je schválenie brány
Funkčná binárka nerobí nasadenie kompatibilným. Potvrďte protokol brány, jej tok autentizácie a prípadnú požiadavku na spravované zariadenie s ľuďmi, ktorí ju vlastnia, pretože to sú fakty o politike a aplikačnej vrstve, ktoré zostavenie poskytnúť nemôže.
Pokyny k zostaveniu projektu podrobnejšie opisujú sled autotools a požiadavku na sieťový skript a treba sa nimi riadiť, nie blogovým príspevkom starším ako vaše vydanie macOS. Ak je cieľom len pripojiť sa, vezmite balík, ponechajte skript a kompilátor nechajte bokom.