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-etonify.1 на базе стабильного sing-box 1.14.0 |
| Языки интерфейса | Русский и английский |
| Релизная платформа | Только 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.2 и 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.