Обход блокировок в Android — за одной кнопкой.
Android-клиент для mihomo, форк FlClashX, который прячет сложные инструменты обхода блокировок за одним переключателем.
Warning
Проект в активной разработке. Некоторые функции ещё дорабатываются, а интерфейс может меняться.
- Зачем этот клиент
- Главные преимущества
- Что ещё умеет
- Скачать
- Документация
- Сборка
- Благодарности
- Лицензия
Есть несколько мощных инструментов обхода блокировок, и каждый живёт в своём «загоне»:
- 🛡 ByeDPI — обход DPI для доступа к ресурсам, заблокированным «изнутри» (например, YouTube или Discord для РФ).
- 📞 OlcRTC — обход белых списков маскировкой под WebRTC-звонки разрешённых сервисов, таких как Yandex Telemost.
- 🌩 StormDNS — обход белых списков маскировкой под обычные DNS-запросы к разрешённому резольверу.
- 🎭 NaiveProxy — обход чёрных списков маскировкой под трафик браузера Chrome.
Каждая технология хороша для своей задачи, но не было места, которое объединяло бы их все. Хотелось задать всё в одном месте и просто нажать «подключиться».
Поэтому появился FlClashM. Его задача — стать той самой одной кнопкой: провайдер готовит конфигурацию, пользователь нажимает переключатель, и соединение работает в любой сети.
В отличие от обычных клиентов, FlClashM умеет запускать специальные узлы прямо из YAML-профиля. Они выглядят как обычные прокси и участвуют в правилах маршрутизации: один сайт можно направить через ByeDPI, другой — через OlcRTC, а всё остальное — напрямую.
|
🛡 ByeDPI — автоперебор стратегий обхода DPI с кэшированием рабочей. proxies:
- name: "dpi-auto"
type: byedpi
strategies:
- builtin:byebyeedpi
- "--disorder 1" |
|
📞 OlcRTC — туннель поверх WebRTC под видом видеозвонка. proxies:
- name: "rtc"
type: olcrtc
provider: jitsi
room: "https://meet.example.org/room"
encryption-key: "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
transport: datachannel
dns-server: "1.1.1.1:53" |
|
🌩 StormDNS — туннель внутри обычных DNS-запросов. proxies:
- name: "storm"
type: stormdns
domains: ["v.example.com"]
encryption: chacha20
encryption-key: "<key>" |
|
🎭 NaiveProxy — маскировка под трафик Chrome. proxies:
- name: "naive"
type: naiveproxy
server: example.com
port: 443
username: user
password: pass |
📖 Подробнее о встроенных узлах →
Провайдер может задать правила раздельного туннелирования прямо в профиле — какие приложения идут через VPN, а какие нет. Поддерживаются точные имена пакетов, маски и регулярные выражения; списки можно загружать из файлов или URL. Профиль имеет приоритет над ручными настройками.
tun:
enable: true
include-package:
- org.telegram.messenger
- com.termux
exclude-package:
- '*.yandex.*'
- '!ru.yandex.browser'📖 Подробнее о раздельном туннелировании →
- 🔌 VPN/TUN-подключение через
mihomo. - 📥 Профили по ссылке, из файла, по QR-коду и с Android TV.
- 🔀 Режимы работы: правила, глобальный, прямое соединение.
- 🧰 Виджеты и плитка быстрых настроек для управления VPN.
- ⬆️ Встроенное обновление с проверкой подписи и контрольных сумм.
- 🔔 Уведомления об истечении подписки.
- 🚀 Автозапуск после перезагрузки устройства.
- 🎨 Оформление через подсказки провайдера.
Готовые сборки публикуются в GitHub Releases.
| Файл | Для чего |
|---|---|
FlClashM-android-universal.apk |
Универсальная сборка (подойдёт, если сомневаетесь) |
FlClashM-android-arm64-v8a.apk |
64-битные ARM (большинство современных телефонов) |
FlClashM-android-armeabi-v7a.apk |
32-битные ARM (старые устройства) |
FlClashM-android-x86_64.apk |
x86_64 (эмуляторы, отдельные планшеты) |
FlClashM-android-release.aab |
Android App Bundle |
Note
По умолчанию встроенный загрузчик показывает только стабильные версии. Предварительные сборки можно включить в настройках.
Полный справочник — в центре документации.
🚀 Для пользователей
- 🧩 Встроенные узлы — ByeDPI, OlcRTC, StormDNS, NaiveProxy
- 🎯 Раздельное туннелирование — управление через профиль
- 🎨 Подсказки провайдера — оформление и поведение
🛠 Для разработчиков
- 🏗 Архитектура · ⚙️ Среда выполнения · 🔒 Безопасность
- 📦 Релизы · 🔄 Синхронизация с FlClashX · ✅ Проверка сборки
Нужны Flutter 3.47.x, JDK 17, Android SDK/NDK и Go 1.27.2.
Все зависимости и их версии задаёт flake.nix. Отладочный пакет для arm64 собирается одной командой:
nix develop -c make devРезультат: build/app/outputs/flutter-apk/app-debug.apk.
Остальные задачи запускаются так же:
nix develop -c make fetch-upstream check
nix develop -c make install-dev
nix develop -c make release
nix develop -c make cleanОтдельно доступны цели
test,analyze,boundaries,release-contractиdrift.
flutter pub get
dart setup.dart android --arch arm64 --out core
flutter test test/product
flutter build apk --debug📖 Подробнее — в проверке сборки.
FlClashM построен на базе FlClashX — отличного кроссплатформенного клиента для Clash/Mihomo. Огромное спасибо авторам за проделанную работу и открытый код, без которого этот проект был бы невозможен.
Отдельная благодарность авторам ByeDPI, OlcRTC, StormDNS и NaiveProxy — без их труда обход блокировок был бы невозможен.
Код приложения распространяется по лицензии GPL-3.0. Сторонние ядра и встроенные исполняемые файлы сохраняют свои исходные лицензии.