# Navis Клиент [NaiveProxy](https://github.com/klzgrad/naiveproxy) + [Hysteria 2](https://github.com/apernet/hysteria) + [AmneziaWG 2.0](https://docs.amnezia.org/documentation/amnezia-wg/) + [Xray](https://github.com/XTLS/Xray-core) (VLESS / VMess / Trojan) с профилями, пингом, URL-подпиской и автообновлением. ## Платформы | OS | Артефакты | UI | |----|----------|----| | Windows amd64 | `Navis.exe` | GUI (WebView2) | | macOS universal | `Navis.dmg` · `Navis.app.zip` | **GUI** (как Windows) | | macOS arm64 / amd64 | `Navis` · DMG · `Navis-cli` | GUI + CLI | | Android | `Navis.apk` | GUI (VpnService) | ## Скачать macOS прямо с git Репозиторий: https://git.evilfox.cc/test2/navi ### Быстрая установка (автовыбор архитектуры) ```bash curl -fsSL "https://git.evilfox.cc/test2/navi/raw/branch/main/scripts/install-macos.sh" | bash ``` Скрипт скачает **универсальный DMG** (работает на Intel и Apple Silicon) и откроет его. ### Универсальный DMG (рекомендуется) Подходит для **всех** Mac — M1/M2/M3/M4 и Intel: ```bash cd ~/Downloads curl -fL -o Navis.dmg \ "https://git.evilfox.cc/test2/navi/raw/branch/main/dist/navis-release/darwin-universal/Navis.dmg" open Navis.dmg ``` ### 1. Узнайте архитектуру Mac (если нужна отдельная сборка) В Терминале: ```bash uname -m ``` - `arm64` → Apple Silicon (M1/M2/M3/M4) → папка **darwin-arm64** - `x86_64` → Intel → папка **darwin-amd64** > **Важно:** на Mac M4 нельзя ставить сборку из `darwin-amd64` — иконка будет с перечёркиванием. Используйте **darwin-universal** или **darwin-arm64**. ### 2a. Скачать DMG для конкретной архитектуры **Apple Silicon:** ```bash cd ~/Downloads curl -fL -o Navis.dmg \ "https://git.evilfox.cc/test2/navi/raw/branch/main/dist/navis-release/darwin-arm64/Navis.dmg" open Navis.dmg ``` **Intel:** ```bash cd ~/Downloads curl -fL -o Navis.dmg \ "https://git.evilfox.cc/test2/navi/raw/branch/main/dist/navis-release/darwin-amd64/Navis.dmg" open Navis.dmg ``` Откроется диск с `Navis.app` — перетащите в **Программы** (Applications). Если Gatekeeper ругается: ```bash xattr -dr com.apple.quarantine /Applications/Navis.app ``` Запуск CLI из .app: ```bash /Applications/Navis.app/Contents/MacOS/Navis init /Applications/Navis.app/Contents/MacOS/Navis install-core /Applications/Navis.app/Contents/MacOS/Navis connect ``` Альтернатива DMG — zip с тем же `.app`: ```bash # arm64 curl -fL -o Navis.app.zip \ "https://git.evilfox.cc/test2/navi/raw/branch/main/dist/navis-release/darwin-arm64/Navis.app.zip" # amd64 curl -fL -o Navis.app.zip \ "https://git.evilfox.cc/test2/navi/raw/branch/main/dist/navis-release/darwin-amd64/Navis.app.zip" unzip Navis.app.zip ``` ### 2b. Скачать CLI-бинарник одной командой **Apple Silicon (arm64):** ```bash mkdir -p ~/Navis && cd ~/Navis curl -fL -o Navis \ "https://git.evilfox.cc/test2/navi/raw/branch/main/dist/navis-release/darwin-arm64/Navis" chmod +x Navis ``` **Intel (amd64):** ```bash mkdir -p ~/Navis && cd ~/Navis curl -fL -o Navis \ "https://git.evilfox.cc/test2/navi/raw/branch/main/dist/navis-release/darwin-amd64/Navis" chmod +x Navis ``` Проверка версии / обновлений: ```bash ./Navis check-update ``` ### 3. Первый запуск (CLI) ```bash cd ~/Navis ./Navis init ./Navis install-core ./Navis set-proxy 'hysteria2://PASSWORD@HOST:PORT/?sni=...#name' # или naive+https://user:pass@host ./Navis connect ``` Полезные флаги: ```bash ./Navis connect -no-sysproxy # только локальный SOCKS/HTTP, без networksetup ./Navis connect -probe # проверка туннеля после коннекта ``` Локальные прокси после `connect`: - SOCKS5: `127.0.0.1:1080` - HTTP: `127.0.0.1:1081` Системный прокси на macOS выставляется через `networksetup` (может запросить права администратора). ### 4. Если macOS блокирует запуск ```text “Navis” cannot be opened because it is from an unidentified developer ``` ```bash xattr -dr com.apple.quarantine ~/Navis/Navis # или для .app: xattr -dr com.apple.quarantine /Applications/Navis.app ``` Затем: **Системные настройки → Конфиденциальность и безопасность → Всё равно открыть**. ### 5. Обновление с git ```bash cd ~/Navis ./Navis check-update ./Navis apply-update # закройте процесс Navis — бинарник подменится сам ``` Или скачайте DMG/бинарник заново. Прямые ссылки (raw): | Архитектура | CLI | DMG | ZIP (.app) | |-------------|-----|-----|------------| | **universal** | [Navis](https://git.evilfox.cc/test2/navi/raw/branch/main/dist/navis-release/darwin-universal/Navis) | [Navis.dmg](https://git.evilfox.cc/test2/navi/raw/branch/main/dist/navis-release/darwin-universal/Navis.dmg) | [Navis.app.zip](https://git.evilfox.cc/test2/navi/raw/branch/main/dist/navis-release/darwin-universal/Navis.app.zip) | | arm64 | [Navis](https://git.evilfox.cc/test2/navi/raw/branch/main/dist/navis-release/darwin-arm64/Navis) | [Navis.dmg](https://git.evilfox.cc/test2/navi/raw/branch/main/dist/navis-release/darwin-arm64/Navis.dmg) | [Navis.app.zip](https://git.evilfox.cc/test2/navi/raw/branch/main/dist/navis-release/darwin-arm64/Navis.app.zip) | | amd64 | [Navis](https://git.evilfox.cc/test2/navi/raw/branch/main/dist/navis-release/darwin-amd64/Navis) | [Navis.dmg](https://git.evilfox.cc/test2/navi/raw/branch/main/dist/navis-release/darwin-amd64/Navis.dmg) | [Navis.app.zip](https://git.evilfox.cc/test2/navi/raw/branch/main/dist/navis-release/darwin-amd64/Navis.app.zip) | | манифест | [update.json](https://git.evilfox.cc/test2/navi/raw/branch/main/dist/update.json) | | | ## Android APK Сборка: `build-android.bat` → `dist/navis-release/android/Navis.apk` Установка: скопируйте APK на телефон → разрешите установку из неизвестных источников. В APK: подписка, компактный список нод, пинг, «Лучший», автоподключение. Протоколы VLESS/VMess/Trojan (Xray) и Hysteria 2. Naive/AWG — импорт в UI, полный туннель дорабатывается. Подробнее: [android/README.md](android/README.md) ## Сборка Windows ```bat build.bat ``` или: ```bat go build -ldflags="-H windowsgui -s -w" -o Navis.exe ./cmd/vpnapp ``` ## Сборка macOS (кросс с Windows / Linux) ```bat build-macos.bat ``` или: ```bash CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o dist/navis-release/darwin-arm64/Navis ./cmd/vpnclient CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o dist/navis-release/darwin-amd64/Navis ./cmd/vpnclient ``` ## Обновления Манифест: `https://git.evilfox.cc/test2/navi/raw/branch/main/dist/update.json` Формат (multi-platform): ```json { "version": "1.4.0", "notes": "…", "platforms": { "windows-amd64": { "url": "…/Navis.exe", "sha256": "…" }, "darwin-arm64": { "url": "…/darwin-arm64/Navis", "sha256": "…" }, "darwin-amd64": { "url": "…/darwin-amd64/Navis", "sha256": "…" } } } ``` Клиент сам выбирает ключ `GOOS-GOARCH`. ## Купить доступ https://evilfox.win/ ## Антивирусы (ложные срабатывания) Некоторые AV (Bkav, Microsoft Wacapew/Wacatac, Ikarus Trojan.WinGo.Agent, Google, Trapmine) часто помечают **любые** неподписанные Go-бинарники с сетью и сменой системного прокси. В 3.8.1: - меньше нагрузка в простое: лёгкий опрос интерфейса без полного клонирования конфига, кэш путей к ядрам, лог с лимитом размера; - список серверов в UI не пересобирается без изменений; интервал опроса 4 с; - быстрее и точнее пинг (учитывается протокол профиля; лёгкий разбор AWG Endpoint); - AWG-прокси копирует трафик через буферный pool; PingAll и установка cores используют несколько ядер CPU; - 3.8.1+1: первая сборка линейки 3.8.1. В 3.8.0: - единый GUI-контроллер `apphost` для Windows и macOS (без дублирования логики); - безопасный lifecycle Connect/Disconnect (ожидание Stop, mutex Windows sysproxy); - SHA-256 проверка при установке cores (naive / hy2 / xray); - snapshot конфига в UI (`Config().Clone`); - 3.8.0+2: обновление Navis.app через zip+SHA; Start вне mutex; getState без секретов; подпись/notarize scripts; UI CSS/JS split; - 3.8.0+3: пинг Hy2/AWG по UDP — soft-ok при тишине (без ложных «недоступен»). В 2.7.3: - восстановление системного прокси после аварийного завершения; - auth-токен для локального macOS `/api`; - обязательный SHA-256 при обновлении; - исправлен ложный UDP ping; HTTPS-only подписки; UI не зависает на connect; - 2.7.3+2: импорт Amnezia `vpn://` — очистка невидимых символов, создание профиля при активном подключении, ошибка в модалке; - 2.7.3+3: тёмная тема интерфейса (переключатель в шапке, сохранение выбора). В 2.7.2: - убран вечный цикл обновления (проверка больше не устанавливает сама; только кнопка «Обновить»); - номер сборки в версии (`2.7.2+N` / FileVersion `2.7.2.N`); сравнение обновлений только по product semver. В 2.7.1: - обновление только по кнопке «Обновить»; можно «Пропустить эту версию» (следующую всё равно предложит). В 2.7.0: - GUI на macOS (тот же интерфейс, что на Windows): DMG → Navis.app открывает окно клиента; CLI лежит как `Navis-cli`. В 2.6.2: - быстрое отключение AWG: принудительно закрываются прокси-соединения, UI больше не зависает. В 2.6.1: - AmneziaWG: перед подключением Endpoint-хост резолвится в IP (предпочтительно IPv4) — обход сбоя IpcSet на Windows («No such host is known»). В 2.6.0: - исправлен разбор AmneziaWG: ключ в `awg://KEY@host`, JSON/`vpn://`, пробелы в именах полей, URL-safe base64. В 2.3.0: - Android APK: подписка, список нод, пинг, автолучший; VLESS/VMess/Trojan (Xray) и Hysteria 2 через VpnService. В 2.2.1: - универсальный macOS DMG (Intel + Apple Silicon), скрипт автоустановки, предупреждения при неверной архитектуре. В 2.2.0: - компактный список нод с пингом (как в Happ); - параллельный пинг, кнопка «Лучший», автоподключение к серверу с минимальной задержкой после подписки. В 2.1.0: - вторичные кнопки перекрашены (не белые), чтобы не путать с основным действием. В 2.0.0: - новый интерфейс (connect-first), обновлённая иконка и типографика; - чище UX: протокол-бейдж, сворачиваемые сервисные действия, статус-карточка. В 1.9.0: - VLESS / VMess / Trojan через официальный Xray-core (кнопка «Установить cores»). В 1.8.0: - автопроверка обновлений при старте и установка с автоперезапуском; - AmneziaWG 2.0: вставьте полный `.conf` (Jc/Jmin/Jmax, S1–S4, H1–H4, I1–I5) или `awg://…` — встроенный userspace-туннель + локальный SOCKS/HTTP. В 1.7.1 дополнительно: - обновление только скачивается в `Downloads` (без самозамены exe); - нет автопроверки обновлений и тихой загрузки cores при старте; - нет вызова `netsh winhttp`; - Windows manifest + metadata EvilFox. Если всё ещё ругается — отправьте файл как False Positive: - Microsoft: https://www.microsoft.com/wdsi/filesubmission - Google: https://safebrowsing.google.com/safebrowsing/report_error/ - VirusTotal community vote: «False positive» Полностью убрать ML-детекты обычно можно только с **Authenticode** (code signing).