OpenConnect na macOS-u: paket, arhiva izdanja ili git klon
Homebrew donosi binarni program i mrežnu skriptu; stablo izvornog koda ne donosi nijedno dok ih ne generirate i pokrenete. Znajte koje vaša veza koristi.
Tri puta vode do OpenConnect klijenta na Macu i ostavljaju različite stvari na disku. Homebrew formula instalira prevedeni binarni program i mrežnu skriptu koja postavlja rute i DNS. Arhiva izdanja daje vam izvorni kod s generiranim sustavom za gradnju. git kopija daje vam izvorni kod bez njega. Odabir pogrešnog puta razlog je zašto ljudi nekoliko minuta nakon početka uputa susretnu configure koji nedostaje.
Dva različita stroja pod istim imenom
Put preko paketa jedna je naredba i to je ispravan zadani izbor za svakoga čiji je posao povezivanje, a ne razvoj.
brew install openconnect
Ono što se instalira važnije je od naredbe. Dobivate binarni program klijenta, a dobivate i vpnc-script koji klijent poziva kako bi programirao sučelje, rute i razrješivač. Njih dvoje rade kao par: binarni program završava TLS sesiju i predaje dobiveno sučelje skripti, a skripta je dio koji zna kako ovaj operacijski sustav želi promijeniti svoju mrežu.
Ta podjela objašnjava cijelu klasu zbunjujućih izvještaja. Klijent koji se poveže, prijavi uspjeh i zatim pošalje promet pogrešnim putem obično ima problem sa skriptom, a ne s tunelom, i ponovna instalacija formule to popravlja samo zato što se i skripta ponovno instalira. Provjerite trenutačnu podršku formule za macOS i arhitekturu procesora prije nego što na njoj planirate; Mac koji savršeno vrti ljusku možda još nema trenutačni paket izgrađen za njega.
Što put preko izvornog koda doista radi
Arhiva izdanja dolazi s generiranim sustavom za gradnju, pa poznati ./configure postoji od početka. git kopija ga nema jer su generirane datoteke proizvodi gradnje, a ne stvari koje projekt čuva. Upravo je to razlog zašto se ./autogen.sh pojavljuje u uputama za kopije, a ne za arhive izdanja.
./autogen.sh
./configure
make
make install
Svaki redak čini nešto određeno, a znanje o tome koji je pao štedi mnogo nagađanja. Korak autogen pokreće autotools kako bi stvorio configure. Korak configure ispituje prevoditelj, biblioteke i zaglavlja koje klijent treba, zatim piše makefile datoteke koje odražavaju što je pronašao. Korak make prevodi. Korak install kopira rezultate negdje na vaš put.
Upravo na tom posljednjem retku savjeti obično krenu po zlu. Instalacija nije dokaz da je gradnja uspjela, a pokretanje u proizvoljnoj mapi za preuzimanje s povišenim ovlastima dobar je način da razbacate datoteke kojih se poslije nećete sjećati. Ako configure padne zbog biblioteke koja nedostaje, koristan izlaz je prva ispisana pogreška, a ne posljednjih dvadeset redaka dnevnika.
Sesija i mrežna konfiguracija su odvojeni
Ta razlika odlučuje nosi li veza doista promet. Uspostava TLS sesije daje vam sučelje na strani klijenta. Primjena ruta, adresa i DNS razrješivača drugi je korak koji se izvodi kroz mrežnu skriptu, a gradnja koja je proizvela binarni program bez skripte ima pola klijenta.
Ista podjela objašnjava zašto se dva stroja s identičnim klijentima ponašaju različito: skripta provjerava mrežnu konfiguraciju sustava, a ta konfiguracija uključuje sve drugo što je zatražilo rutu. Kada razdvojeni tunel pošalje promet na neočekivano mjesto, tunel radi svoj posao, a odluku o usmjeravanju treba ispitati.
Zato pri otklanjanju pogrešaka pitajte koji je sloj pao. Sesija koja se nikad ne uspostavi jest protokol, certifikat ili vjerodajnice. Sesija koja se uspostavi i ništa ne prosljeđuje jest sučelje i skripta. Instalirani klijent koji radi s jedne mreže, a s druge ne, jest dostupnost i to ne mijenja nikakva količina ponovne gradnje.
Znajte koji binarni program izvršavate
Ručno instalirana gradnja i pakirani binarni program mogu mirno supostojati, a onaj koji se izvršava ovisi o vašem putu, a ne o vašim namjerama. Saznajte to prije nego ikome prijavite broj verzije.
which -a openconnect
openconnect --version
brew list --versions openconnect
Prva naredba ispisuje svaku kopiju koju vaša ljuska vidi, redom kojim bi ih pokušala. Druga kaže koja je odgovorila. Kada se to ne slaže s vašim očekivanjima, izvršavate gradnju iz starog pokusa i nikakva promjena konfiguracije to neće pomaknuti.
Instalacija klijenta nije odobrenje pristupnika
Binarni program koji radi ne čini implementaciju kompatibilnom. Potvrdite protokol pristupnika, tijek autentifikacije i svaki uvjet upravljanog uređaja s ljudima koji ga posjeduju, jer su to činjenice o politici i aplikacijskom sloju koje gradnja ne može pružiti.
Projektne upute za gradnju detaljnije pokrivaju slijed autotools i uvjet mrežne skripte i njih treba slijediti, a ne blog post stariji od vašeg izdanja macOS-a. Ako je cilj samo povezati se, uzmite paket, zadržite skriptu i ostavite prevoditelj po strani.