Trije wegen jouwe jo in OpenConnect-klant op in Mac, en se litte ferskillende dingen op de skiif. In Homebrew-formule ynstallearret in kompilearre binêre triem plus it netwurkskript dat rûtes en DNS konfigurearret. In útjefte-argyf jout jo boarnekoade mei in generearre bousysteem. In git-útkear jout jo boarnekoade sûnder ien. It ferkearde kieze is de reden dat minsken in ûntbrekkende configure tsjinkomme in pear minuten yn in hantlieding.

Twa ferskillende masines ûnder deselde namme

It pakketpaad is ien opdracht, en it is de juste standert foar elkenien waans wurk ferbinen is ynstee fan ûntwikkeljen.

brew install openconnect

Wat it ynstallearret is wichtiger as de opdracht. Jo krije de binêre triem fan de klant, en jo krije ek in vpnc-script dat de klant opropt om de ynterface, de rûtes en de oplosser te programmearjen. De beide wurkje as in pear: de binêre triem einiget de TLS-sesje en jout de ûntstiene ynterface oan it skript, en it skript is it part dat wit hoe't dit bestjoeringssysteem syn netwurk feroare hawwe wol.

Dy splitsing ferklearret in hiele klasse fernuverjende rapporten. In klant dy't ferbynt, sukses rapportearret en dan ferkear oer it ferkearde paad stjoert, hat meastentiids in skriptprobleem, net in tunnelprobleem, en it opnij ynstallearjen fan de formule reparearret it allinnich om't it skript ek opnij ynstallearre wurdt. Kontrolearje de hjoeddeiske stipe fan de formule foar macOS en CPU-arsjitektuer foardat jo dêrop planne; in Mac dy't in shell perfekt útfiert, hat miskien noch gjin aktueel pakket dat dêrfoar boud is.

Wat it boarnepaad echt docht

In útjefte-argyf komt mei in generearre bousysteem, dus de bekende ./configure bestiet fan it begjin ôf. In git-útkear net, om't de generearre triemmen bouprodukten binne en gjin dingen dy't it projekt bewarret. Dat is de hiele reden dat ./autogen.sh yn 'e ynstruksjes foar útkears ferskynt en net foar útjefte-argiven.

./autogen.sh
./configure
make
make install

Elke rigel docht eat spesifyks, en witte hokker mislearre hat sparret in soad rieden. De autogen-stap rint de autotools om configure te meitsjen. De configure-stap ûndersiket de kompiler, biblioteken en headers dy't de klant nedich hat, en skriuwt dan de makefiles dy't werjaan wat it fûn. De make-stap kompilearret. De install-stap kopiearret de resultaten earne op jo paad.

It is by dy lêste rigel dat advys faak ferkeard giet. Ynstallaasje is gjin bewiis dat de bou wurke hat, en it yn in willekeurige downloadmap mei ferhege foech útfiere is in goede manier om triemmen te fersprieden dy't jo letter net mear betinke. As configure misleit op in ûntbrekkende biblioteek, is de nuttige útfier de earste flater dy't it printe, net de lêste tweintich rigels fan it loch.

De sesje en de netwurkkonfiguraasje binne apart

Dit ûnderskied beslút oft in ferbining echt ferkear draacht. It oanmeitsjen fan de TLS-sesje jout jo in ynterface oan de klantkant. It tapassen fan rûtes, adressen en DNS-oplossers is in twadde stap dy't fia it netwurkskript dien wurdt, en in bou dy't in binêre triem sûnder it skript makke hat, hat in heal klant.

Deselde skieding ferklearret wêrom't twa masines mei identike klanten har oars hâlde: it skript rieplachtet de netwurkkonfiguraasje fan it systeem, en dy konfiguraasje omfettet alles oars dat in rûte opeaske hat. As in splitst tunnel ferkear nei in ûnferwachte plak stjoert, docht de tunnel syn wurk en is de rûtebeslissing it ding om te ûndersykjen.

Dus as jo debugge, freegje hokker laach mislearre. In sesje dy't nea oanmakke wurdt is protokol, sertifikaat of kwalifikaasjes. In sesje dy't oanmakke wurdt en neat trochjaan is de ynterface en it skript. In ynstallearre klant dy't fan it iene netwurk wurket en fan it oare net, is berikberens, en gjin hoemannichte werbou feroaret dat.

Wit hokker binêre triem jo útfiere

In mei de hân ynstallearre bou en in pakket binêre triem kinne lokkich njonken inoar bestean, en hokker rint hinget fan jo paad ôf en net fan jo bedoelingen. Fyn dat út foardat jo immen in ferzjenûmer rapportearje.

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

De earste opdracht listet elke kopy dy't jo shell sjen kin, yn 'e folchoarder wêryn't it se besykje soe. De twadde fertelt jo hokker antwurde. As dat net oerienkomt mei wat jo ferwachtsje, rinne jo in bou út in âld eksperimint, en gjin konfiguraasjeferoaring sil it ferpleatse.

In klant ynstallearje is gjin gateway-goedkarring

In wurkjende binêre triem makket in útrôljen net kompatibel. Befêstigje it protokol fan 'e gateway, syn autentikaasjefloat en elke eask foar beheard apparaat mei de minsken dy't it besitte, want dat binne belieds- en applikaasjelaachfeiten dy't in bou net leverje kin.

De bouynstruksjes fan it projekt behannelje de autotools-sekwinsje en de eask fan it netwurkskript yn mear detail, en dy moatte folge wurde ear't in blogberjocht dat âlder is as jo macOS-útjefte. As it doel gewoan ferbinen is, nim dan it pakket, hâld it skript en lit de kompiler derbûten.

Relatearre artikelen