Усталяванне
Як усталяваць Квас Про на роўтар Keenetic/Netcraze (Entware) або OpenWrt адной камандай — скрыпт зробіць усё сам.
Квас Про ставіцца на сам роўтар адной камандай. Скрыпт усталявання сам вызначыць платформу і архітэктуру, спампуе патрэбны пакет, праверыць яго цэласнасць, усталюе, запусціць службу і надрукуе токен уваходу. Усё астатняе наладжваецца потым праз вэб-інтэрфейс — панэль кіравання, якая адкрываецца ў звычайным браўзеры. Тэрмінал больш не спатрэбіцца.
Што ўсталёўшчык паведамляе на сайт
Па завяршэнні ўсталявання скрыпт адпраўляе на сайт праекта адзін кароткі радок: атрымалася ці не, на якім этапе спыніўся і з якой прычыны, версію выпуску і платформу роўтара. Ні ідэнтыфікатара прылады, ні яго адраса, ні змесціва наладаў у справаздачы няма. Гэта патрэбна, каб паломку ўсталявання было відаць адразу, а не высвятляць яе з перапіскі. Адключыць справаздачу: --no-report або KVASPRO_NO_REPORT=1. Падрабязней — у палітыцы прыватнасці.
sha256sum, tar, gzip, sing-box — скрыпт праверыць і даўсталюе сам.Усталяванне
Усё робіцца адной камандай усталявання. Калі curl (праграма для спампоўкі па сеткі) на роўтары яшчэ не ўсталяваны — дадайце яго: opkg install curl.
curl -fsSL https://kvaspro.su/install.sh -o install.sh && sh install.sh
Скрыпт сам даўсталюе астатнія залежнасці, спампуе пакет пад ваш роўтар, праверыць яго цэласнасць (кантрольную суму і крыптаподпіс — так ён упэўніваецца, што спампаваны менавіта сапраўдны пакет, а не падробка), усталюе і запусціць. Звяраць што-небудзь уручную не трэба — гэта робіць сам скрыпт.
Падчас працы скрыпт паказвае нумар кроку ([03/12]), падчас доўгіх аперацый — бягунок і індыкатар загрузкі, а ў канцы друкуе кароткую зводку: версію, шляхі, адрас панэлі, токен і што рабіць далей. Падабаецца парадак дзеянняў можна спачатку прымерыць: sh install.sh --dry-run спампуе і праверыць выпуск, але нічога не зменіць на роўтары.
Калі вывад скрыпта накіраваны ў файл або ў журнал (напрыклад, пры аўтаматычным усталяванні), токен уваходу не друкуецца — інакш ён назаўсёды застаўся б у журнале. Паказаць яго можна камандай kvaspro --key на роўтары; прымусова надрукаваць нават пры перанакіраванні — сцягам --print-token.
Што робіць скрыпт
- Правярае і даўсталёўвае залежнасці — свае (
sha256sum,tar,gzip) і патрэбныя Квас Про (sing-box) — і толькі потым працягвае. - Вызначае платформу (Entware або OpenWrt) і мадэль працэсара (
aarch64,armv7абоmipsel). Для MIPS усталёўшчык сам вызначае парадак байтаў: падыходзіць MIPS32 з прамым парадкам (mipsel), аmips(адваротны парадак) ён сумленна адхіляе з тлумачэннем. - Ставіць апошні выпуск — усталёўшчык не пытае версію і не паказвае меню: так на роўтар не трапіць састарэлая зборка.
- Спампоўвае выпуск: пакет пад вашу прыладу, апісанне выпуску (маніфест) і файл з подпісам.
- Правярае цэласнасць: кантрольную суму архіва і выканальнага файла, а таксама крыптаграфічны подпіс маніфеста (тым жа ключом, што і абнаўленні «па паветры» — прама праз вэб-інтэрфейс). Пры абнаўленні подпіс правярае ўжо працуючая на роўтары праграма — да прыпынку службы і да любых змен.
- Правярае вольнае месца, а пры абнаўленні робіць рэзервовую копію.
- Раскладвае файлы, запускае службу і чакае яе гатоўнасці. Калі новая версія раптам не адказвае — аўтаматычна вяртае папярэднюю і паведамляе пра гэта.
- Друкуе токен уваходу (гэта ваш ключ-пароль да панэлі), адрас вэб-інтэрфейсу і каманды «што далей» (у тым ліку як выдаліць праграму).
Калі пакеты не спампоўваюцца, а інтэрнэт пры гэтым працуе, усталёўшчык умее ўзяць іх з люстра сховішча Entware: ён замяняе адрас сховішча ў /opt/etc/opkg.conf на mirrors.nju.edu.cn (па абароненым https), абнаўляе спіс пакетаў і паўтарае загрузку — ад вас нічога не патрабуецца. Замена робіцца толькі тады, калі ў файле уключаная праверка подпісу пакетаў (option check_signature 1): з ёй opkg звярае пакеты з ключом раздачы, і чужы адрас не можа падсунуць свае. Сёння ў раздачы Entware подпісаў няма (Packages.sig на асноўным адрасе адказвае «файл не знойдзены»), таму замена адраса на люстра не робіцца — ні ўсталёўшчыкам, ні прадуктам: абодва прама кажуць прычыну і раяць паставіць пакеты ўручную або вярнуць доступ да асноўнага адраса сховішча. Радок option check_signature 1 уключаць не трэба — без файла подпісу opkg перастане абнаўляць спісы пакетаў. Запасное люстра ўключыцца само, калі раздача пачне публікаваць подпісы пакетаў: тады замена пройдзе без вашага ўдзелу, і ранейшы файл будзе захаваны побач пад імем /opt/etc/opkg.conf.kvaspro-orig (тым жа імем карыстаецца і сам прадукт). Вяртае ранейшы адрас прадукт: пакуль ранейшае сховішча не адказвае, ён бярэ пакеты з запаснога люстра, а як толькі яно зноў адказвае — сам вяртае зыходны адрас, і ў «Дыягностыцы» відаць, што прадукт часова працуе праз люстра. Вярнуць адрас уручную трэба толькі ў выпадку, калі прадукт з прылады ўжо выдалены (і адрас да гэтага моманту быў заменены) — гатовая каманда надрукаваная ў выніку ўсталявання. Падрабязней — «Рашэнне праблем» → «Калі сетка працуе з абмежаваннямі».
Перарыванне (Ctrl-C або закрыццё сесіі) спыняе ўсталяванне — скрыпт не працягвае працу ў фоне, а журнал з дыягностыкай застаецца на дыску; шлях да яго друкуецца пры памылцы.
Уваход у вэб-інтэрфейс
Калі ўсталяванне завершыцца, у канцы вываду скрыпт надрукуе токен уваходу і адрасы панэлі:
Адкрыць панэль кіравання ў браўзеры можна так:
• http://kvaspro.lan — або kvas.lan, kvp.lan, kvaspro.home, kvas.home
• https://kvaspro.lan — абаронены ўваход па тым жа імені
• http://192.168.1.254 — дадатковы адрас роўтара, порт 80
• https://192.168.1.254 — абаронены ўваход па тым жа адрасе
Адкрыйце любы з гэтых адрасоў у браўзеры і ўвайдзіце па токене. Панэль адказвае без указання порта — па імені або па дадатковым адрасе роўтара: прамы доступ да ўнутранага порта праграмы закрыты, так панэль кіравання не бачная з лакальнай сеткі напрамую.
192.168.1.254 тут толькі прыклад, а дакладны адрас усталёўшчык друкуе ў канцы ўсталявання. Нязменнае апошняе лік: Квас Про займае дадатковы адрас роўтара ў лакальнай сетцы — як правіла, з апошнім актэтам 254 — і адкрывае панэль менавіта на ім, на звычайным порце 80. Па імені ўваход адразу абаронены: адкрыўшы http://kvaspro.lan, вы трапіце на https://kvaspro.lan. Адрас самога роўтара (звычайна …1) панэль не абслугоўвае: на ім працуе ўбудаваны вэб-інтэрфейс роўтара (LuCI, Keenetic і падобныя) на сваім порце — гэта іншая прылада кіравання, а не Квас Про.


