# ProxyWarden ProxyWarden - это Windows-приложение для маршрутизации выбранных программ через прокси или VPN-сервер. Оно не меняет глобальные настройки прокси в Windows: вы сами выбираете, какие приложения должны идти через маршрут, например Discord, Telegram, браузер, игру или конкретный `.exe`. ## Что умеет приложение - добавлять приложения по имени процесса, папке или конкретному EXE-файлу; - отправлять выбранные приложения через внешний SOCKS5-прокси; - при необходимости поднимать локальный `sing-box` и использовать сервер из подписки; - показывать состояние компонентов: установлен ли ProxiFyre, запущены ли службы, выбран ли сервер; - генерировать конфиги для ProxiFyre и `sing-box` из сохраненных настроек; - не устанавливать скрыто лишние компоненты при применении профиля. ## Из чего состоит ProxyWarden ProxyWarden разделен на три независимые части. **Control App** - само desktop-приложение. В нем вы настраиваете маршрут, выбираете приложения, смотрите статус и запускаете явные действия. **ProxiFyre** - обязательный слой для маршрутизации отдельных Windows-приложений. Он заставляет выбранные программы ходить через SOCKS5-прокси даже тогда, когда сами программы не умеют работать с прокси. **Local sing-box** - необязательный локальный VPN/proxy runtime. Он нужен только если вы хотите вставить subscription URL, выбрать сервер и получить локальный SOCKS5 endpoint `127.0.0.1:1080`. Если у вас уже есть внешний SOCKS5-прокси, `sing-box` можно не устанавливать. ## Типичный сценарий с внешним прокси 1. Запустите ProxyWarden. 2. Установите или проверьте ProxiFyre. 3. На вкладке `VPN / Прокси` выберите `Внешний прокси`. 4. Введите адрес в формате `host:port` или `socks5://host:port`. 5. На вкладке `ProxiFyre` добавьте приложения, которые нужно маршрутизировать. 6. Нажмите `Применить в ProxiFyre`. Результат: выбранные приложения идут через внешний SOCKS5-прокси. Local sing-box для этого сценария не нужен. ## Типичный сценарий с Local sing-box 1. Запустите ProxyWarden. 2. Установите ProxiFyre. 3. Установите Local sing-box. 4. Вставьте subscription URL, загрузите список серверов и выберите сервер. 5. Добавьте приложения для маршрутизации. 6. Примените маршрут. Результат: выбранные приложения идут по цепочке: ```text Приложения -> ProxiFyre -> Local sing-box 127.0.0.1:1080 -> выбранный сервер ``` ## Где хранятся настройки Пользовательские настройки хранятся в `C:\ProgramData\ProxyWarden`: ```text C:\ProgramData\ProxyWarden\config\profiles.json C:\ProgramData\ProxyWarden\config\targets.json C:\ProgramData\ProxyWarden\config\components.json C:\ProgramData\ProxyWarden\config\local-singbox.json C:\ProgramData\ProxyWarden\state\activity.json C:\ProgramData\ProxyWarden\state\singbox-subscription-cache.json ``` Сгенерированные файлы лежат отдельно и могут быть пересозданы: ```text C:\ProgramData\ProxyWarden\generated\proxifyre-app-config.json C:\ProgramData\ProxyWarden\generated\sing-box-config.json ``` Важно: редактировать вручную лучше исходные настройки, а не generated-файлы. При записи настроек приложение создает backup рядом с исходным JSON. ## Установка из исходников Нужны: - Windows 10/11; - Node.js и npm; - Rust через rustup; - Visual Studio Build Tools с MSVC и Windows SDK; - Microsoft Edge WebView2 Runtime. Команды: ```powershell cd D:\repos\ProxyWarden npm install npm run tauri -- dev ``` Собрать установочный пакет: ```powershell npm run tauri -- build ``` Запустить только browser-preview без нативных Tauri-команд: ```powershell npm run dev -- --host 127.0.0.1 ``` В browser-preview можно проверить интерфейс, но нельзя управлять Windows-службами и нативными компонентами. ## Явные installer-скрипты В репозитории есть отдельные entrypoint-скрипты: ```powershell & .\scripts\install-control-app.ps1 -PlanOnly & .\scripts\install-proxyfier.ps1 -PlanOnly & .\scripts\install-singbox.ps1 -PlanOnly ``` `-PlanOnly` показывает план в JSON и ничего не устанавливает. Реальная установка требует прав администратора. Компоненты устанавливаются отдельно: применение профиля не должно незаметно устанавливать Control App, ProxiFyre или Local sing-box. ## Проверка для разработчика Frontend: ```powershell npm run build ``` Rust-тесты: ```powershell cd D:\repos\ProxyWarden\src-tauri cargo test ``` Информация Tauri: ```powershell npm run tauri -- info ``` ## Ограничения текущей версии - Поддерживается основной путь через SOCKS5. - ProxiFyre является текущим backend-слоем маршрутизации; архитектура оставляет место для другого proxy-router adapter. - Local sing-box остается опциональным и не требуется для внешнего SOCKS5-прокси. - Реальные elevated-операции установки, удаления и управления Windows-службами нужно проверять на Windows с правами администратора.