English / Русский / Українська / 简体中文 / فارسی
VPN-клієнт з відкритим кодом для Android на базі підтримуваної версії sing-box.
Завантажити · Історія змін · Повідомити про проблему · Telegram
Etonify призначений для людей, які вже мають VPN-підписку, посилання на сервер або готову конфігурацію та хочуть керувати маршрутизацією й діагностикою з’єднання на Android. Клієнт і його Android-компоненти розвиваються разом із yamixdev/etonify-core — стабільною базою sing-box зі змінами, які підтримуються спеціально для Etonify.
Important
Etonify не продає й не надає VPN-сервери. Використовуйте лише ті підписки та конфігурації, якими ви володієте або якими вам дозволено користуватися.
| Компонент | Поточне значення |
|---|---|
| Версія вихідного коду клієнта | 0.3.1+21 |
| Підтримка Android | Android 8.0 і новіший (API 26+) |
| Вбудоване ядро | v1.14.0-rc.1-etonify.2 на базі sing-box 1.14.0-rc.1 |
| Мови інтерфейсу | Англійська та російська |
| Платформа випуску | Лише Android |
0.3.0 — поточний стабільний випуск. Каталоги інших Flutter-платформ залишаються в репозиторії для інструментів і майбутньої розробки, але збірки для Windows, Linux, macOS та iOS поки не підтримуються.
| Можливість | Підтримка |
|---|---|
| Системний VPN через Android TUN | Так |
| Локальний HTTP- і SOCKS-проксі | Так |
| Одночасна робота VPN TUN і локального проксі | Так |
| Підписки за URL, із файлу, буфера обміну, QR-коду та deep link | Так |
| Роздільна маршрутизація застосунків | Так |
| Пресети правил трафіку та локальні набори правил | Так |
| DNS-фільтр AdGuard | Так |
| Перевірка оновлень і встановлення APK із клієнта | Так |
| Вбудовані безкоштовні сервери | Ні |
| Релізні збірки для Windows, iOS та інших платформ | Ні |
Etonify імпортує посилання на сервери, sing-box JSON, Xray JSON, Clash YAML, SIP008 і конфігурації WireGuard. Вбудовані парсери розпізнають:
- VLESS, VMess і Trojan;
- Shadowsocks і ShadowsocksR;
- Hysteria і Hysteria2;
- TUIC, WireGuard, AnyTLS і NaiveProxy;
- зовнішні HTTP- і SOCKS-проксі.
Точна сумісність залежить від полів, транспортів і розширень, які використовує провайдер. Невідомі або некоректні outbound-конфігурації потрапляють до звіту про помилку, а не запускаються у складі частково зламаного профілю.
- Android VPN TUN зі стеками
gVisor,systemіmixed. - Локальний mixed-проксі з авторизацією для HTTP- і SOCKS-клієнтів та необов’язковим доступом із локальної мережі.
- VPN TUN і локальний проксі можна вмикати окремо або одночасно.
- Фоновий сервіс підтримує тунель, коли інтерфейс закритий або Android повторно створив процес Flutter.
- Зміна Wi‑Fi і мобільної мережі, сон, повернення з фону та зміна основної мережі обробляються централізовано.
- У сповіщенні стану показуються вибраний сервер, затримка, поточна швидкість або загальний трафік; доступні оновлення затримки й зупинка VPN.
- Імпорт через HTTPS, QR-код, файл, буфер обміну, системне меню «Поділитися» та підтримувані deep links.
- Підтримка форматів sing-box, Xray, Clash, SIP008, WireGuard і поширених посилань на окремі сервери.
- Обробка посилань
etonify://,happ://add,happ://crypt*іsing-box://import-remote-profile. - Локальне розшифрування підтримуваних варіантів Happ від
cryptдоcrypt5; якщо провайдеру потрібен HWID, клієнт спочатку запитує явну згоду. - Дані сумісності Happ
crypt5входять до офіційних збірок, але не зберігаються відкрито в публічному дереві вихідного коду. - Безпечне оновлення: порожня, пошкоджена, HTML-відповідь або мережева помилка не замінюють останню робочу версію профілю.
- Резервна копія зберігає межі профілів, назви, сервери, вибраний outbound, розклад оновлення та вихідний URL.
- Великі відповіді розбираються поза UI-isolate, а об’ємні дані зберігаються окремо від компактних метаданих профілів.
Віддалена підписка має використовувати HTTPS. Звичайний HTTP дозволений лише для буквальних loopback-адрес: localhost, 127.0.0.1 та ::1.
- Адресна перевірка URLTest для вибраного сервера й асинхронна групова перевірка всього профілю.
- Результати з’являються в міру отримання відповідей; застаріла сесія не може перезаписати нову.
lowestпоказує фактичний вибір URLTest ядра, а не вигадану затримку чи прапор.- Сортування за початковим порядком, доступністю, затримкою, назвою або країною.
- Неробочі сервери мають зрозумілий попереджувальний стан; подробиці DNS, TLS, EOF і timeout залишаються в діагностиці.
- Визначення зовнішньої IP-адреси, трафік з’єднання, поточна швидкість, підсумки сесії та легкий графік.
- Експортовані журнали з даними про runtime, мережу, пам’ять і створення конфігурації.
URLTest — це HTTP-запит через проксі, а не ICMP ping. Результат включає встановлення проксі-з’єднання, TLS і час відповіді тестового сервера.
- Роздільна маршрутизація застосунків у режимах «через VPN» і «в обхід VPN».
- Одночасно діє лише один пресет правил трафіку: російські сервіси напряму, сервіси ШІ через VPN або соціальні мережі через VPN.
- Версіоновані локальні георесурси
.srsіз перевіреною заміною та роботою без мережі після завантаження. - Локально зібраний DNS-фільтр AdGuard.
- Обхід локальної мережі, сувора маршрутизація та налаштування захисту від витоків.
- DNS пристрою та власні UDP, TCP, DoT і DoH-резолвери з безпечним bootstrap.
- Необов’язкові FakeIP, TCP Fast Open, TCP MultiPath, фрагментація TLS та інші чітко позначені експериментальні параметри.
- Ланцюжки проксі, у яких один вибраний outbound підключається через інший outbound того самого профілю.
Правила трафіку та роздільна маршрутизація працюють на різних рівнях. Якщо збіглися обидві умови, спочатку застосовується політика вибраних Android-застосунків, а потім активні правила маршрутизації sing-box.
- Центр оновлень GitHub Releases вибирає APK для ABI пристрою й показує перебіг завантаження.
- Перед встановленням перевіряються назва пакета, мінімальна версія Android, сертифікат підпису, розмір файлу та SHA-256 із маніфесту релізу.
- Налаштування, підписки, облікові дані й ключі шифруються за допомогою AES-GCM; ключ обгортки зберігається в Android Keystore.
- Відомі секрети маскуються у Flutter-журналі, нативній діагностиці Android та експортованих звітах.
- Дозвіл недовірених сертифікатів для проксі та завантаження підписок розділено на дві опції. Обидві вимкнені за замовчуванням і містять попередження про ризик.
- Під час переходу на інший origin чутливі заголовки видаляються, а перенаправлення з HTTPS на HTTP блокується.
- Etonify — клієнт, а не VPN-провайдер.
- Єдина підтримувана платформа випуску — Android.
- Деякі розширення провайдерів можуть потребувати оновлення ядра або парсера.
- Дуже великі підписки та повна перевірка серверів тимчасово збільшують навантаження на процесор, пам’ять, мережу й акумулятор.
- Експериментальні мережеві параметри можуть знизити сумісність. Залишайте значення за замовчуванням, якщо не знаєте, навіщо їх змінювати.
- Застосунки та пристрої в локальній мережі потрібно вручну налаштувати на адресу, порт і облікові дані проксі, які показує Etonify.
Завантажте APK у розділі GitHub Releases. Краще вибрати split APK для ABI вашого пристрою; більшість сучасних Android-смартфонів використовують arm64-v8a. Android може попросити дозволити встановлення застосунків із браузера або файлового менеджера.
Клієнт за можливості переносить наявні налаштування. Перед великим оновленням або зміною розширених параметрів DNS і маршрутизації створіть зашифровану резервну копію.
Поточна конфігурація CI використовує:
- Flutter 3.47.0 і Dart 3.11.4 або новіший;
- Android SDK 36;
- JDK 21 для збірки клієнта;
- Gradle 9.1 і Android Gradle Plugin 9.0.1.
Клонуйте репозиторій разом із submodule ядра та виконайте:
git clone --recurse-submodules https://github.com/yamixdev/Etonify.git
cd Etonify
flutter pub get
flutter gen-l10n
flutter analyze
flutter testПеревірки Android у Windows:
cd android
.\gradlew.bat :app:testDebugUnitTest :app:lintDebugДля публічної release-збірки налаштуйте справжній ключ підпису в android/key.properties. Release APK із debug-підписом призначений лише для локального тестування.
Вбудований android/app/libs/libbox.aar збирається з точного коміту submodule etonify-core. Версія, вихідний коміт sing-box, набір інструментів, build tags і SHA-256 записуються в libbox.provenance.json та перевіряються разом із libbox.sha256.
Workflow репозиторію може повторно зібрати чотири відстежувані артефакти із закріплених вихідних кодів:
libbox.aar;libbox-sources.jar;libbox.provenance.json;libbox.sha256.
- Telegram-канал: @etonify
- Прямий зв’язок: Etonify Direct
- Помилки та пропозиції: форми GitHub Issues
- Правила участі: CONTRIBUTING.md
- Повідомлення про вразливості: SECURITY.md
Проєкт підтримує MeowTeam: yamixdev працює над Android-клієнтом, релізами й etonify-core; dudosxdev допомагає з мережею та протоколами.
Etonify поширюється за GNU General Public License v3.0 або новішою. Відомості про вбудовані, адаптовані та сторонні компоненти наведено в NOTICE.md і THIRD_PARTY_NOTICES.md.