На здымку ў левай панэлі пад нумарам версіі відаць адрас самога роўтара — прылады, на якой працуе Квас Про. Гэта не адрас уваходу ў панэль: панэль адкрываецца па дадатковым адрасе з апошнім лікам 254 або па кароткім імені.
auth_token) і праз сайт не аднаўляецца. Пасля кожнага паспяховага ўваходу ён перавыдаецца: ранейшы токен перастае дзейнічаць, а новы можна паглядзець на роўтары камандай kvaspro --key. Адкрытыя вокны панэлі пры гэтым застаюцца ў працы; на экране ўваходу ёсць падказка, дзе шукаць актуальны токен.Як зразумець, што ўсё атрымалася: у браўзеры адкрылася панэль Квас Про з полем для токена, а пасля ўводу токена — прывітанне майстра першай наладкі. Значыць, праграма ўсталяваная і працуе.
Абнаўленне
Каб абнавіць усталяваную версію, запусціце той жа скрыпт яшчэ раз: ён зробіць рэзервовую копію, паставіць новую версію і, калі яна не запусціцца, верне ранейшую. Абнаўляцца можна і прама з вэб-інтэрфейсу — «па паветры», адной кнопкай; падрабязней у раздзеле Абнаўленні.
Дадатковыя параметры скрыпта ўсталявання
Звычайнае ўсталяванне нічога ўказваць не патрабуе: скрыпт сам вызначае платформу і працэсар, спампоўвае апошні выпуск, правярае подпіс і ставіць праграму. Параметры патрэбныя ў трох выпадках: аўтаматыка памылілася, усталяванне вядзе не чалавек (скрыпт, Ansible, cron) або трэба паставіць не апошні выпуск.
Па змаўчанні ставіцца апошні выпуск. Канкрэтны выпуск задаецца ключом --version <нумар>; калі такога выпуску на раздачы няма, усталёўшчык паведамляе пра гэта і нічога на роўтары не змяняе. Нумар выпуску, які ўсталёўваецца, відаць у блоку даных у пачатку ўсталявання — разам з імем архіва, версіяй sing-box і каталогамі усталявання. Пытанняў усталёўшчык не задае: усталяванне пачынаецца адразу пасля праверак і ні на чым не спыняецца.
| Параметр | Калі спатрэбіцца | Што робіць |
|---|---|---|
--clean | Ранейшае ўсталяванне перашкаджае, а даныя не патрэбныя | Выдаляе ранейшае ўсталяванне цалкам (служба, сетка, файлы, канфігурацыя, база, токен, geoip) і ставіць праграму «начыста» |
--version <нумар> | Патрэбны канкрэтны выпуск, а не апошні | Ставіць указаны выпуск, напрыклад --version 0.22.45; словы latest і вядучая v дапускаюцца |
--platform | Платформа вызначылася няправільна (бывае рэдка) | Ставіць платформу ўручную — entware або openwrt — замест аўтавызначэння |
--arch <варыянт> | Працэсар вызначыўся няправільна (бывае рэдка) | Ставіць зборку пад указаны працэсар — aarch64-unknown-linux-musl, armv7-unknown-linux-musleabihf або mipsel-unknown-linux-musl |
--sha256 <хэш> | Выпуск трэба замацаваць жорстка | Працягвае толькі калі кантрольная сума архіва супала з указанай |
--base-url <адрас> | Роўтар не можа адкрыць сайт праекта | Бярэ файлы выпуску з іншага сервера-люстра |
--staging <каталог> | У каталозе даных мала месца | Спампоўвае і распакоўвае архіў ва ўказаны каталог на дыску |
--dry-run | Хочацца спачатку «прымерыць» | Спампоўвае і правярае выпуск, друкуе план і нічога не змяняе |
--quiet, -q | Вывад ідзе ў журнал | Друкуе толькі вынік і памылкі |
--verbose, -v | Трэба бачыць, што менавіта адбываецца | Паказвае каманды, якія выконваюцца |
--log-file <шлях> | Журнал трэба захаваць | Піша журнал дыягностыкі па ўказаным шляху |
--no-color | Тэрмінал не разумее колер | Адключае колер (тое ж робіць NO_COLOR=1) |
--no-progress | Журнал, запіс экрана, павольны тэрмінал | Прыбірае бягунок і індыкатар загрузкі |
--print-token | Токен патрэбны ў скрыпце | Друкуе токен уваходу нават пры перанакіраванні вываду |
--no-report | Усталяванне не павінна паведамляць пра сябе на сайт | Выключае справаздачу пра вынік усталявання (тое ж робіць KVASPRO_NO_REPORT=1) |
Версія: заўсёды апошняя
Усталёўшчык не пытае версію і не паказвае меню выпускаў — ён ставіць апошні выпуск з сервера раздачы. Гэта зроблена наўмысна: так на роўтар не трапіць састарэлая зборка, а ўсталяванне аўтаматыкі (скрыпт, Ansible, cron, каманда без тэрмінала) паводзіць сябе гэтак жа, як ручное.
Нумар выпуску, які ўсталёўваецца, відаць у блоку даных у пачатку ўсталявання — разам з імем архіва, версіяй sing-box і каталогамі ўсталявання.
--sha256: жорсткае замацаванне выпуску
--sha256 <хэш>— чаканая кантрольная сума архіва. Калі яна не супадзе з той, што запісана ў апісанні выпуску (маніфесце), усталяванне спыніцца. Так выпуск замацоўваюць жорстка — напрыклад, пры масавым усталяванні адной і той жа зборкі на парк прылад.
Колькі трэба месца і што робіць усталёўшчык, калі яго мала
Усталёўшчык правярае вольнае месца да спампоўкі архіва і адрознівае дзве сітуацыі:
- Не хапае месца на само ўсталяванне (архіў выпуску плюс распакаваны набор) — усталяванне спыняецца з зразумелым паведамленнем: колькі трэба, колькі вольна, колькі не хапае, з чаго складаецца патрабаванне і што рабіць (вызваліць месца або ўказаць працоўны каталог на іншым раздзеле ключом
--staging). - Хапае на ўсталяванне, але не хапае доўгатэрміновага запасу пад базу і дакачку даных — усталёўшчык папярэджвае і працягвае. Доўгатэрміновы запас патрэбны праграме ў працы, а не ў момант усталявання: база ствараецца пустой і расце па меры збору статыстыкі. Вызваліць месца варта пазней.
--staging <каталог>: калі мала месца
Спампаваны архіў распакоўваецца ў працоўны каталог побач з данымі праграмы, а па заканчэнні ўсталявання гэты каталог выдаляецца. Калі ў каталозе даных мала месца, укажыце іншы каталог на дыску, напрыклад --staging /opt/kvaspro-install (на OpenWrt падыйдзе іншы раздзел — скажам, падрыхтаваны USB-носьбіт).
Раздзел у аператыўнай памяці (tmpfs) не падыйдзе: усталёўшчык адмовіцца, каб буйны архіў не заняў памяць роўтара. Каталог нельга ўказваць як каталог даных, каталог праграм або корань, і ён не павінен быць сімвалічнай спасылкай.
Усталяванне без пытанняў (скрыпт, Ansible, cron)
Усталёўшчык не задае пытанняў наогул: пацверджанне («Усталяваць Квас Про?») прыбранае, усталяванне пачынаецца адразу пасля праверак і ні на чым не спыняецца. Ключоў «без пытанняў» няма: --yes (ён жа -y) і зменная асяроддзя KVASPRO_ASSUME_YES прыбраныя з усталёўшчыка — пытанняў, якія яны адмянялі, у ім не засталося. Несумяшчальны sing-box усталёўшчык таксама пераўсталёўвае сам.
Ціхі вывад, журнал і афармленне
--quiet(-q) — толькі вынік і памылкі: зручна, калі вывад чытае машына.--verbose(-v) — друкуе каманды, якія выконваюцца: зручна пры разборы праблем.--log-file <шлях>— журнал дыягностыкі па сваім шляху. Па змаўчанні журнал пішацца ў часовы каталог, а яго шлях друкуецца разам з паведамленнем пра памылку.--no-progress— без бягунка і індыкатара загрузкі.--no-colorі зменнаяNO_COLOR=1— без колеру;KVASPRO_ASCII=1— ASCII-знакі замест юнікодных (для старых тэрміналаў і павольных кансолей).--print-token— друкаваць токен уваходу нават тады, калі вывад перанакіраваны ў файл. Без гэтага параметра токен у журнал не трапляе — гэта абарона ад уцечкі. Паглядзець токен пазней можна на роўтары камандайkvaspro --key.
Выдаленне праграмы
Выдаліць Квас Про можна двума спосабамі — абодва запускаюць той жа скрыпт выдалення.
Ключом прадукту (рэкамендуецца):
kvaspro --uninstall # выдаліць з пацверджаннем, даныя сцерці
kvaspro --uninstall --keep-data # зняць праграму, даныя пакінуць
kvaspro --uninstall --remove-deps # разам з sing-box, пастаўленым Квас Про
kvaspro --uninstall --dry-run # толькі праверка і план, нічога не змяняецца
Ключ запускае тую копію выдаляльніка, якая святлей: прадукт носіць скрыпт унутры сябе, а файл у каталозе даных (scripts/uninstall.sh) бярэцца, толькі калі ён не старэйшы. Так састарэлая копія на роўтары не можа быць запушчаная па памылцы.
Скрыптам напрамую: sh /opt/etc/kvaspro/scripts/uninstall.sh (на OpenWrt — /etc/kvaspro/scripts/uninstall.sh) з тымі ж ключамі. Гэты файл з’яўляецца пры ўсталяванні пакетам; калі яго няма або ён старэйшы, запускайце выдаленне ключом вышэй.
Выдаленне абавязкова пацвярджаецца: пытанне «Пацвердзіце выдаленне» паказвае адказ каля правага краю радка, адказ выбіраецца стрэлкамі (або клавішамі y/д і n/н), Enter пацвярджае выбар, Esc адмяняе. Ключоў «без пытанняў» няма — выдаленне запускаюць з тэрмінала (па SSH), дзе відаць пытанне.
Перад выдаленнем файлаў праграма аднаўляе сетку: здымаюцца ўсе кіраваныя правілы, TPROXY, маршруты і правіла доступу да панэлі, вяртаюцца ранейшыя налады ядра. Пасля выдалення ход працы застаецца на экране да націску любой клавішы, а затым друкуецца вынік — у ім, сярод іншага, шлях да журнала выдалення (cat <шлях>) і спіс сеткавых артэфактаў, калі штосьці зняць не ўдалося (тады дапамагае перазагрузка роўтара).
Што далей
Пасля ўваходу адкрыецца майстар першай наладкі: ён дапаможа задаць асноўныя параметры, а затым — дадаць абароненае злучэнне і наладзіць доступ да сайтаў і фільтрацыю спаму і фішынгу.