OpenConnect på macOS: pakke, utgivingsarkiv eller git-klone
Homebrew leverer ei binærfil og eit nettverksskript; eit kildetre leverer ingen av dei før du genererer og køyrer dei. Vit kva tilkopinga di brukar.
Tre vegar gir deg ein OpenConnect-klient på ein Mac, og dei lèt att ulike ting på disken. Ei Homebrew-formel installerer ei kompilert binærfil og nettverksskriptet som set opp ruter og DNS. Eit utgivingsarkiv gir deg kjeldekode med eit generert byggjesystem. Ein git-utsjekk gir deg kjeldekode utan. Å velje feil er grunnen til at folk møter ein manglande configure nokre minutt ut i ei rettleiing.
To ulike maskiner under same namnet
Pakkestien er éin einaste kommando, og det er rett standardval for alle som har tilkoping som jobb og ikkje utvikling.
brew install openconnect
Det ho installerer, tyder meir enn kommandoen. Du får binærfilet til klienten, og du får òg eit vpnc-script som klienten kallar for å programmera grensesnittet, rutene og oppløysaren. Dei to arbeider som eit par: binærfilet avsluttar TLS-økta og overlèt grensesnittet som oppstår til skriptet, og skriptet er delen som veit korleis dette operativsystemet vil at nettverket skal endrast.
Denne delinga forklarer ein heil klasse forvirrande rapportar. Ein klient som koplar til, rapporterer suksess og så sender trafikk på feil veg, har vanlegvis eit skriptproblem, ikkje eit tunnelproblem, og ein reinstallering av formelen rettar det berre fordi skriptet òg blir reinstalla. Sjekk støtta formelen har i dag for macOS og CPU-arkitektur før du planlegg rundt han; ein Mac som køyrer eit skal perfekt har kanskje framleis ingen gjeldande pakke bygd for seg.
Kva kjeldekodevegen eigentleg gjer
Eit utgivingsarkiv kjem med eit generert byggjesystem, så den kjende ./configure finst frå starten. Ein git-utsjekk gjer ikkje det, fordi dei genererte filene er byggjeprodukt og ikkje ting prosjektet lagrar. Det er heile grunnen til at ./autogen.sh dukkar opp i instruksjonane for utsjekkar og ikkje for utgivingsarkiv.
./autogen.sh
./configure
make
make install
Kvar linje gjer noko bestemt, og å vita kva som feila sparer mykje gissing. autogen-trinnet køyrer autotools for å produsera configure. configure-trinnet undersøkjer kompilatoren, biblioteka og overskriftene klienten treng, og skriv så makefile-filene som speglar det han fann. make-trinnet kompilerer. install-trinnet kopierer resultata ein stad på stien din.
Det er på den siste linja råd ofte går gale. Installasjon er ikkje prov på at bygget verka, og å køyre det i ei vilkårleg nedlastingsmappe med auka rettar er ein god måte å spreie filer du ikkje vil hugse seinare. Viss configure feilar på eit manglande bibliotek, er det nyttige utfallet den første feilen han skreiv ut, ikkje dei siste tjue linjene av loggen.
Økta og nettverkskonfigurasjonen er åtskilde
Denne skilnaden avgjer om ei tilkoping faktisk ber trafikk. Å etablera TLS-økta gir deg eit grensesnitt på klientsida. Å bruka ruter, adresser og DNS-oppløysarar er eit andre trinn som blir gjort gjennom nettverksskriptet, og eit bygg som produserte ei binærfil utan skriptet, har ein halv klient.
Den same delinga forklarer kvifor to maskiner med identiske klientar oppfører seg ulikt: skriptet spør nettverkskonfigurasjonen til systemet, og den konfigurasjonen omfattar alt anna som har kravd ei rute. Når ein delt tunnel sender trafikk ein uventa stad, gjer tunnelen jobben sin, og rutingsavgjerda er det som må undersøkjast.
Så når du feilsøkjer, spør kva lag som feila. Ei økt som aldri blir etablert, er protokoll, sertifikat eller legitimasjon. Ei økt som blir etablert og ikkje videresender noko, er grensesnittet og skriptet. Ein installert klient som verkar frå eitt nett og ikkje frå eit anna, er tilgjenge, og ingen mengd ombygging endrar det.
Vit kva binærfil du køyrer
Eit handinstallert bygg og ei pakka binærfil kan leva lukkeleg saman, og kva som køyrer avheng av stien din og ikkje av hensiktene dine. Finn det ut før du rapporterer eit versjonsnummer til nokon.
which -a openconnect
openconnect --version
brew list --versions openconnect
Den første kommandoen listar opp kvar kopi skalet ditt ser, i den rekkjefølgja det ville prøve dei. Den andre fortel deg kva som svara. Når det ikkje stemmer med det du ventar, køyrer du eit bygg frå eit gammalt eksperiment, og inga konfigurasjonsendring flyttar det.
Å installera ein klient er ikkje godkjenning av ein gateway
Ei fungerande binærfil gjer ikkje ein utrulling kompatibel. Stadfest protokollen til gatewayen, autentiseringsflyten hans og eventuelle krav til styrt eining med folka som eig han, fordi det er politikk- og applikasjonslagfakta som eit bygg ikkje kan levera.
Byggjeinstruksjonane til prosjektet dekkjer autotools-sekvensen og kravet til nettverksskriptet meir detaljert, og dei bør ein følgje framfor eit blogginnlegg som er eldre enn macOS-utgåva di. Viss målet berre er å kopla til, ta pakka, hald på skriptet, og lat kompilatoren vera utanfor.