7.4 KiB
QVPN для Windows
Собственный клиент для BlancVPN. Импортирует HTTPS-ссылку *.withblancvpn.online/s/…, получает локации VLESS/Reality и подключает весь Windows через виртуальный сетевой адаптер. Другие VPN-провайдеры и произвольные конфигурации не принимаются. Личный ключ в исходники и установщик не включён.
Установка и работа
- Запустите
QVPN-Setup-1.0.0.exe. Windows попросит права администратора один раз для установки VPN-службы. - Откройте ярлык QVPN. Вставьте ссылку BlancVPN в поле ключа и нажмите «Добавить ключ».
- Отключите HAPP и другие VPN, выберите локацию или автоматический выбор, нажмите «Подключить».
Крестик окна сворачивает QVPN в область уведомлений. Выход из интерфейса сохраняет VPN. Для остановки соединения нажмите «Отключить». После перезагрузки служба восстанавливает последнее состояние подключения; открывать окно и снова подтверждать доступ не требуется. Автозапуск самого окна можно включить в настройках.
«Российские сервисы напрямую» отправляет локальную сеть и российские адреса напрямую. Для российских сайтов используются суффиксы .ru, .su, .рф и поставляемые открытые GeoIP/Geosite-правила. Это приближение к функции мобильного BlancVPN: его закрытые списки приложений и ресурсов не копировались. Отключение настройки отправляет публичный трафик через VPN; локальная сеть остаётся доступной.
Задержка в списке локаций — время TCP-подключения, а не измерение скорости. При включённой автоматической смене локации QVPN может выбрать запасную, когда выбранная недоступна. Текущая локация всегда отображается в окне.
Восстановление соединения
- Служба работает отдельно от интерфейса, от имени LocalSystem; запуск VPN не зависит от открытого окна.
- Ключ и локации зашифрованы Windows DPAPI. Каталог
%ProgramData%\QVPNдоступен только SYSTEM и администраторам; управление интерфейсом идёт через канал с правами конкретного пользователя. - Желание оставаться подключённым сохраняется на диск атомарно. Сбой процесса запускает повторное соединение с паузой от 2 до 60 секунд.
- Реальная HTTPS-проверка идёт через VPN. Зелёный статус появляется после успешной проверки. Три неудачные проверки подряд приводят к восстановлению и, по настройке, смене локации.
- Возврат из сна и появление сети восстанавливают VPN. Обновление подписки раз в 6 часов сохраняет рабочее соединение, если его параметры не изменились.
- Windows автоматически перезапускает аварийно завершившуюся службу. Job Object закрывает принадлежащие ей VPN-процессы при её завершении.
- Журнал ограничен по размеру и содержит события подключения, без ключа, UUID и истории посещений.
Это не постоянный kill switch: при восстановлении или остановке службы системный маршрут может вернуться к обычной сети. Краткая проверка восстановления не доказывает отсутствие всех сбоев в многосуточной эксплуатации. Истечение подписки, блокировки и недоступность всех серверов не устраняются клиентом; состояние будет показано в окне.
Разработка и проверка
Требуется .NET SDK 10. Подготовка зависимостей в новой копии исходников: powershell -File scripts\prepare-core.ps1; сборка: powershell -File scripts\build.ps1. Приложение и служба публикуются для Windows x64 с включённым .NET runtime; установка .NET на целевом компьютере не нужна.
Тесты: dotnet run --project tests\QVPN.Tests -c Release.
Диагностика без изменения системных маршрутов:
dotnet run --project src\QVPN.Service -c Release -- --console --socks-only --data C:\Tools\QVPN-private\dev-state --core C:\Repos\QVPN\tools\core-unpacked\sing-box-1.14.2-windows-amd64\sing-box.exe
Тестовый режим доступен только при ручном консольном запуске; обычная служба всегда создаёт системный TUN. Для остановки тестового режима используйте Ctrl+C. Не запускайте тестовую и установленную службу одновременно.
Удаление доступно через «Установленные приложения». Настройки сохраняются, чтобы случайное удаление не уничтожило ключ. Подробности устройства и формата: research/analysis.md.
Открытые компоненты
Неизменённый sing-box 1.14.2 используется как отдельный процесс. Документация: https://sing-box.sagernet.org/. Исходники: https://github.com/SagerNet/sing-box/tree/v1.14.2. Оригинальные уведомления и GPLv3 поставляются вместе с программой. Правила маршрутизации: SagerNet/sing-geoip и SagerNet/sing-geosite; адреса и SHA-256 записаны в research/rules-sources.json.
QVPN — личное независимое приложение, не официальный продукт BlancVPN. Брендовые изображения, APK и закрытый код мобильного приложения в поставку не включены.