Files
navi/README.md
T
M4andCursor 621c847cb3 Release 3.8.2.1: reliability, UI probe/logs, CI, signing gates.
Clear sysproxy on core death; probe+reconnect; subscription prune;
Best ignores soft UDP; Windows tray; Android protocol gate; CI workflows.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 02:44:48 +03:00

330 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.2:
- при неожиданном падении ядра снимается системный прокси и sentinel;
- логи ядра и проверка туннеля (Probe) в UI; connect-on-launch и автопереподключение;
- подписка удаляет устаревшие ноды прошлой синхронизации; «Лучший» без soft-ok UDP;
- трей (Windows), CI workflows, REQUIRE_CODESIGN для релиза; Android gated Naive/AWG + sync версии.
В 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, S1S4, H1H4, I1I5) или `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).