Drie weë gee jou 'n OpenConnect-kliënt op 'n Mac, en hulle laat verskillende dinge op die skyf. 'n Homebrew-formule installeer 'n saamgestelde binêre lêer plus die netwerkskrip wat roetes en DNS opstel. 'n Vrystellingsargief gee jou bronkode met 'n gegenereerde bou-stelsel. 'n git-uitkloping gee jou bronkode sonder een. Om die verkeerde een te kies is hoekom mense 'n ontbrekende configure 'n paar minute in 'n handleiding teëkom.

Twee verskillende masjiene onder dieselfde naam

Die pakketpad is 'n enkele opdrag, en dit is die regte verstek vir enigiemand wie se werk dit is om te koppel eerder as om te ontwikkel.

brew install openconnect

Wat dit installeer, maak meer saak as die opdrag. Jy kry die kliënt se binêre lêer, en jy kry ook 'n vpnc-script wat die kliënt roep om die koppelvlak, die roetes en die DNS-oploser te programmeer. Die twee werk as 'n paar: die binêre lêer beëindig die TLS-sessie en gee die resulterende koppelvlak aan die skrip, wat die deel is wat weet hoe hierdie bedryfstelsel sy netwerk wil hê.

Daardie splitsing verduidelik 'n hele klas verwarrende verslae. 'n Kliënt wat koppel, sukses rapporteer en dan verkeer op die verkeerde pad stuur, is gewoonlik 'n skripprobleem, nie 'n tonnelprobleem nie, en om die formule te herinstalleer maak dit net reg omdat die skrip ook herinstalleer word. Kyk na die formule se huidige macOS- en CPU-argitektuurondersteuning voordat jy daarop beplan; 'n Mac wat 'n dop heel goed laat werk, het dalk steeds geen huidige pakket wat daarvoor gebou is nie.

Wat die bronroete regtig doen

'n Vrystellingsargief kom met 'n gegenereerde bou-stelsel, so die bekende ./configure bestaan van die begin af. 'n git-uitkloping het dit nie, want die gegenereerde lêers is bouprodukte eerder as dinge wat die projek bewaar. Dit is die hele rede waarom ./autogen.sh in die instruksies vir uitklopings verskyn en nie vir vrystellingsargiewe nie.

./autogen.sh
./configure
make
make install

Elke reël doen iets spesifiek, en om te weet watter een misluk het, spaar baie raaiwerk. Die autogen-stap laat die autotools loop om configure te produseer. Die configure-stap ondersoek die samesteller, biblioteke en kopskrifte wat die kliënt nodig het, en skryf dan die makefiles wat weerspieël wat dit gevind het. Die make-stap stel saam. Die install-stap kopieer die resultate na êrens op jou pad.

Dit is by daardie laaste reël waar advies gewoonlik verkeerd loop. Installasie is nie bewys dat die bou gewerk het nie, en om dit in 'n willekeurige aflaaigids met verhoogde bevoegdhede te laat loop, is 'n goeie manier om lêers te strooi wat jy later nie sal onthou nie. As configure misluk op 'n ontbrekende biblioteek, is die nuttige uitset die eerste fout wat dit gedruk het, nie die laaste twintig reëls van die log nie.

Die sessie en die netwerkkonfigurasie is apart

Hierdie onderskeid besluit of 'n verbinding werklik verkeer dra. Om die TLS-sessie te vestig gee jou 'n koppelvlak aan die kliëntkant. Om roetes, adresse en DNS-oplossers toe te pas is 'n tweede stap wat deur die netwerkskrip uitgevoer word, en 'n bou wat 'n binêre lêer sonder die skrip opgelewer het, het 'n halwe kliënt.

Dieselfde skeiding verduidelik waarom twee masjiene met identiese kliënte anders optree: die skrip raadpleeg die stelsel se netwerkkonfigurasie, en daardie konfigurasie sluit in wat ook al 'n roete opgeëis het. Wanneer 'n split-tonnel verkeer na 'n onverwagte plek stuur, doen die tonnel sy werk en is die roetebesluit die ding om te ondersoek.

So wanneer jy ontfout, vra watter laag misluk het. 'n Sessie wat nooit vestig nie, is protokol, sertifikaat of geloofsbriewe. 'n Sessie wat vestig en niks aanstuur nie, is die koppelvlak en die skrip. 'n Geïnstalleerde kliënt wat van een netwerk werk en nie van 'n ander nie, is bereikbaarheid, wat geen hoeveelheid herbou verander nie.

Weet watter binêre lêer jy laat loop

'n Handgeïnstalleerde bou en 'n verpakte binêre lêer kan gelukkig saam bestaan, en die een wat loop hang van jou pad af eerder as van jou bedoelings. Vind dit uit voordat jy 'n weergawenommer aan iemand rapporteer.

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

Die eerste opdrag lys elke kopie wat jou dop kan sien, in die volgorde waarin dit hulle sou probeer. Die tweede sê vir jou watter een geantwoord het. Wanneer dié verskil van wat jy verwag, laat jy 'n bou uit 'n ou eksperiment loop, en geen konfigurasieverandering sal dit skuif nie.

Om 'n kliënt te installeer is nie gateway-goedkeuring nie

'n Werkende binêre lêer maak nie 'n ontplooiing versoenbaar nie. Bevestig die gateway se protokol, sy verifikasieproses en enige vereiste vir bestuurde toestelle met die mense wat dit besit, want dit is beleid- en toepassingslaagfeite wat 'n bou nie kan verskaf nie.

Die projek se bou-instruksies dek die autotools-reeks en die netwerkskrip-vereiste in meer besonderhede, en hulle is die verwysing om te volg eerder as 'n blogpos wat jou macOS-vrystelling dateer. As die doel bloot is om te koppel, neem die pakket, hou die skrip, en los die samesteller uit.

Verwante artikels