Тры шляхі даюць вам кліент OpenConnect на Mac, і яны пакідаюць на дыску розныя рэчы. Формула Homebrew усталёўвае скампіляваны бінарнік разам з сеткавым скрыптам, які наладжвае маршруты і DNS. Архіў выпуску дае вам зыходны код са згенераванай сістэмай зборкі. git-клон дае вам зыходны код без яе. Выбар няправільнага шляху — вось чаму людзі сутыкаюцца з адсутным configure праз некалькі хвілін пасля пачатку інструкцыі.

Дзве розныя машыны пад адным імем

Шлях праз пакет — гэта адна каманда, і гэта правільны выбар па змаўчанні для ўсіх, чыя праца — падключацца, а не распрацоўваць.

brew install openconnect

Тое, што ён усталёўвае, важней за самую каманду. Вы атрымліваеце бінарнік кліента, а таксама vpnc-script, які кліент выклікае, каб запраграмаваць інтэрфейс, маршруты і рэзалвер. Яны працуюць у пары: бінарнік завяршае сеанс TLS і перадае атрыманы інтэрфейс скрыпту, а скрыпт — гэта частка, якая ведае, як гэтая аперацыйная сістэма хоча змяніць сваю сетку.

Гэтае раздзяленне тлумачыць цэлы клас заблытаных паведамленняў. Кліент, які падключаецца, паведамляе пра поспех і потым накіроўвае трафік не туды, звычайна мае праблему са скрыптам, а не з тунэлем, і пераўсталёўка формулы выпраўляе гэта толькі таму, што скрыпт таксама пераўсталёўваецца. Праверце бягучую падтрымку формулы для macOS і архітэктуры працэсара, перш чым разлічваць на яе; Mac, які выдатна выконвае абалонку, можа ўсё яшчэ не мець сучаснага пакета, сабранага для яго.

Што насамрэч робіць шлях праз зыходнікі

Архіў выпуску прыходзіць са згенераванай сістэмай зборкі, таму знаёмы ./configure ёсць адразу. У git-клона яго няма, бо згенераваныя файлы — гэта прадукты зборкі, а не тое, што праект захоўвае. Менавіта таму ./autogen.sh з'яўляецца ў інструкцыях для клонаў, а не для архіваў выпуску.

./autogen.sh
./configure
make
make install

Кожны радок робіць нешта канкрэтнае, і веданне таго, які з іх збавіў, зберагае шмат здагадак. Крок autogen запускае autotools, каб стварыць configure. Крок configure правярае кампілятар, бібліятэкі і загалоўкі, патрэбныя кліенту, потым запісвае makefile-ы, якія адлюстроўваюць знойдзенае. Крок make кампілюе. Крок install капіюе вынікі ў нейкае месца на вашым шляху.

Менавіта на гэтым апошнім радку парады часта ідуць не туды. Усталёўка не з'яўляецца доказам таго, што зборка ўдалася, а запуск яе ў адвольнай папцы загрузкі з павышанымі прывілеямі — добры спосаб раскідаць файлы, якія вы потым не ўспомніце. Калі configure збавіў з-за адсутнай бібліятэкі, карысны вывад — гэта першая надрукаваная памылка, а не апошнія дваццаць радкоў журнала.

Сеанс і сеткавая канфігурацыя — рэчы асобныя

Гэтае адрозненне вырашае, ці сапраўды злучэнне перадае трафік. Усталяванне сеансу TLS дае вам інтэрфейс на баку кліента. Прымяненне маршрутаў, адрасоў і DNS-рэзалвераў — другі крок, які выконваецца праз сеткавы скрыпт, і зборка, якая стварыла бінарнік без скрыпта, мае палову кліента.

Тое ж раздзяленне тлумачыць, чаму дзве машыны з аднолькавымі кліентамі паводзяць сябе па-рознаму: скрыпт звяртаецца да сеткавай канфігурацыі сістэмы, а гэтая канфігурацыя ўключае ўсё астатняе, што заявіла маршрут. Калі раздзелены тунэль накіроўвае трафік некуды нечакана, тунэль робіць сваю справу, і даследаваць трэба рашэнне аб маршруце.

Таму падчас адладкі пытайцеся, які ўзровень збавіў. Сеанс, які не ўсталёўваецца, — гэта пратакол, сертыфікат або ўліковыя дадзеныя. Сеанс, які ўсталёўваецца і нічога не перадае, — гэта інтэрфейс і скрыпт. Усталяваны кліент, які працуе з адной сеткі і не працуе з іншай, — гэта дасягальнасць, і ніякая колькасць перазборак гэтага не зменіць.

Ведайце, які бінарнік вы запускаеце

Усталяваная ўручную зборка і спакаваны бінарнік могуць спакойна суіснаваць, і тое, які з іх запусціцца, залежыць ад вашага шляху, а не ад вашых намераў. Высветліце гэта, перш чым паведамляць каму-небудзь нумар версіі.

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

Першая каманда пералічвае ўсе копіі, якія бачыць ваша абалонка, у тым парадку, у якім яна б іх спрабавала. Другая ўказвае, якая з іх адказала. Калі гэта не супадае з вашымі чаканнямі, вы запускаеце зборку са старога эксперыменту, і ніякае змяненне канфігурацыі яе не зрушыць.

Усталёўка кліента — не ўхваленне шлюза

Працуючы бінарнік не робіць разгортванне сумяшчальным. Пацвердзіце пратакол шлюза, яго паток аўтэнтыфікацыі і любое патрабаванне да кіраванай прылады ў людзей, якім ён належыць, бо гэта факты палітыкі і прыкладнога ўзроўню, якія зборка даць не можа.

Праектныя інструкцыі па зборцы падрабязней апісваюць паслядоўнасць autotools і патрабаванне да сеткавага скрыпта, і менавіта іх трэба трымацца, а не допіс у блогу, які старэйшы за ваш выпуск macOS. Калі мэта — проста падключыцца, вазьміце пакет, пакіньце скрыпт і не чапайце кампілятар.

Падобныя артыкулы