OpenConnect macOS sistemoje: paketas, leidimo archyvas ar git klonas
Homebrew įdiegia dvejetainį failą ir tinklo scenarijų; šaltinio medis neteikia nė vieno, kol jų nesukursite ir nepaleisite. Žinokite, kurį naudoja jūsų ryšys.
Trys keliai suteikia OpenConnect klientą Mac kompiuteryje, ir jie diske palieka skirtingus dalykus. Homebrew formulė įdiegia sukompiliuotą dvejetainį failą ir tinklo scenarijų, kuris nustato maršrutus ir DNS. Leidimo archyvas suteikia šaltinio kodą su sugeneruota kūrimo sistema. git kopija suteikia šaltinio kodą be jos. Neteisingo pasirinkimas yra priežastis, kodėl žmonės po kelių minučių nuo vadovo pradžios susiduria su trūkstamu configure.
Dvi skirtingos mašinos tuo pačiu vardu
Paketo kelias yra viena komanda, ir tai yra teisinga numatytoji reikšmė kiekvienam, kurio darbas yra jungtis, o ne kurti.
brew install openconnect
Tai, ką jis įdiegia, svarbiau už komandą. Gaunate kliento dvejetainį failą ir taip pat vpnc-script, kurį klientas kviečia programuoti sąsają, maršrutus ir sprendiklį. Abu dirba kaip pora: dvejetainis failas užbaigia TLS sesiją ir perduoda susidariusią sąsają scenarijui, o scenarijus yra ta dalis, kuri žino, kaip ši operacinė sistema nori pakeisti savo tinklą.
Šis atskyrimas paaiškina visą klasę painių pranešimų. Klientas, kuris prisijungia, praneša apie sėkmę ir tada siunčia srautą neteisingu keliu, paprastai turi scenarijaus, o ne tunelio problemą, o formulės perdiegimas ją ištaiso tik todėl, kad scenarijus taip pat perdiegiamas. Patikrinkite dabartinį formulės macOS ir procesoriaus architektūros palaikymą prieš planuodami pagal jį; Mac, kuris puikiai vykdo apvalkalą, gali dar neturėti dabartinio jam sukurto paketo.
Ką iš tikrųjų daro šaltinio kelias
Leidimo archyvas ateina su sugeneruota kūrimo sistema, todėl pažįstamas ./configure egzistuoja nuo pat pradžių. git kopijoje jo nėra, nes sugeneruoti failai yra kūrimo produktai, o ne dalykai, kuriuos projektas saugo. Tai yra visa priežastis, kodėl ./autogen.sh pasirodo kopijų instrukcijose, o ne leidimo archyvuose.
./autogen.sh
./configure
make
make install
Kiekviena eilutė daro ką nors konkretaus, ir žinojimas, kuri nepavyko, sutaupo daug spėlionių. autogen žingsnis paleidžia autotools, kad sukurtų configure. configure žingsnis patikrina kompiliatorių, bibliotekas ir antraštes, kurių reikia klientui, tada įrašo makefile failus, atspindinčius tai, ką rado. make žingsnis kompiliuoja. install žingsnis nukopijuoja rezultatus kažkur į jūsų kelią.
Būtent toje paskutinėje eilutėje patarimai dažnai nueina ne ten. Įdiegimas nėra įrodymas, kad kūrimas pavyko, o jo vykdymas atsitiktiniame atsisiuntimo kataloge su padidintomis teisėmis yra geras būdas išbarstyti failus, kurių vėliau neprisiminsite. Jei configure nepavyksta dėl trūkstamos bibliotekos, naudinga išvestis yra pirmoji atspausdinta klaida, o ne paskutinės dvidešimt žurnalo eilučių.
Sesija ir tinklo konfigūracija yra atskirai
Šis skirtumas nusprendžia, ar ryšys tikrai perduoda srautą. TLS sesijos užmezgimas suteikia sąsają kliento pusėje. Maršrutų, adresų ir DNS sprendiklių taikymas yra antras žingsnis, atliekamas per tinklo scenarijų, o kūrimas, kuris pagamino dvejetainį failą be scenarijaus, turi pusę kliento.
Tas pats atskyrimas paaiškina, kodėl dvi mašinos su identiškais klientais elgiasi skirtingai: scenarijus konsultuojasi su sistemos tinklo konfigūracija, o ta konfigūracija apima visa kita, kas pareikalavo maršruto. Kai padalintas tunelis siunčia srautą į netikėtą vietą, tunelis atlieka savo darbą, o tirti reikia maršrutizavimo sprendimą.
Taigi derindami klauskite, kuris sluoksnis nepavyko. Sesija, kuri niekada neužmezgama, yra protokolas, sertifikatas arba prisijungimo duomenys. Sesija, kuri užmezgama ir nieko neperduoda, yra sąsaja ir scenarijus. Įdiegtas klientas, kuris veikia iš vieno tinklo, o iš kito ne, yra pasiekiamumas, ir joks perkūrimas to nepakeis.
Žinokite, kurį dvejetainį failą vykdote
Rankiniu būdu įdiegtas kūrimas ir supakuotas dvejetainis failas gali taikiai sugyventi, o kuris veikia, priklauso nuo jūsų kelio, o ne nuo ketinimų. Išsiaiškinkite tai prieš kam nors pranešdami versijos numerį.
which -a openconnect
openconnect --version
brew list --versions openconnect
Pirmoji komanda išvardija kiekvieną kopiją, kurią mato jūsų apvalkalas, ta tvarka, kuria jis jas bandytų. Antroji pasako, kuri atsakė. Kai tai nesutampa su jūsų lūkesčiais, vykdote kūrimą iš seno eksperimento, ir joks konfigūracijos pakeitimas jo nepajudins.
Kliento įdiegimas nėra vartų patvirtinimas
Veikiantis dvejetainis failas nepadaro diegimo suderinamo. Patvirtinkite vartų protokolą, jų autentifikavimo eigą ir bet kokį valdomo įrenginio reikalavimą su žmonėmis, kuriems jie priklauso, nes tai yra politikos ir taikomosios programos sluoksnio faktai, kurių kūrimas negali pateikti.
Projekto kūrimo instrukcijos išsamiau aprašo autotools seką ir tinklo scenarijaus reikalavimą, ir jomis reikia vadovautis, o ne tinklaraščio įrašu, senesniu už jūsų macOS leidimą. Jei tikslas yra tiesiog prisijungti, imkite paketą, pasilikite scenarijų ir palikite kompiliatorių nuošalyje.