-
CSQTT OpenWrt 2.1.17-2 — списки сетей и зона wan Pre-release
released this
2026-10-10 21:23:01 +03:00 | 0 commits to main since this releaseOpenWrt 2.1.17-2
Новые настройки по мотивам #5. Спасибо @Region174chel за идею списка подсетей.
- Маршрутизация по списку сетей.
route_mode='exclude'(по умолчанию): весь LAN идёт в туннель, кроме сетей из списка.route_mode='include': в туннель идут только сети из списка. Список задаётся черезlist route_netили файлroute_nets_file(одна сеть на строку). - Локальные сети не попадают в туннель. Трафик в 10/8, 172.16/12, 192.168/16 и 169.254/16 идёт мимо туннеля. Отключается через
route_private='0'. - Вариант с зоной
wan.firewall='zone': добавьтеcsqtt0в зонуwan, и правила forward и masquerade делает сам firewall. Они не пропадают после перезапуска firewall.
Установка
Скачайте
.tar.gzсвоей архитектуры:x86_64,aarch64_genericилиarm_cortex-a7_neon-vfpv4(ARMv7 с NEON). Файлы.ipk— для OpenWrt 24.10 с opkg.mkdir -p /tmp/csqtt-install tar -xzf /tmp/csqtt-openwrt_2.1.17-2_aarch64_generic.tar.gz -C /tmp/csqtt-install sh /tmp/csqtt-install/install.sh /etc/init.d/csqtt restart logread -e csqttСуществующий
/etc/config/csqttсохраняется. Новые опции описаны в README.Что проверено
23 теста hook на настоящих nftables и iptables в изолированной сети, 4 теста упаковки, ShellCheck. На физическом роутере не проверялось — будем рады отзывам.
Rust-клиент остался 2.1.17: в пакетах те же бинарники, что в релизе v2.1.17, проверенные по SHA256. Android, сервер и desktop не менялись. Релиз помечен Pre-release, чтобы приложение Android не считало его обновлением.
Downloads
-
Source code (ZIP)
16 downloads
-
Source code (TAR.GZ)
0 downloads
- Маршрутизация по списку сетей.
-
released this
2026-10-09 08:46:50 +03:00 | 1 commits to main since this releaseCSQTT 2.1.17
Android: установка обновлений из приложения
Кнопка «Обновить» скачивает APK внутри приложения, показывает прогресс и позволяет отменить загрузку. Проверяются SHA256, package ID, версия и подпись APK; после этого автоматически открывается системный установщик Android. Если нужно, сначала откроется системное разрешение на установку из CSQTT. Подтверждение установки остаётся стандартным действием Android; браузер и ручной поиск APK больше не нужны.
GitHub — основной источник, GitLab и Forgejo — резервные. При обрыве загрузки зеркало должно подтвердить ту же версию и SHA256. При поиске обновлений исключены черновики, prerelease, отдельные OpenWrt-выпуски и неполные релизы.
Первый переход на новый package ID
Новый ID:
io.github.danusha2345.csqtt. Приложение устанавливается рядом с оригиналом amurcanov и прежним пакетомcsqtt.quic.amurcanov. Старые данные не удаляются, но настройки, выбор приложений и разрешение VPN в новой установке потребуется задать заново. Автоматической миграции между package ID нет.Версии до 2.1.17 не содержат нового updater и по-прежнему открывают страницу релиза. Новый APK нужно один раз установить вручную; последующие обновления будут скачиваться из приложения.
Остальные файлы
- Подписанные APK: universal, arm64-v8a, armeabi-v7a, x86_64. Для обычной установки подходит
CSQTT-2.1.17-universal.apk. - Серверы Linux: amd64, arm64, armv7. Протокол не изменён, обновление совместимого сервера необязательно.
- OpenWrt 2.1.17-1: nftables/fw4 и iptables, повторный запуск без накопления правил и откат ошибок. Для OpenWrt 25.12+ выбирайте
.tar.gz; legacy.ipk— для 24.10 с opkg. MIPS в выпуск не входит. - Приложен desktop 2.1.19 для Windows/Linux. Windows updater также получил резервные источники; bundled core остаётся 2.1.15.
Проверки
184 Android unit-теста, release lint, 264 теста Rust-клиента (4 ignored), 118 тестов сервера, cross-build/clippy, 15 OpenWrt firewall-тестов и 4 release-safety теста. Проверены подписи APK, новый package ID, встроенные серверные/client bytes, все архивы и CLI ARM-бинарников через QEMU.
В изолированном эмуляторе Android 15 проверены открытие системного установщика через FileProvider и установка временного тестового APK с совпадающей подписью и большей версией. Полный VPN/TURN-сеанс, физический роутер и установка через updater на физическом Android в этом прогоне не проверялись. SHA256SUMS и BUILDINFO приложены.
Downloads
-
Source code (ZIP)
19 downloads
-
Source code (TAR.GZ)
0 downloads
- Подписанные APK: universal, arm64-v8a, armeabi-v7a, x86_64. Для обычной установки подходит
-
CSQTT OpenWrt 2.1.16-2 — nftables и iptables Pre-release
released this
2026-10-09 07:45:14 +03:00 | 2 commits to main since this releaseOpenWrt 2.1.16-2
Исправлена совместимость с nftables/firewall4 по сообщению #5. Спасибо @alexer21r за рабочий пример и проверку на OpenWrt 25.12.5.
- При активной таблице
inet fw4используются нативные правила nftables; для конфигураций без fw4 сохранён iptables. - Повторный запуск не накапливает правила. При остановке удаляются только правила CSQTT; при ошибке настройки выполняется откат маршрутов и частично добавленных правил.
- Удалена обязательная зависимость от
iptables-nft. На fw4 используется уже установленный nftables; на fw3 требуется имеющийся iptables с comment, conntrack и MASQUERADE.
Установка
Для OpenWrt 25.12+ скачайте
.tar.gzсвоей архитектуры:x86_64,aarch64_genericилиarm_cortex-a7_neon-vfpv4(ARMv7 с NEON). Legacy.ipkпредназначены для OpenWrt 24.10 с opkg. Файлы.apkдля пакетного менеджера OpenWrt этим выпуском не предоставляются; пакет можно собрать соответствующим SDK из feed-рецепта.Пример для aarch64 на OpenWrt 25.12+:
apk add kmod-tun ip-full mkdir -p /tmp/csqtt-install tar -xzf /tmp/csqtt-openwrt_2.1.16-2_aarch64_generic.tar.gz -C /tmp/csqtt-install sh /tmp/csqtt-install/install.sh /etc/init.d/csqtt restart logread -e csqttСуществующий
/etc/config/csqttсохраняется. После перезапуска firewall также перезапустите CSQTT: его правила динамические. Подробности — в инструкции.Проверки и границы
Прошли 15 регрессионных тестов firewall на настоящих nftables и iptables-nft в изолированной Linux-сети, включая BusyBox sh, переход со старых правил, повторный старт/остановку и откат ошибок; ещё 4 теста release safety и ShellCheck. Проверены содержимое и права файлов во всех шести пакетах, а также CLI бинарников x86_64 и ARM через QEMU.
Rust-клиент остался 2.1.16: пакеты содержат проверенные по SHA256 бинарники предыдущего релиза, без пересборки. Android, сервер и desktop этим выпуском не обновляются. Это отдельная ревизия упаковки OpenWrt; общий Latest-релиз остаётся v2.1.16. На GitHub/Forgejo выпуск помечен Pre-release, чтобы Android updater не выбирал его как стабильный Android-релиз при резервном поиске.
Физический OpenWrt-роутер, iptables-legacy и полный VPN/TURN-сеанс для этой ревизии нами не проверялись. Нужна обратная связь после установки. Контрольные суммы и происхождение бинарников приложены в SHA256SUMS и BUILDINFO.
Downloads
-
Source code (ZIP)
20 downloads
-
Source code (TAR.GZ)
0 downloads
- При активной таблице
-
released this
2026-10-05 17:30:00 +03:00 | 4 commits to main since this releaseCSQTT 2.1.16 — исправление зависания OpenWrt-клиента
- OpenWrt (
--tun-device): после остановки воркеров клиент больше не пересоздаётcsqtt0в бесконечном цикле с повтором «TUN csqtt0 успешно открыт» в логе. Процесс завершается, и procd может перезапустить сервис. Исправляет #3. - Клиент пишет в лог недоступный VK-звонок:
[КРЕД #N] Звонок VK недоступен, хеш … отключён: … (error_code=954). Раньше причина уходила только событием для GUI, и на роутере остановка выглядела беспричинной. Если видите эту строку — создайте новый звонок и подставьте свежий хеш.
Установка и совместимость
Android versionCode 226; четыре APK: universal, arm64-v8a, armeabi-v7a, x86_64. Все подписаны прежним сертификатом и устанавливаются поверх наших предыдущих релизов. Для Android меняется только строка лога.
OpenWrt beta: .ipk и .tar.gz для x86_64, aarch64_generic и arm_cortex-a7_neon-vfpv4. Реальный роутер не тестировался.
Desktop 2.1.18 с core 2.1.15 приложен (заменил 2.1.17 05.10.2026): в Windows системный MTU адаптера CSQTT теперь 1300. Ошибке OpenWrt-клиента desktop не подвержен.
Сетевой протокол сохранён. Наши клиенты совместимы с сервером danusha2345/csqtt-android 2.1.11–2.1.16; обновление сервера не требуется. Код сервера не менялся, бинарники 2.1.16 пересобраны для комплекта. Upstream amurcanov/csqtt 2.1.9 несовместим.
Проверки
264 Rust client tests (4 ignored), 118 server tests, 177 Android unit tests, clippy, release lint, подписи и вложенные байты APK, серверные CLI под QEMU и состав OpenWrt-пакетов.
Зависание воспроизведено на x86_64-сборке 2.1.15 в изолированном network namespace: после SIGINT в режиме
--tun-deviceпроцесс не завершался. Релизный x86_64-бинарник 2.1.16 в тех же условиях выходит с кодом 0. Строка о недоступном звонке проверена на живом VK API с несуществующим хешем в режиме SOCKS5.Тест
turn::integration_tests::authenticated_flow_survives_pool_deficit_and_keeps_channel_data_zero_copyнестабилен: упал в 2 из 23 полных прогонов этого дерева (0 из 28 на 2.1.15), изменённый код в нём не исполняется.Географическая сеть VK TURN, Geely, физический Windows VPN и реальный роутер в этом выпуске не проверялись. Деплой на сервер не выполнялся.
Downloads
-
Source code (ZIP)
17 downloads
-
Source code (TAR.GZ)
0 downloads
- OpenWrt (
-
released this
2026-09-30 21:16:12 +03:00 | 5 commits to main since this releaseCSQTT 2.1.15 — устойчивость туннеля и выбор приложений
- Исправлена гонка SettingsStore: фоновые коллекторы запускаются после инициализации Flow-полей.
- При сетевой ошибке проверки VK разрешён повтор без привязки к Network только для известной текущей сети. Если сеть сменилась во время повтора, положительный результат не принимается. Это адаптация upstream PR #37 для Geely/Flyme Auto; на физическом Geely не проверено.
- Не-IP и усечённые пакеты отбрасываются после обработки SOCKS5-кадров CSQPX2. EINVAL/EMSGSIZE и нулевая запись отдельного пакета не останавливают TUN writer; закрытый FD и неожиданные ошибки сохраняют прежнее поведение. Это адаптация upstream PR #39 без изменения нашего wire protocol.
- Android: вкладка «Прилож.» → «Без VPN». Отмеченные приложения работают напрямую. Есть и обратный режим «Через VPN». Настройки сохраняются; VPN перечитывает их после выбора. CSQTT, VK и VK Звонки исключаются автоматически.
Установка и совместимость
Android versionCode 225; четыре APK: universal, arm64-v8a, armeabi-v7a, x86_64. Все подписаны прежним сертификатом и устанавливаются поверх наших предыдущих релизов.
OpenWrt beta: .ipk и .tar.gz для x86_64, aarch64_generic и arm_cortex-a7_neon-vfpv4. Реальный роутер не тестировался.
Desktop 2.1.17 с core 2.1.15 приложен к релизу; содержит дополнительную проверку входящих пакетов Windows/Wintun.
Сетевой протокол сохранён. Наши клиенты совместимы с сервером danusha2345/csqtt-android 2.1.11–2.1.15; обновление сервера для этих исправлений не требуется. Серверные бинарники 2.1.15 пересобраны для комплекта. Upstream amurcanov/csqtt 2.1.9 несовместим.
Проверены 264 Rust client tests (4 ignored), 118 server tests, 177 Android unit tests, clippy, release lint, подписи и вложенные байты APK, серверные CLI под QEMU и состав OpenWrt-пакетов. Тест с настоящим системным EINVAL подтверждает продолжение работы writer; CSQPX2 сохранён. Географическая сеть VK TURN, Geely и физический Windows VPN в этом выпуске не проверялись. Деплой на сервер не выполнялся.
Исходные исправления: https://github.com/amurcanov/csqtt/pull/37 и https://github.com/amurcanov/csqtt/pull/39
Downloads
-
Source code (ZIP)
18 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-09-22 22:56:54 +03:00 | 6 commits to main since this releaseБезопасность: проверка владельца TUN-сокета
- Клиент принимает TUN-дескриптор по abstract UDS только от процесса того же пользователя (
SO_PEERCRED). Имя сокета видно в/proc/<pid>/cmdline, и без проверки другой локальный пользователь Linux мог подсунуть свой TUN раньше GUI. - Сетевой протокол и сервер не изменены; обновлять сервер не обязательно.
- В комплект включён CSQTT VPN desktop 2.1.16 (Windows/Linux): режимы «Авто API»/«Авто ВК», очистка NRPT после аварии, нативные маршруты Windows. Desktop 2.1.16 несёт core 2.1.11 — исправление UDS для Linux-desktop придёт со следующим обновлением его core.
Проверено: 261 тест Rust-клиента, 118 тестов сервера, fmt/clippy, Android unit-тесты и release lint, подпись APK (SHA-256 сертификата 220ee9…), совпадение встроенных серверов и
libclient.soс исходниками, OpenWrt-пакеты (x86_64 нативно, arm64/armv7 в QEMU). Не проверено: живой TURN E2E, реальный роутер, деплой на живой сервер.Downloads
-
Source code (ZIP)
24 downloads
-
Source code (TAR.GZ)
0 downloads
- Клиент принимает TUN-дескриптор по abstract UDS только от процесса того же пользователя (
-
released this
2026-09-10 12:21:34 +03:00 | 8 commits to main since this releaseCSQTT 2.1.13
Исправления повторного ревью 2.1.12:
- Recovery разрешает завершение процесса только по точному пути исполняемого файла CSQTT. Совпадения аргументов чужого процесса больше недостаточно.
- Диагностические отчёты не собирают журнал, содержимое systemd unit и аргументы процессов, которые могут содержать секреты. Состояния служб, маршруты, интерфейсы и сокеты сохранены.
- Кросс-сборка запускает тестовые бинарники только при совпадении архитектур Linux-хоста и цели. В остальных случаях тесты компилируются.
- Добавлены регрессионные проверки этих сценариев в CI.
Android versionCode 223; APK подписаны прежним release-сертификатом и устанавливаются поверх 2.1.12. Четыре APK: universal, arm64-v8a, armeabi-v7a, x86_64. Серверные бинарники: amd64, arm64, armv7; архив ручной установки включает installer и исправленные диагностические скрипты.
Сетевой протокол не изменён. Windows/Linux desktop 2.1.12 остаётся совместимым, его обновлять не требуется. Приложенные desktop-архивы взяты без изменений из релиза csqtt-vpn 2.1.12; Windows-апдейтер не будет предлагать обновление до версии Android/server.
Проверки и хэши перечислены в BUILDINFO и SHA256SUMS. Реальный ARM-VPS, Windows runtime и VK TURN E2E в этом выпуске не проверялись. Деплой на действующий сервер не выполнялся.
OpenWrt (beta)
Включены
.ipkдля opkg и.tar.gzдля ручной установки:x86_64,
aarch64_generic,arm_cortex-a7_neon-vfpv4. Конфигурация UCI отмечена как
conffile. MIPS/MIPSel и установка на реальном роутере не проверялись.
Инструкция: https://github.com/danusha2345/csqtt-android/blob/v2.1.13/openwrt/README.mdDownloads
-
Source code (ZIP)
17 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-09-09 15:16:03 +03:00 | 9 commits to main since this releaseCSQTT 2.1.12
Перенос полезного из upstream amurcanov/csqtt 2.1.9 без его несовместимого wire protocol, плюс запросы из issues.
- Сервер для ARM. Статические musl-бинарники для
amd64,arm64иarmv7. APK несёт все три; приложение при деплое выбирает нужный поuname -mVPS. Ручной installer:rust-server/build_linux.sh --arch all, архивCSQTT-server-2.1.12-linux.tar.gzсодержит все три бинарника. - Android x86_64 — отдельный APK для эмуляторов, Chromebook и части TV-приставок; universal APK включает и его.
- Android TV — приложение видно в Leanback-лаунчере, тачскрин и Wi-Fi не обязательны.
tun-recover.shперед стартом сервера (systemdExecStartPreи Docker entrypoint): освобождает UDP-порт от своего же зависшего runtime и удаляет оставшийся TUN-интерфейс. Чужой процесс на порту не трогается — сервис не стартует с кодом 24 и подсказкой в journal.- DNS-профили в панели (Yandex, Cloudflare, Google, AdGuard, Quad9, OpenDNS, NextDNS, Comms, Geohide, Xbox, Rostelecom, BI.ZONE, НСДИ). В отличие от upstream 2.1.9 ручной ввод любых адресов сохранён.
- Пароль подключения из Keystore: нечитаемая запись больше не выглядит как «пароль не задан» — причина блокировки запуска пишется в лог, запись сбрасывается с подсказкой ввести пароль заново.
- Диагностика для issue:
scripts/diagnose_csqtt_server.sh(read-only снимок systemd/сокетов/TUN/firewall/journal, секреты вырезаются) иscripts/csqtt-network-report.sh(отчёт или захват UDP). - Исправлено:
rust-server/perf.rsне собирался под 32-битные цели; парсер архитектуры VPS не путает stderr-предупреждения bash/locale с выводомuname.
Совместимость и обновление
Используйте сервер danusha2345/csqtt-android. Сервер amurcanov/csqtt 2.1.9 использует другой wire protocol и с этим клиентом не совместим (
DENIED:protocol_mismatch). Redeploy с 2.1.11 штатный, база и устройства сохраняются; после redeploy у systemd-юнита появляется второйExecStartPre.Android package
csqtt.quic.amurcanov, versionCode 222. Все APK подписаны тем же сертификатом, что 2.1.8–2.1.11, устанавливаются обновлением поверх. Доступны universal, arm64-v8a, armeabi-v7a и x86_64.Desktop-клиент CSQTT VPN 2.1.12 (Windows/Linux) не менялся, его архивы приложены для полноты и совпадают с релизом
csqtt-vpn v2.1.12.Проверки
Rust client и server tests, clippy на gnu и на всех трёх musl-целях, Android unit-тесты и release lint, provenance native/server/deploy,
tun-recover.shпрогнан на хосте в сценариях «чужой процесс на порту» и «свой процесс». Debug-сборка проверена поaapt(TV-баннер, leanback, x86_64). ARM-бинарники собраны и проверены по ELF, на живом ARM-VPS не запускались. Полный VK TURN E2E и деплой на живой сервер в этой итерации не выполнялись.Downloads
-
Source code (ZIP)
16 downloads
-
Source code (TAR.GZ)
0 downloads
- Сервер для ARM. Статические musl-бинарники для
-
released this
2026-08-31 12:57:29 +03:00 | 15 commits to main since this releaseСтабильный выпуск CSQTT 2.1.10.
Исправлено:
- при SSH-входе по ключу можно отдельно указать необязательный пароль sudo для deploy и uninstall;
- количество валидных VK-хешей и допустимый лимит workers обновляются без stale Compose state;
- диагностика запуска разделяет отсутствие TURN allocation и готовый TURN без CSQTT server handshake;
- сообщения диагностики подсказывают проверить UDP/TCP-TLS, endpoint, порт, пароль, firewall и server logs.
Release hardening:
- любой Android release fail-closed проверяет обе native ABI, ELF identity, Cargo outputs, Cargo locks, provenance, embedded server и deploy markers;
- добавлены штатная Linux-сборка Android Rust core и единый Windows/Linux provenance schema;
- GitHub CI проверяет Android unit/lint и Rust fmt/clippy/tests на чистом checkout;
- версии Android, Rust client, Rust server, deploy script и web panel синхронизированы на 2.1.10.
Артефакты:
- universal, arm64-v8a и armeabi-v7a Android APK;
- статический Linux amd64 server;
- native client provenance и SHA256SUMS.
Android APK подписаны тем же release-сертификатом, что и 2.1.8, поэтому устанавливаются обновлением поверх предыдущей версии. Встроенная проверка обновлений обращается только к
danusha2345/csqtt-android.Промежуточный tag
v2.1.9не публиковался как Release и не переписывался; этот выпуск полностью его заменяет.Downloads
-
Source code (ZIP)
18 downloads
-
Source code (TAR.GZ)
0 downloads
-
CSQTT OpenWrt 0.1.0 Beta Pre-release
released this
2026-08-30 17:31:16 +03:00 | 19 commits to main since this releaseПервый публичный OpenWrt-порт CSQTT
Готовые статически связанные и stripped-сборки для:
x86_64;aarch64(aarch64_generic);armv7hard-float с NEON (arm_cortex-a7_neon-vfpv4).
Что скачивать:
csqtt-openwrt_*.tar.gz— ручная установка на OpenWrt 25.12+ и 24.10;csqtt-client_*.ipk— пакет для OpenWrt 24.10 сopkg;SHA256SUMS— контрольные суммы всех файлов.
В порт входят нативный Linux TUN, UCI-конфигурация,
procd-сервис, режимы TUN и локального SOCKS5, policy routing для LAN, MASQUERADE и безопасная передача credentials через файл0600вместо аргументов процесса.Инструкция по выбору архитектуры, установке, настройке, проверке и остановке: openwrt/README.md.
Просьба протестировать
Если у вас есть реальный роутер
x86_64,aarch64илиarmv7с NEON,
пожалуйста, протестируйте beta в TUN- и SOCKS5-режимах. Особенно нужны проверки
запуска после reboot, доступа устройств LAN через туннель, восстановления после
обрыва WAN и корректного возврата обычного маршрута после остановки.Результат сообщите в GitHub Issues.
Укажите модель роутера, версию OpenWrt,uname -m, способ установки, режим и
очищенныйlogread -e csqtt. Не публикуйте пароль и VK-хеши.Ограничения beta:
- MIPS/MIPSel пока не собраны;
.apkдля package manager OpenWrt 25.12 пока не приложен — используйте универсальный.tar.gz;- запуск на конкретной физической модели роутера ещё необходимо подтвердить отдельно.
Downloads
-
Source code (ZIP)
17 downloads
-
Source code (TAR.GZ)
0 downloads