OpenConnect на macOS: пакет, архіў выпуску або git-клон
Homebrew ставіць бінарнік разам з сеткавым скрыптам; дрэва зыходнікаў не дае ніводнага, пакуль вы іх не створыце і не запусціце. Ведайце, якое з іх выкарыстоўвае ваша злучэнне.
Тры шляхі даюць вам кліент 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. Калі мэта — проста падключыцца, вазьміце пакет, пакіньце скрыпт і не чапайце кампілятар.