Установка
Как установить Квас Про на роутер 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 | 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, curl | sh без терминала) ведёт себя ровно так же, как ручная.
Номер устанавливаемого выпуска виден в блоке данных в начале установки — вместе с именем архива, версией 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 <путь>) и список сетевых артефактов, если что-то снять не удалось (тогда помогает перезагрузка роутера).
Что дальше
После входа откроется мастер первичной настройки: он поможет задать основные параметры, а затем — добавить защищённое соединение и настроить доступ к сайтам и фильтрацию спама и фишинга.