No description
  • Go 68.6%
  • JavaScript 14.1%
  • CSS 7.4%
  • NSIS 4.9%
  • HTML 4.1%
  • Other 0.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-09 08:42:37 +03:00
.github/workflows fix: обновлять статистику одной строкой; Windows release 2.1.13 2026-09-10 12:37:01 +03:00
bin fix: устойчивость Wintun bridge и core 2.1.15; desktop 2.1.17 2026-09-30 21:04:05 +03:00
build Initial standalone CSQTT desktop 2.1.7 2026-08-30 13:04:42 +03:00
core fix: системный MTU 1300 для адаптера CSQTT в Windows; desktop 2.1.18 2026-10-05 18:40:08 +03:00
docs feat: резервные GitLab и Forgejo для Windows updater; desktop 2.1.19 2026-10-09 08:42:37 +03:00
frontend feat: резервные GitLab и Forgejo для Windows updater; desktop 2.1.19 2026-10-09 08:42:37 +03:00
tools/windows-network-bench test: зафиксировать Windows-замеры и ограничения проверки антивируса 2026-09-22 22:11:15 +03:00
updater feat: резервные GitLab и Forgejo для Windows updater; desktop 2.1.19 2026-10-09 08:42:37 +03:00
.gitignore Initial standalone CSQTT desktop 2.1.7 2026-08-30 13:04:42 +03:00
app.go feat: режимы «Авто API»/«Авто ВК» и исправления по ревью 2026-09-22 22:07:32 +03:00
app.ico Initial standalone CSQTT desktop 2.1.7 2026-08-30 13:04:42 +03:00
app_test.go feat: режимы «Авто API»/«Авто ВК» и исправления по ревью 2026-09-22 22:07:32 +03:00
app_update.go feat: резервные GitLab и Forgejo для Windows updater; desktop 2.1.19 2026-10-09 08:42:37 +03:00
app_update_test.go feat: add verified Windows bundle updates with helper and rollback 2026-09-08 12:10:37 +03:00
autostart_other.go Initial standalone CSQTT desktop 2.1.7 2026-08-30 13:04:42 +03:00
autostart_windows.go Initial standalone CSQTT desktop 2.1.7 2026-08-30 13:04:42 +03:00
CHANGELOG.md feat: резервные GitLab и Forgejo для Windows updater; desktop 2.1.19 2026-10-09 08:42:37 +03:00
core_identity.go perf: reduce Windows startup processes and ship updater in 2.1.12 2026-09-08 12:26:58 +03:00
core_identity.json fix: устойчивость Wintun bridge и core 2.1.15; desktop 2.1.17 2026-09-30 21:04:05 +03:00
core_identity_test.go fix: устойчивость Wintun bridge и core 2.1.15; desktop 2.1.17 2026-09-30 21:04:05 +03:00
go.mod experiment: нативное обнаружение сети и bypass-маршруты Windows 2026-09-22 22:12:06 +03:00
go.sum experiment: нативное обнаружение сети и bypass-маршруты Windows 2026-09-22 22:12:06 +03:00
main.go feat: add verified Windows bundle updates with helper and rollback 2026-09-08 12:10:37 +03:00
README.md feat: резервные GitLab и Forgejo для Windows updater; desktop 2.1.19 2026-10-09 08:42:37 +03:00
rsrc_windows_amd64.syso fix: системный MTU 1300 для адаптера CSQTT в Windows; desktop 2.1.18 2026-10-05 18:40:08 +03:00
wails-admin.manifest perf: reduce Windows startup processes and ship updater in 2.1.12 2026-09-08 12:26:58 +03:00
wails-resource.rc feat: резервные GitLab и Forgejo для Windows updater; desktop 2.1.19 2026-10-09 08:42:37 +03:00
wails.json feat: резервные GitLab и Forgejo для Windows updater; desktop 2.1.19 2026-10-09 08:42:37 +03:00
wintun.dll fix(windows): load Wintun beside the GUI 2026-08-30 15:53:24 +03:00

CSQTT VPN Desktop

Boosty

Репозиторий desktop-клиента: danusha2345/csqtt-vpn. Android-клиент и сервер нашей сборки: danusha2345/csqtt-android.

Десктопный клиент CSQTT для Windows и Linux. GUI на Wails управляет официальным Rust transport из amurcanov/csqtt, создаёт системный TUN и отправляет IPv4-трафик через CSQTT/VK TURN.

Версия desktop bundle: 2.1.19, bundled Rust core: 2.1.15. Каждый пользователь вводит endpoint собственного сервера; стандартный формат — host:46010.

