Releases: R17a/Susanin.Keenetic
Release list
Susanin.Keenetic v0.3.10
Susanin.Keenetic v0.3.10
Установка (первый раз)
opkg update && opkg install ca-certificates ipset iptables conntrack
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/main/install.sh | shУстановщик скачивает готовый архив под вашу архитектуру, определяет LAN/VPN и
(при наличии) OpenConnect, запрашивает подтверждение и запускает демон.
Существующие susanin.conf, vpn_always.txt, vpn_never.txt и кэш сохраняются.
Обновление
sh /opt/susanin/tools/susanin.sh update v0.3.10update печатает installed → target, делает бэкап susanin.conf и
susanin.state в /opt/susanin/var/backup/, заменяет бинарь и скрипты,
не трогая etc/ и var/, затем перезапускает демон.
Версию после обновления видно первой строкой в susanin-agent status.
Удаление
sh /opt/susanin/tools/susanin.sh uninstall
sh /opt/susanin/tools/susanin.sh uninstall --purgeЧто нового
- Меньше «дёрганья» VPN-списка (
ok_evict_misses). Раньше адрес мог
вылететь из списка «идёт через VPN» после одного плохого наблюдения и тут же
вернуться — список «мельтешил». Теперь адрес убирается только после нескольких
сбоев подряд (по умолчанию 3). В логе будет одна сводка раз в ~5 минут, а не
строка на каждое событие. Хотите как раньше — поставьтеok_evict_misses=1. - Быстрее заворачиваем «заглохший» HTTPS. Частая картина: сервер ответил, но
данные почти не идут — так провайдер замедляет соединение. Теперь такой адрес
сразу проверяется через VPN, не дожидаясь окна наблюдения. Проверки идут чаще:
soft_intervalпо умолчанию снижен до 1 секунды. - Ограничитель лишних переводов в VPN (
promo_per_min). Чтобы быстрый
детект не завернул в VPN всё подряд, за минуту делается не больше 30 новых
проб (настраивается;0— без ограничения). - Мессенджеры не «выпадают» из VPN. Telegram/WhatsApp держат соединение
долго; раньше один «тихий» срез мог убрать адрес из списка VPN. Теперь — нет. - Диагностика одной командой.
sh /opt/susanin/tools/diagnose.shсам
проверит, всё ли на месте (пакеты, настройки, правила, списки), и подскажет,
что поправить. - Сменили или удалили VPN — перезапуск не нужен.
susanin.sh reload
перечитывает настройки,susanin.sh rescanзаново находит LAN и VPN,
обновляет конфиг и применяет изменения. Если VPN-интерфейс пропал, программа
сама переключится на живой; если живых нет — пустит трафик напрямую и напишет
об этом в лог. - Установщик сам предложит доустановить нужное. Если не хватает
ipset,
iptables,conntrackили сертификатов, установщик спросит, поставить ли их
черезopkg(флаг--deps— без вопроса). - Меньше строк в логе про списки. Домены без A-записи (частая история у CDN)
больше не печатаются по строке каждый — будет одна сводка, а повторные неудачи
проверяются реже (до 1 часа). Если у домена изvpn_alwaysнет A-записи на
самом домене, программа сама проверит поддомены — так адреса CDN чаще попадают
в VPN. - DNS для разбора списков. Если системный DNS —
127.0.0.1(NDM) или пуст,
берётся адрес LAN-моста: в ряде сборок так надёжнее. - Правки
vpn_alwaysсрабатывают сразу. Когда адрес только что переведён в
VPN, старые прямые соединения к нему разрываются — клиент переподключается уже
через туннель (дляvpn_neverтак было и раньше). - Адрес из
vpn_neverне «прыгает» в VPN. Если адрес был в списке «всегда
напрямую» и оттуда убран, какое-то время он не будет выучен в VPN. - Документация. Добавлены
USER_GUIDE.md(руководство) и
TROUBLESHOOTING.md(что делать, если не работает).
Диагностика
Если что-то работает не так — сначала запустите диагностику: проверит окружение,
настройки и списки, выдаст рекомендации:
sh /opt/susanin/tools/diagnose.shДля отправки полного отчёта (логи, состояние) — соберите и приложите вывод:
sh /opt/susanin/tools/report.sh
# или без установки:
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/v0.3.10/tools/report.sh | shОтчёт сохраняется в /opt/susanin/var/report.txt.
Сборки
- архивы:
susanin-keenetic-deploy-mipsel.tar.gz,…-mips.tar.gz,
…-aarch64.tar.gz,…-armv7.tar.gz,…-x86_64.tar.gzиSHA256SUMS; - контейнер:
ghcr.io/r17a/susanin.keenetic:v0.3.10(+latest).
Проверено: mipsel — Keenetic Viva, KeeneticOS 5.1.4–5.1.5, Entware
(+ клиент OpenConnect). Остальные архитектуры собраны и приложены готовыми
архивами, но на живом железе не тестировались — сообщайте об ошибках в Issues.
OpenWRT openwrt-v0.3.10
OpenWRT-сборка Susanin.Keenetic openwrt-v0.3.10
Экспериментальная сборка для роутеров Keenetic / Netcraze, перепрошитых на
OpenWRT. На живом железе не тестировалась — предварительный выпуск для проверки
сообществом. Для штатного KeeneticOS/Entware используйте релиз канала v*.
Установка
Онлайн (архитектура и версия определяются автоматически):
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/openwrt-v0.3.10/install-openwrt.sh | sh -s -- --yes--deps дополнительно поставит нужные пакеты через opkg (ipset,
conntrack-tools, iptables-legacy, ip-full, ca-bundle и kmods
kmod-ipset kmod-ipt-conntrack kmod-ipt-connmark kmod-ipt-tcp-mss); без него
установите их вручную.
Офлайн: возьмите архив под свою архитектуру (см. ниже), распакуйте и выполните
sh install-openwrt.sh.
Сервис: /etc/init.d/susanin enable && /etc/init.d/susanin start;
проверка: /usr/bin/susanin-agent status; лог: /var/lib/susanin/susanin.log.
Архитектуры
| Архив | SoC | Устройства |
|---|---|---|
susanin-openwrt-mipsel_24kc.tar.gz |
MT7620 / MT7621 / MT7628 | большинство Keenetic/Netcraze (Start, 4G, Omni, Extra, Viva, Giga, Ultra) |
susanin-openwrt-aarch64_cortex-a53.tar.gz |
MT7622 / MT7981 / MT7986 | новые модели (ARM/filogic) |
Сообщить о проблемах
Диагностика (запустите в момент проблемы, отчёт сохраняется в /tmp/susanin-report.txt):
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/openwrt-v0.3.10/tools/owrt-report.sh | shПриложите вывод последней команды ([susanin] report saved: …) целиком.
- Issues: https://github.com/R17a/Susanin.Keenetic/issues
- Форум: https://forum.keenetic.ru/topic/30791-susaninkeenetic-%D0%B0%D0%B4%D0%B0%D0%BF%D1%82%D0%B8%D0%B2%D0%BD%D0%B0%D1%8F-vpn-%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F/
- Telegram: https://t.me/Susanin_Keenetic
Проверено: только сборка (компиляция). Поведение на устройстве не проверялось.
Susanin.Keenetic v0.3.9
Susanin.Keenetic v0.3.9
Установка (первый раз)
opkg update && opkg install ca-certificates ipset iptables conntrack
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/main/install.sh | shУстановщик скачивает готовый архив под вашу архитектуру, определяет LAN/VPN и
(при наличии) OpenConnect, запрашивает подтверждение и запускает демон.
Существующие susanin.conf, vpn_always.txt, vpn_never.txt и кэш сохраняются.
Обновление
sh /opt/susanin/tools/susanin.sh update
sh /opt/susanin/tools/susanin.sh update v0.3.9update печатает installed → target, делает бэкап susanin.conf и
susanin.state в /opt/susanin/var/backup/, заменяет бинарь и скрипты,
не трогая etc/ и var/, затем перезапускает демон.
Версию после обновления видно первой строкой в susanin-agent status.
Удаление
sh /opt/susanin/tools/susanin.sh uninstall
sh /opt/susanin/tools/susanin.sh uninstall --purgeЧто нового
- Версия сразу в
status.susanin-agent statusпервой строкой печатает
версию — отдельно запускатьversionбольше не нужно. - Сборщик отчёта для обращений.
sh /opt/susanin/tools/report.shсобирает
диагностику и сохраняет файл/opt/susanin/var/report.txt— его удобно
приложить в Issues, на форум или в Telegram. - Понятные ошибки запуска. Если программе не удалось создать свои правила
фильтрации, в лог теперь пишется причина (например, «не найден ipset» или
«не найден интерфейс nwg0»), а не общее «provisioning failed». - Проверка при старте. Программа проверяет, что установлены
iptables,
ipset,conntrack,ipи что VPN-интерфейс существует; если чего-то нет —
пишет подсказку, что доустановить. Это упрощает первый запуск. - Меньше лишних повторов. Если правила не создались, попытки повторяются раз
в минуту (раньше — каждые 15 секунд и с непонятным сообщением про «rebuild»). - Несколько VPN-подключений (фейловер). В конфиге можно перечислить несколько
VPN-интерфейсов через запятую (например,egress_interface=nwg0,nwg1). Если
активный VPN отключился, трафик автоматически пойдёт через следующий живой;
если живых не осталось — напрямую. - Меньше записей на память роутера (
disk_mode). Если программа установлена
во внутреннюю память (NAND) — в том числе когда Entware/OPKG стоит на встроенном
разделе — установщик включает режимsoft: лог-файл не ведётся, бэкапы/архивы
не создаются, а список выученных адресов сохраняется редко — раз в 12 часов
(soft_state_interval). В обычном режиме (normal, обычно при установке на
USB-флешку) лог ведётся и состояние сохраняется раз в 5 минут. - Списки применяются сразу. Если адрес добавлен в
vpn_never(«всегда
напрямую»), уже открытые соединения к нему разрываются, чтобы клиент
переподключился напрямую — иначе такие соединения подолгу оставались бы в VPN. - Предупреждение, если домен из
vpn_neverне разобрался. Список «всегда
напрямую» работает по IP-адресам: программа находит адреса домена и добавляет
их в список. Если адреса получить не удалось, правило не сработает и трафик к
этому домену может уйти в VPN — теперь в лог пишется предупреждение. - Меньше мусора в списке выученных адресов (
learn_exclude_ports). Для
служебных портов (22, 23, 445, 554 и т.п.) больше не запоминаем адреса по
одному неотвеченному запросу — так отсекается сетевой шум и сканирования.
Обычные сайты (80/443/QUIC) учатся как раньше; если заблокированный сервис
работает на нестандартном порту — добавьте его домен/IP вvpn_always.txt.
Диагностика
Если что-то не так — соберите отчёт (в момент проблемы) и приложите вывод:
sh /opt/susanin/tools/report.sh
# или без установки:
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/v0.3.9/tools/report.sh | shОтчёт сохраняется в /opt/susanin/var/report.txt.
Сборки
- архивы:
susanin-keenetic-deploy-mipsel.tar.gz,…-mips.tar.gz,
…-aarch64.tar.gz,…-armv7.tar.gz,…-x86_64.tar.gzиSHA256SUMS; - контейнер:
ghcr.io/r17a/susanin.keenetic:v0.3.9(+latest).
Проверено: mipsel — Keenetic Viva, KeeneticOS 5.1.4–5.1.5, Entware
(+ клиент OpenConnect). Остальные архитектуры собраны и приложены готовыми
архивами, но на живом железе не тестировались — сообщайте об ошибках в Issues.
OpenWRT openwrt-v0.3.9
OpenWRT-сборка Susanin.Keenetic openwrt-v0.3.9
Экспериментальная сборка для роутеров Keenetic / Netcraze, перепрошитых на
OpenWRT. На живом железе не тестировалась — предварительный выпуск для проверки
сообществом. Для штатного KeeneticOS/Entware используйте релиз канала v*.
Установка
Онлайн (архитектура и версия определяются автоматически):
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/openwrt-v0.3.9/install-openwrt.sh | sh -s -- --yes--deps дополнительно поставит нужные пакеты через opkg (ipset,
conntrack-tools, iptables-legacy, ip-full, ca-bundle и kmods
kmod-ipset kmod-ipt-conntrack kmod-ipt-connmark kmod-ipt-tcp-mss); без него
установите их вручную.
Офлайн: возьмите архив под свою архитектуру (см. ниже), распакуйте и выполните
sh install-openwrt.sh.
Сервис: /etc/init.d/susanin enable && /etc/init.d/susanin start;
проверка: /usr/bin/susanin-agent status; лог: /var/lib/susanin/susanin.log.
Архитектуры
| Архив | SoC | Устройства |
|---|---|---|
susanin-openwrt-mipsel_24kc.tar.gz |
MT7620 / MT7621 / MT7628 | большинство Keenetic/Netcraze (Start, 4G, Omni, Extra, Viva, Giga, Ultra) |
susanin-openwrt-aarch64_cortex-a53.tar.gz |
MT7622 / MT7981 / MT7986 | новые модели (ARM/filogic) |
Сообщить о проблемах
Диагностика (запустите в момент проблемы, отчёт сохраняется в /tmp/susanin-report.txt):
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/openwrt-v0.3.9/tools/owrt-report.sh | shПриложите вывод последней команды ([susanin] report saved: …) целиком.
- Issues: https://github.com/R17a/Susanin.Keenetic/issues
- Форум: https://forum.keenetic.ru/topic/30791-susaninkeenetic-%D0%B0%D0%B4%D0%B0%D0%BF%D1%82%D0%B8%D0%B2%D0%BD%D0%B0%D1%8F-vpn-%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F/
- Telegram: https://t.me/Susanin_Keenetic
Проверено: только сборка (компиляция). Поведение на устройстве не проверялось.
Susanin.Keenetic v0.3.8
Susanin.Keenetic v0.3.8 — restore late-stall detection; CI fixes; list hysteresis; status counters
Что нового в этой версии
- Откат кода по rate/late-stall-детект: потоки, которым DPI ТСПУ РКН
отдал ответ снова уходят в VPN (SOFT TCP-LATE-STALL,QUIC-LATE-STALL);
ПорогиTCP-CLOSE/TCP-STALLсноваrp <= 2 && rb < 256. Это возвращает
автообучение CDN-поддоменов, из-за чего переставали работать превью/видео
YouTube, а также медиа x.com/Insta — включая клиентов OpenConnect (oc0),
где трафик к Fastly/Akamai-EDGE уходил DIRECT и тормозил.
Наvpn_always/vpn_neverи wildcard-зоны не влияет; - hysteresis списков (
vpn_always/vpn_never) считает интервалы, а не
вызовыva_refresh/vn_refresh: раньше порог «2 обновления подряд»
достигался за доли секунды (функция зовётся многократно за интервал) и churn
не подавлялся; vpn_never.txt: имена приводятся к нижнему регистру (как вvpn_always.txt) —
дедуп и сравнение зон больше не зависят от регистра;datapath.sh status: правильные размеры наборов (раньше показывало 125 вместо
2682 — счётчик учитывал не все адреса);- susanin-agent status: размеры наборов верны и на больших объёмах (раньше могли
занижаться), и в выводе виден набор susanin_never.
Установка (первый раз)
opkg update && opkg install ca-certificates
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/main/install.sh | shОбновление
sh /opt/susanin/tools/susanin.sh update
/opt/susanin/bin/susanin-agent versionOpenWRT openwrt-v0.3.8
OpenWRT-сборка Susanin.Keenetic openwrt-v0.3.8
Экспериментальная сборка для роутеров Keenetic / Netcraze, перепрошитых на
OpenWRT. На живом железе не тестировалась — предварительный выпуск для проверки
сообществом.
Установка
Онлайн (архитектура и версия определяются автоматически):
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/openwrt-v0.3.8/install-openwrt.sh | sh -s -- --yes--deps дополнительно поставит нужные пакеты через opkg (ipset,
conntrack-tools, iptables-legacy, ip-full, ca-bundle, kmod-ipset kmod-ipt-conntrack kmod-ipt-connmark kmod-ipt-tcp-mss);
без него установите их вручную.
Сервис: /etc/init.d/susanin enable && /etc/init.d/susanin start;
проверка: /usr/bin/susanin-agent status; лог: /var/lib/susanin/susanin.log.
Офлайн: возьмите архив под свою архитектуру (см. ниже), распакуйте и выполните
sh install-openwrt.sh.
Архитектуры
| Архив | SoC | Устройства |
|---|---|---|
susanin-openwrt-mipsel_24kc.tar.gz |
MT7620 / MT7621 / MT7628 | большинство Keenetic/Netcraze (Start, 4G, Omni, Extra, Viva, Giga, Ultra) |
susanin-openwrt-aarch64_cortex-a53.tar.gz |
MT7622 / MT7981 / MT7986 | новые модели (ARM/filogic) |
Сообщить о проблемах
Диагностика (запустите в момент проблемы, отчёт сохраняется в /tmp/susanin-report.txt):
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/openwrt-v0.3.8/tools/owrt-report.sh | shПриложите вывод последней команды ([susanin] report saved: …) целиком.
- Issues: https://github.com/R17a/Susanin.Keenetic/issues
- Форум: https://forum.keenetic.ru/topic/30791-susaninkeenetic-%D0%B0%D0%B4%D0%B0%D0%BF%D1%82%D0%B8%D0%B2%D0%BD%D0%B0%D1%8F-vpn-%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F/
- Telegram: https://t.me/Susanin_Keenetic
Проверено: только сборка (компиляция). Поведение на устройстве не проверялось.
Susanin.Keenetic v0.3.7
Susanin.Keenetic v0.3.7 — обновление информации и документации
Что нового
- Изменения текстовые — код и поведение демона не менялись (относительно v0.3.6).
Установка (первый раз)
opkg update && opkg install ca-certificates
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/main/install.sh | shОбновление
sh /opt/susanin/tools/susanin.sh update
/opt/susanin/bin/susanin-agent versionSusanin.Keenetic v0.3.6
Susanin.Keenetic v0.3.6 — wildcard-зоны, конфликты, обслуживание, стабильные списки
Что нового в этой версии
- wildcard-зоны
*.example.comвvpn_always.txtиvpn_never.txt:
покрывают домен и поддомены.
Точная строкаexample.comпо-прежнему означает только сам домен —
поддомены обрабатываются адаптивно; - конфликт зон: если зона есть в обоих файлах или зоны пересекаются
(например*.keenetic.ru и forum.keenetic.ru), приоритет у «напрямую»
(vpn_never), в лог пишется предупреждение; - обслуживание: ротация лога (
susanin.log>5 МБ →
susanin.log.1.gz..3.gz) и архивация старых каталоговdatapath-*
в/opt/susanin/var/archive/; - меньше «дрожания» списков: адрес убирается из наборов только если он
отсутствует 2 обновления подряд; per-IP записиpin/unpinперенесены в
DEBUG(вINFO— только итоговая строка).
Установка (первый раз)
opkg update && opkg install ca-certificates
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/main/install.sh | shОбновление
sh /opt/susanin/tools/susanin.sh update
/opt/susanin/bin/susanin-agent versionSusanin.Keenetic v0.3.5
Susanin.Keenetic v0.3.5 — never-VPN список, forget, точнее обучение, исправлена работа с OpenConnect приложением
Логика
- сайты, ответившие по основному каналу, больше не переводятся в VPN:
убраны срабатыванияTCP-CLOSE/TCP-STALL/QUIC-LATE-STALLдля потоков,
которые уже получили ответ. Кандидатами остаются только направления без
ответа;vpn_always.txtпо-прежнему всегда через VPN.
Новое
- список «всегда напрямую» (never VPN):
/opt/susanin/etc/vpn_never.txt
(домен / IPv4 / CIDR). Адреса попадают в ipsetsusanin_never, для которого в
цепочкеSUSANINстоитRETURNдо правил маркировки — они не попадают в
ok/testи всегда идут напрямую (пример:px1.rapo.dev); - команда
sh /opt/susanin/tools/susanin.sh forget <ip>— убрать адрес из кэша
и наборов; install.sh/updateне перезаписывают существующиеvpn_always.txtи
vpn_never.txt.
OpenConnect
- установщик находит работающий OpenConnect-сервер (ocserv, интерфейс
oc0) и
предлагает добавить его в маршрутизацию Susanin; при согласии добавляет
интерфейс вlan_interfaces, а подсеть клиентов — вlan_subnets. Трафик
клиентов обрабатывается как LAN; отдельные NAT-правила не нужны.
Установка (первый раз)
opkg update && opkg install ca-certificates
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/main/install.sh | sh
или
curl -fsSL https://raw.githubusercontent.com/R17a/Susanin.Keenetic/main/install.sh | sh
Установщик скачивает готовый архив под вашу архитектуру, определяет LAN/VPN и
(при наличии) OpenConnect, запрашивает подтверждение и запускает демон.
Существующие susanin.conf, vpn_always.txt, vpn_never.txt и кэш сохраняются.
Обновление
Посмотреть текущую версию: /opt/susanin/bin/susanin-agent version
Автоматические обновление до актуальной версии: sh /opt/susanin/tools/susanin.sh update
Обновление до версии 0.3.5: sh /opt/susanin/tools/susanin.sh update v0.3.5
Проверено: mipsel — Keenetic Viva, KeeneticOS 5.1.4–5.1.5, Entware
(+ клиент OpenConnect). Остальные архитектуры уже собраны и приложены готовыми
архивами, но на живом железе не тестировались — сообщайте об ошибках в Issues.
Susanin.Keenetic v0.3.4
Susanin.Keenetic v0.3.4 — поддержка OpenConnect-сервера
Новое
- установщик автоматически определяет OpenConnect-сервер (ocserv, интерфейс
oc0)
и спрашивает:OpenConnect server detected (oc0). Add it to Susanin routing? [y/N];
при--yesдобавляет без вопроса; - при добавлении в маршрутизацию попадают интерфейс (
lan_interfaces) и подсеть
клиентов (lan_subnets; берётся изipv4-networkили адресаoc0).
Проверено
- Keenetic Viva, KeeneticOS 5.1.5, ocserv (родной Keenetic OpenConnect): телефон по
сотовой сети подключается к роутеру, получает адрес из172.16.5.0/24, и весь
заблокированный трафик уходит вnwg0через Susanin (в логеAUTO-SUSANIN … src=172.16.5.x,
в conntrackmark=0x20000000); - отдельные NAT-правила для подсети OpenConnect не требуются — хватает штатного
masquerade NDM.
Обновление
sh /opt/susanin/tools/susanin.sh update v0.3.4