Архитектура

Windows

приложения → Wintun CSQTT → raw-IP UDP bridge 127.0.0.1:19000
            → csqtt-client.exe → VK TURN → CSQTT server → интернет

GUI устанавливает split-default routes, NRPT/DNS и IPv6 leak guard. Адрес сервера, сети VK и обнаруженные TURN relay получают bypass через физический gateway. При падении transport или Wintun маршруты и DNS снимаются fail-safe.

Linux

приложения → /dev/net/tun (csqtt0) → TUN FD через abstract UDS/SCM_RIGHTS
            → csqtt-client → VK TURN → CSQTT server → интернет

Linux backend использует нативный --tun-uds Rust-клиента, iproute2 и systemd-resolved. Split routes, DNS и IPv6 leak guard откатываются при отключении или завершении transport. Для TUN и маршрутов GUI пока запускается с root-правами; privilege-separated helper — отдельная следующая итерация.

Пароль и VK call links desktop-оболочка передаёт transport-процессу через одноразовый JSON в stdin (--credentials-stdin), а не через process argv.

Содержимое release bundle

Windows:

CSQTT-VPN.exe
bin/csqtt-client.exe
wintun.dll

Нужны Windows 10/11 и WebView2 Runtime. CSQTT-VPN.exe содержит manifest requireAdministrator. wintun.dll должен находиться именно рядом с CSQTT-VPN.exe: библиотека Wintun загружается из каталога приложения, а не из подкаталога bin.

Linux:

CSQTT-VPN
bin/csqtt-client

Нужны iproute2, systemd-resolved, GTK 3 и WebKitGTK 4.1. Rust transport собран статически под musl; Wails GUI использует системные GTK/WebKit библиотеки. Запуск текущей версии:

sudo -E ./CSQTT-VPN

Возможности GUI

  • профили сервера, пароля, VK links и исключений;
  • audio/video obfuscation и TURN UDP/TCP-TLS;
  • от 9 до 126 workers с нормализацией до кратного 9;
  • системный TUN, DNS proxy и маршрутизация доменов/IP/CIDR напрямую;
  • журнал, диагностика, скорость и объём текущей сессии; сводка трафика закреплена над историей журнала и обновляется без добавления новых строк, длинный текст в верхней панели переносится целиком;
  • Windows autostart (на Linux скрыт до появления privilege-separated helper);
  • проверка обновлений GitHub → GitLab → Forgejo, загрузка с progress и установка полного Windows bundle через helper с rollback после явного выбора в UI.

Контракт assets, восстановление и обязательный Windows release gate: docs/WINDOWS_UPDATER.md.

Сборка

Требуются Go 1.25+, Node.js/npm, Wails 2.13 и Rust 1.97.1. Frontend:

cd frontend
npm ci
npm audit
npm run build

Проверки Go:

go test ./...
go test -race ./core
go vet ./...
GOOS=windows GOARCH=amd64 go test -c ./core

Windows GUI:

mv rsrc_windows_amd64.syso /tmp/
wails build -platform windows/amd64 -trimpath
mv /tmp/rsrc_windows_amd64.syso .

Linux GUI:

wails build -platform linux/amd64 -tags webkit2_41 \
  -trimpath -clean=false

Rust core собирается из rust-client/ репозитория CSQTT:

cargo build --release --locked --target x86_64-pc-windows-gnu
cargo zigbuild --release --locked --target x86_64-unknown-linux-musl

Оптимизации запуска описаны в WINDOWS_PERFORMANCE.md. Updater впервые входит в 2.1.12: эту версию нужно установить вручную целиком; последующие стабильные версии проверяются и устанавливаются из приложения.

Ограничения проверки

В версии 2.1.11 исправлены применение DNS из TUNCONF, TCP fallback при усечённом DNS-ответе и обработка ошибок Windows IPv6 guard: ошибка теперь прерывает подключение с откатом. Используйте core из того же bundle и сервер danusha2345/csqtt-android; upstream server amurcanov/csqtt 2.1.9 имеет другой wire protocol и отклоняет подключение с DENIED:protocol_mismatch.

Unit/race/cross-compile, frontend audit/build, Wintun PE build, Linux TUN namespace и SCM_RIGHTS проверяются локально. Полный TURN e2e требует действующей VK call link/hash; секреты в тесты и репозиторий не включаются.

CSQTT core распространяется по лицензии upstream PolyForm Noncommercial 1.0.0. Исходный проект и автор протокола: amurcanov/csqtt.